41
submitted 1 week ago* (last edited 1 week ago) by Erika3sis@hexbear.net to c/technology@hexbear.net

The story thus far by my recollection:

I'm trying to get Retrieval-based Voice Conversion (RVC) — a program for making voice "deepfakes" using audio-to-audio conversion — working on my Linux Mint Xfce machine. To this end, I've had to...

(everything I've done thus far + the Pyenv stuff highlighted)First get Git and ffmpeg, then git clone RVC and then create a virtual environment ("venv") in that folder, then activate that venv, and I also had to get Pip, and use Pip to install torch, torchvision, and torchaudio, then I had to install Poetry, then I had to install RVC's dependencies using Poetry, exceeeeept two of those dependencies refuse to install, so I've ended up a bit stuck. At least one of these dependencies is apparently refusing to install because it's not compatible with my version of Python, which means that I also have to install Pyenv in order to change the Python version in the venv, and so I've installed Pyenv's dependencies and run the command to install Pyenv itself...

...But then the terminal spat out a message about "adding 'pyenv' to the load path", ~/.bash_profile vs ~/.profile vs ~/.bashrc, and restarting my shell? After consulting a tutorial about this message, and installing Vim because it seemed like I might need that, I was still confused about what I was supposed to do, so I decided to take another break rather than continue to exhaust myself.

And this isn't to mention how every single step of this process has also had its own hiccups and confusions, as I'm "diving in the deep end" with basically no knowledge of anything I'm doing.

Put simply, it feels like all the forces of the universe are conspiring against me, trying to keep me from installing this one simple program onto my computer.

Compare this to another form of machine learning technology: large language models. Those things are everywhere nowadays! They're practically inescapable! They're in Google and DuckDuckGo. Firefox even on Linux has an LLM feature now. Several mainstream social media apps have them. Windows has its Copilot, phones are getting "AI" features left and right, yadda yadda. And I'm sure you all know everything wrong with the mass adoption of LLMs already.

Put simply, it feels like all the forces of the universe are conspiring against me, trying to make it impossible for me to stay away from this crap I absolutely don't want.

And this raises the question of why, if both of these things are popularly called "AI", do they differ so much in this regard?

The answer to me seems to just be money. RVC has no subscription fee nor gathering of my personal data, certainly not on a privacy-friendly OS; contrarily RVC makes me more private by letting me mask my voice. RVC is also literally incapable of even attempting to influence my opinions or dull my mind; it does not rely on overseas server farms whose water use is leaving surrounding communities without tap water; and I could even swap out RVC's training material if I objected to it. And without these "features", it's basically impossible for anyone to make a profit from RVC. And if it's impossible to make a profit from RVC, then there's no money being put into making this incredibly useful program accessible for laypeople — certainly no money being put into forcing it on people!

And I just think that's some glorpshit.

top 50 comments
sorted by: hot top controversial new old
[-] makotech222@hexbear.net 23 points 1 week ago

Doesn't seem like much of a linux issue, moreso a Python issue. Python is well known to have one of the worst dev environments of all time, so, yeah this tracks.

[-] Moidialectica@hexbear.net 20 points 1 week ago

I HATE PIP I HATE PIP I HATE PIP I HATE PIP

[-] robot_dog_with_gun@hexbear.net 8 points 1 week ago

i've used PIP like four times ever as an end-user and it was fine every time. i'm delightfully ignorant of doing anything complex with it.

[-] Moidialectica@hexbear.net 7 points 1 week ago

you're honestly fine if you set up a venv with python -n venv $(NAME) & source $(NAME)/bin/activate and then install wheel beforehand doing your requirements.txt install

[-] Edie@hexbear.net 6 points 1 week ago* (last edited 1 week ago)

What if you are trying to install numpy 1.23, which uses distutils, using Python 3.12, which has removed distutils?

[-] invalidusernamelol@hexbear.net 6 points 1 week ago

I've started using UV because it allows you to swap python versions. The python version is also locked in projects that are initialized with uv.

[-] Moidialectica@hexbear.net 4 points 1 week ago* (last edited 1 week ago)

I think I would use docker, so that I can use an older python version

[-] Hermes@hexbear.net 8 points 1 week ago

Using python is the nth type of liberalism

load more comments (1 replies)
[-] bobs_guns@lemmygrad.ml 5 points 1 week ago

I think the only worse one I've used is C++. Maybe followed by PHP.

[-] stupid_asshole69@hexbear.net 18 points 1 week ago

The thing conspiring against you is the python language, environment, tool chain and userbase.

[-] kleeon@hexbear.net 12 points 1 week ago* (last edited 1 week ago)

I would strongly suggest using docker for this. I don't know anything about this project but their official github repo already has everything setup for this so it's pretty mush guaranteed to work properly.

I know it's annoying having to learn docker (assuming you don't know it yet) just to install some program, but it's absolutely necessary to preserve your sanity these days

[-] CommunistCuddlefish@hexbear.net 9 points 1 week ago

Not even Docker has preserved my sanity because I've had it update and break too.

IDK what's going on with coding environments these days but it feels like decades of bloat, disorganization, fragmentation, and lack of standardization are coming home to roost

[-] kleeon@hexbear.net 7 points 1 week ago

Not even Docker has preserved my sanity because I've had it update and break too.

my solution is to never ever update docker

IDK what's going on with coding environments these days but it feels like decades of bloat, disorganization, fragmentation, and lack of standardization are coming home to roost

I'm afraid linux desktop is not gonna survive for another decade if things keep going in the same direction. All the garbage like snap and flatpak is the proof that something has to urgently change - the system is becoming so complicated that you can't even install a program without essentially spinning up a virtual machine. It's insane

[-] PorkrollPosadist@hexbear.net 9 points 1 week ago* (last edited 1 week ago)

People don't write portable software anymore. People used to write portable software and while it wasn't magic, you could build and run it on most distros, even the BSDs, Mac, Solaris, or other funky operating systems. The build scripts were tolerant of different shells, different system utilities, different software versions. A lot of newer software is built exclusively on CI/CD pipelines, and while you could run the pipeline on various platforms, you are effectively just building a Makefile which downloads Linux ISOs over BitTorrent.

I mean, the time had come to replace autoconf, but this ain't it chief.

The other thing is programming language package managers. At some point, we decided distributions were a bad thing and we should just cut distribution maintainers out of the picture. Just let software developers pick and bundle their own dependencies. Just let build systems clone hundreds of arbitrary repositories directly from other developers with no impartial quality assurance or sign-off. People just write a requirements.txt, or a cargo.toml, or a package.json and call it a fucking day. That is just a dev environment. That is not something which can be properly integrated into any OS. The amount of work that needs to be done by actual distro maintainers to package shit written in Perl / Python / Rust / Node / etc is absurd because everyone just codes with no discipline about dependencies whatsoever.

load more comments (1 replies)
[-] CommunistCuddlefish@hexbear.net 7 points 1 week ago* (last edited 1 week ago)

the system is becoming so complicated that you can't even install a program without essentially spinning up a virtual machine

Right and that's the thing, Linux was already complicated. Now it's more complicated? I've been waiting since 2004 for Linux to really get good, or at least better than Windows or Mac. I'd say it's there now, but not because Linux has ironed out its problems, but because the corporates have deliberately ruined their OSs leaving Linux the only internet-secure option left in the game

(although sometimes I have considered trying to run TempleOS just for the meme value)

[-] bobs_guns@lemmygrad.ml 5 points 1 week ago

You can also use podman which is rootless. Beware SELinux in this case. I used podman and UV for setting up a dev server with a database and bind mounts for iteration speed just yesterday. It was a painful experience but less bad than the alternative of manually setting up a database.

Since it's a ML project Miniconda or pixi may be better suited as the package manager.

[-] Edie@hexbear.net 10 points 1 week ago* (last edited 1 week ago)

installing Vim because it seemed like I might need that

Recomendation: use nano or something else instead^[The funny answer is ed, it's even more esoteric than vim], it'll probably work just fine.

Helpful tip: quiting vim can be done by pressing <ESC> (the escape button) and typing :wq (write and quit) or :q! (quit without saving)

[-] git@hexbear.net 9 points 1 week ago* (last edited 1 week ago)

Use Docker, it’s ideal for things like this.

Install Docker:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker

This installs the docker project’s GPG key they use to sign their packages, and adds the Ubuntu repo so you can install the packages as they don’t have a Mint specific repo. It then installs Docker and enables it now and on boot.

Run RVC:

mkdir rvc
cd rvc
docker run -d --name rvc --shm-size=256m --gpus all -v ./weights:/app/assets/weights -v ./opt:/app/opt -p 7865:7865 aladdin1234/rvc-webui:0.1

This creates and changes to an “rvc” directory in your current directory to keep things organised. This will download and run a 6GB image of RVC that a third party has published and mounts two directories relative to your current path (hence why we created an “rvc” directory earlier) so you can interchange data with the container, and binds the container’s port 7865 to your host’s 7865 so you can access it. You can always docker build the one that the project provides if you want instead.

In your browser, navigate to http://127.0.0.1:7865/

When you’re done:

docker stop rvc

If you want to start the same container again:

docker start rvc

load more comments (12 replies)
[-] CommunistCuddlefish@hexbear.net 7 points 1 week ago

But then the terminal spat out a message about "adding 'pyenv' to the load path", ~/.bash_profile vs ~/.profile vs ~/.bashrc, and restarting my shell? After consulting a tutorial about this message, and installing Vim because it seemed like I might need that, I was still confused about what I was supposed to do, so I decided to take another break rather than continue to exhaust myself.

The good news is that's easy, the bad news is I don't remember the specifics, but I think you're getting close!

Is this the github repo you used? https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI/blob/main/docs/en/README.en.md

[-] Erika3sis@hexbear.net 5 points 1 week ago
[-] kleeon@hexbear.net 8 points 1 week ago

You might have skipped these steps:

spoiler

Stock Bash startup files vary widely between distributions in which of them source which, under what circumstances, in what order and what additional configuration they perform. As such, the most reliable way to get Pyenv in all environments is to append Pyenv configuration commands to both .bashrc (for interactive shells) and the profile file that Bash would use (for login shells).

  1. First, add the commands to ~/.bashrc by running the following in your terminal:

    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc
    
  2. Then, if you have ~/.profile, ~/.bash_profile or ~/.bash_login, add the commands there as well. If you have none of these, create a ~/.profile and add the commands there.

    • to add to ~/.profile:
      echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
      echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
      echo 'eval "$(pyenv init - bash)"' >> ~/.profile
      
    • to add to ~/.bash_profile:
      echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
      echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
      echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile
      

Bash warning: There are some systems where the BASH_ENV variable is configured to point to .bashrc. On such systems, you should almost certainly put the eval "$(pyenv init - bash)" line into .bash_profile, and not into .bashrc. Otherwise, you may observe strange behaviour, such as pyenv getting into an infinite loop. See #264 for details.

Also, use docker

[-] CommunistCuddlefish@hexbear.net 6 points 1 week ago

I decided to try to follow along with your steps thinking "I'm technically experienced, I can totally just install it myself, write up a good installation on my Linux Mint partition and share the steps with her!" and I have already been defeated by Mint not wanting to let me use pip and making me make a venv but then not letting me use the venv and then when I get it working not wanting to actually install pytorch. This is indeed glorpshit. I'm sorry, good luck, you should be proud of your tenacity for getting this far already.

This does end up being my problem every time I try to wean myself onto Linux: everything is a fight to customize it and set up what I want. I dual boot and have a few different machines for different OSs because it's easier to just use different machines for different purposes and the spares I lucked into getting either dirt cheap or entirely free. There's a Windows partition I only ever use for games that need Windows and if I were trying to use RVC I'd be tempted at this point to just have a small windows partition for using RVC

[-] invalidusernamelol@hexbear.net 5 points 1 week ago

You can use uv for this. Clone the RVC repo, CD into the directory, run uv venv to create a virtual environment. If there's a requirements.txt file it'll get the requirements.

uv will also allow you to change python versions for the venv and uv add dependencies. To pip install something without modifying the package lock, use uv pip install and it'll install that in the environment.

[-] shallot@hexbear.net 5 points 1 week ago

Uv is so nice. The more cargo-like my tooling is, the happier I am.

All of the astral stuff has been really awesome so far tbh.

[-] invalidusernamelol@hexbear.net 5 points 1 week ago* (last edited 1 week ago)

It's honestly made me really enjoy building small projects in Python. You can also really easily integrate it into your build workflows to do testing and release wheels for publishing to PyPi.

Not surprising it's written in Rust lol

It definitely takes the dependency hell that is a ton of Python projects and makes it more like dependency purgatory. Or if you program like I do, you just don't have any dependencies and realize that you can use the standard library to do basically everything. Do still like using UV to quickly automate testing for different version of Python since I have a bad habit of immediately using new features because I think they're cool.

[-] SorosFootSoldier@hexbear.net 5 points 1 week ago

Now you got me worried about installing Mint, I need to since I'm on win 10 or is it fine otherwise outside of this bullshit?

[-] blipblip@hexbear.net 9 points 1 week ago

Depends entirely on how niche the stuff you do on your computer is. If you're just using a web browser and playing games it should be pretty seamless (outside of certain games with invasive anti cheat)

If it's a laptop you might run into some hurdles with wifi drivers, idk if that's still a common issue since I haven't had a laptop in a decade

[-] Erika3sis@hexbear.net 5 points 1 week ago* (last edited 1 week ago)

Anecdotally, I didn't have any trouble connecting my laptop to Wi-Fi.

Edit: I might as well also say that I didn't have any trouble updating the kernel.

[-] Erika3sis@hexbear.net 6 points 1 week ago* (last edited 1 week ago)

It's going to vary depending on your exact computing needs and your personality, but for myself I'd say that switching has really been shockingly easy. The actual installation was very easy, and after that the vast majority of things I needed either came pre-installed or were a breeze to set up, including Firefox and Libreoffice, a Japanese IME, my VPN, Steam and some games, Audacity, Gimp, Inkscape, a video editing program, a subtitling program, VLC, an online radio, and maybe some other things. It was also easy to get all my files from my backup hard drive, and online passwords, bookmarks, and browser extensions through Firefox Sync or whatever it's called. I still haven't set up my Russian custom keyboard layout, but for the time being there's an on-screen keyboard you can turn on by clicking on the keyboard icon in the bottom right of the taskbar (do we still call it a taskbar?) and navigating to virtual keyboard -> Russian. It's not as convenient but I can live with it for now. My drawing pad also worked perfectly the moment I plugged it in.

But yeah, cases like my troubles setting up RVC goes to show the importance of fiddling around in a virtual machine or live environment before installing Linux. It's good to get some practice and a better idea of what to expect for your own computing needs. But I do think that for most average people, you'll be able to get everything you need set up pretty easily. You might need to unlearn some muscle memory, though.

This thread talks about some of the problems I experienced on my first day on Linux: TV HDMI issues, Tumblerd keeping me from ejecting a hard drive, and setting up trackpad gestures. I've had a few minor hiccups since then as well, namely that the extraction of a very large 7zip archive on my external hard drive seemed to freeze up near the end (still don't have a solution for that, but it's no biggie) and that turning a TV HDMI connection off and on again through the display settings seemed to mess up the TV display (I fixed this by physically unplugging the HDMI and then plugging it back in again).

[-] oscardejarjayes@hexbear.net 4 points 1 week ago* (last edited 1 week ago)

If you need Windows only stuff with no open source alternatives, if you need user-facing complicated AI programs, or if you happen to be unlucky, it's not so fun. But usually, everything just works.

For some reason, even though a lot of the big companies run their AI infrastructure on Linux, AI that you run on your computer as a normal person often is developed on and requires Windows.

load more comments (2 replies)
[-] oscardejarjayes@hexbear.net 5 points 1 week ago
load more comments (8 replies)
[-] Edie@hexbear.net 5 points 1 week ago

That is some glorpshit.

[-] Edie@hexbear.net 4 points 1 week ago
load more comments
view more: next ›
this post was submitted on 02 Oct 2025
41 points (100.0% liked)

technology

24039 readers
131 users here now

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

founded 5 years ago
MODERATORS