What software have you found particularly frustrating or difficult to configure on Linux?
Multiple versions, paths, and installs of Python. Using pip makes it worse.
pyenv and pyenv-virtualenv together solves this for me. Virtualenv with specific python versions that work together well with other tools like pip or poetry.
It boils down to something like
$ pyenv install 3.12.7 $ pyenv virtualenv 3.12.7 myenv $ pyenv activate myenv
and at that point you can do regular python stuff like pip installing etc.
If you’re having to type out version numbers in your commands, something is broken.
I ended up having to roll my own shell script wrapper to bring some sanity to Python.
You misunderstand, the first two commands are just one time setup to install a specific python version and then to create an env using that version. After that all you need is `pyenv activate myenv´ to drop you into that env, which will use the correct python version and make sure everything is isolated from other environments you might have.
You can also just create an env with the system python version, but the question was specifically about managing multiple versions of python side by side and this makes that super easy.
You could also combine it with
direnv
to automatically drop you into the correct environment based on the folder you are in, so you don’t have to type anything after the initial setup.The issue is more general. When dealing with, say,
apt
, my experience is that nothing ever breaks and any false move is immediately recoverable. When dealing with Python, even seemingly trivial tasks inevitably turn into a broken mess of cryptic error messages and missing dependencies which requires hours of research to resolve. It’s a general complaint. The architecture seems fragile in some way. Of course, it’s possible it’s just because I am dumb and ignorant.When you come across some Python code for something written 5 years ago and they used four contributed packages that the programmers have changed the API on three times since then, you want to set up a virtual environment that contains those specific versions so you can at least see how it worked at that time. A small part of this headache comes from Python itself mutating, but the bulk of the problem is the imported user-contributed packages that multiply the functionality of Python.
To be sure, it would be nice if those programmers were all dedicated to updating their code, but with hundreds of thousands of packages that could be imported written by volunteers, you can’t afford to expect all of them them to stop innovating or even to continue maintaining past projects for your benefit.
If you have the itch to fix something old so it works in the latest versions of everything, you have that option… but it is really hard to do that if you cannot see it working as it was designed to work when it was built.
I have limited Python experience, but I always thought that’s what virtualenvs and requirements.txt files are for? When I used those, I found it easy enough to use.
Especially during the transition from 2 to 3. Let’s hope that’s all behind us.
You really don’t want to use pip. That’s how you download malicious code.
Fortunately I haven’t had to open it in a very long time.
Similar here. I used to have 2 screens that if they turned off for powersaving only 1 of them would wake up. So I had a script on the desktop to do a reset and move them correctly.
#!/bin/bash xrandr --output HDMI2 --off xrandr --output HDMI2 --auto --same-as HDMI1 xrandr --output HDMI1 --right-of HDMI2 exit
Why did we have to learn what modelines were to get a picture on screen?
Installing Fedora. I had almost nothing to configure, it worked out of the box. How frustrating! I had the whole day planned and now what? Enjoy my free time like a pleb !?!
(/s just in case anyone was wondering)
Have you any experience with HDR in Fedora? I’m getting ready to build a HTPC and I’m torn between fucking with Arch for everything, but getting bleeding edge support, or trying Fedora for the first time for easier system management. Since it’s an entertainment system, I’m not sure if I want to mess with all the Arch config requirements. But I do want solid HDR support.
Try Nobara. It’s based on Fedora but it’s got a whole bunch of gaming-related patches including all of the required additions for out-of-the-box HDR support.
Oh thanks! I’ll check it out.
As this is for a HTPC, I would rather go for uBlue Bazzite instead of Nobara. Same Fedora base, super gaming oriented too, but atomic/immutable so 0 maintenance.
Plus, uBlue projects are not distros but an alternative build pipeline system for Fedora Atomic projects. That means that the projects scope is tiny and much easier to maintain, and that the real distro maintainers are still the Fedora team. From a user perspective, it’s much better in the long term than a single-person effort like Nobara.
From the little research I’ve done, I don’t think that I want an immutable OS. Sure, I only want to use it as a HTPC today, but what about tomorrow when I find some obscure thing I need to do that requires me to change some things?
Sure you’re absolutely free to do as you please ;)
From personal experience tho, anything connected to the TV should Just WorkTM. Nothing more frustrating than just wanting to watch an episode or play a quick game before going to bed and having to spend this time doing updates and maintenance instead.
That’s a good point, and something I’ll think about before deciding.
Running Fedora with dual HDR monitors just fine, but it’s entirely possible that something is off that I’m not catching. They’re also running off my Nvidia GPU.
I’ll just add that they look the same as when I used to run Win10 on the same box.
That’s great to hear. I’d miss the AUR, but I think I’ll just try Fedora out for this build. I want to play with the computer, not tinker with the OS.
Oh, just FYI I don’t game, so if there are some HDR features for gaming you’re hoping for, I can’t speak to that.
Yes, I’m going to use it as a couch console, web browser player for MLB games, and a streaming machine. I did a bunch of reading after posting my last comment and decided that I’ll just stick with Arch. Fedora sounds alluring for the simplicity, but I think I’ll miss the AUR and the rolling release cycle too much. I finally pulled the trigger this afternoon and bought the components after looking at them in my cart on Newegg for a week straight. It should be a pretty rad system
Do whatever works best for you.
I will say that after years and years of regularly switching workstation and laptop distros for a variety of reasons, after finally giving Fedora a shake, I’m done. I’ve installed it on both my primary laptop and desktops and can’t imagine switching again.
But I am still sticking with Debian as my primary server base.
Debian is about as perfect as you can get for a headless server.
You have me curious again after hearing you’ve tried everything. Maybe I’ll give it a whirl. It’s not like I can’t switch to Arch later. It’ll be just as much of a pain in the ass later as it will sooner, and I just might find a new favorite OS. LOL. Plus, I do dig Gnome, and I think it’s probably a better DE for a HTPC than KDE.
Xserver… Somehow trying to find the magic string of letters and numbers that made your screen work.
Modeline ftw.
Shudder. I had this weird brand laptop… Sotec IIRC and there just wasn’t a modline that ever got it all right.
Suspend with an Nvidia gpu
I gave up and went back to x11. The final straw was when system settings stopped opening, and I couldn’t figure out why.
That’s fair, I’ve found wayland to generally be pretty good with Linux now and you can pry hyprland from my cold dead hands
I still don’t fully understand how to gracefully have multiple desktop environments and switch between them. When I want to try something new to me like lxqt, I usually spin up a VM.
Normally, the process is:
- install the packages for the desktop environment
- log out (not just locking the screen)
- find a dropdown or cogwheel where you can select the other desktop environment
- log in
Having said that, I don’t know what you mean with “graceful”. Desktop environments may involve lots of packages, which may create configuration files in your home directory or get auto-started in your other DEs, so it can be messy.
Something minimal, like LXQt or the various window managers, isn’t going to cause much of a mess, though.I guess, creating a second user with a separate home-directory, like the other person suggested, would isolate that potential mess…
Just add a new user
Create a different user for each desktop environment.
Put all the users in a group that has full write access to a shared folder you use for your files.Linux is a multi-user system, use that.
I remember being stubborn and trying to setup eduroam at my uni library using only wpa_supplicant for a whole day. Hugely frustrating. Gave up and installed NetworkManager and it just fucking worked… my tech minimalism phase was extremely counterproductive lol
Setting up a matrix server was a god damn nightmare for me. I eventually got it working but I hit pretty much every conceivable obstacle along the way. Getting the config file just right, the networking, the federation, the coturn server, getting end users to understand they need to backup their keys…
I’m sure it’d be easier for a Linux pro but I was in way over my head. Only got it working through stubbornness and help from the community.
Matrix is pain…
With the more recent updates it is a lot more stable
I’ve had to grapple with pipewire. My old pulseaudio config didn’t seem to work and I wanted to migrate to the pw config file format anyway, but I found the pw docs to be highly opaque. You get a thousand solutions for commands online, or tools you can do it visually in, but to apply that config you need to start the tool…
I’m a noob, granted, but there seemed to be a lot of assumed common knowledge that I just don’t have. And if I don’t even know what I’m missing, it’s hard to google for it.
I still cannot connect to captive portals for public WiFis, eg on train or hotel and I have no idea where the config comes from.
DNS? Resolve.conf? Systemd network manager? WTF?
(Probably for the best though, so I use my phone 5G and not these suss open networks )
I use this project (https://github.com/FiloSottile/captive-browser) which works most of the time.
Most captive portals work by answering the DNS requests with the captive portal ip. This works only if the correct dns servers are configured and a lot of security features like dnssec, DOH, … are disabled.
More info from the project author: https://words.filippo.io/captive-browser/
So you run this to sign into the portal, is that right? Thanks
Edit: OK had a read, I will look into this. I don’t have chrome on my machine but will see if it works with chromium swapped in instead. :)
If you connect to the network and open firefox, it will display a toast to open the corresponding captive portals page. You can then login through that. Given that your VPN isn’t blocking unencrypted connections etc.
Extrapolation of partial knowledge warning
I assume the network advertises a captive portals url and identifies you based on your MAC address.
The config is server-side (router).
I get “limited connection” I think when I try connect or “no internet”.
I don’t make it to load the portal page…
so maybe I’m not recieving at IP from the network?
I do construction work and travel every week. I’ve had this problem pop up in the last month when I connect to the hotel wifi. I just open Firefox and type in the default gateway IP and then it takes me to the login page. For whatever reason it stopped opening the page for me.
I still don’t properly grok Selinux at a fundamental and instinctual level. I understand the need for it, and I work with it to the best of my ability, but I wish there was a resource that could explain it from several different positions.
Irony: my main Linux workstation is OpenSuse
Pretty much everything is frustrating to configure at first. Then I learn it and it’s not so bad. Then I don’t use it for a few years, and completely forget how! Back to step 1.
I learned this lesson pretty quick when working in IT.
It’s not always feasible to document everything as it happens, but I definitely learned to do so if I had the time and means to while I was doing the thing.
Just started at a new company with 0 documentation, they’re super psyched that I’ve actually been writing down all their processes/procedures/configurations etc. as they explain them to me/as I work with them.
I really should learn this habit.
If you want to get into doing it, I found searching through a lot of note taking applications until I found something I really liked helped me remember to go do it regularly.
For FOSS stuff a lot of people like Joplin, and I could certainly recommend it. Personally though, I really like Obsidian for its backlinking and graph view features, but it’s not open source.
Furthermore, just carrying around a notebook and a pen everywhere you go as a habit helps a lot. I got into the habit of doing this by maintaining a personal journal for some time. For writing effective notation on paper which can easily be digitized, I would recommend looking into “bullet journaling” methods, and again, finding a notebook and pen that you really quite like, helps a lot to make the experience enjoyable and develop it as a skill.
Thanks very much. I’ll take a look at your suggestions.
Initial thought was “I can’t think of anything”. Then I started scrolling through this thread showering upvoted on all of the repressed memories.
Configuring captive portal wifi without network manager or any aids beyond what’s provided by wpa-supplicant. Eventually I gave up, since it wasn’t really that important.
Adjusting freetype so that it works more-or-less the way I want it to, because the maintainers hate anyone who disagrees with their current hinting algorithm and make the setting as opaque as possible. I would prefer it if they allowed me to have hinting on some fonts and exclude only the ones that were designed to be pixel-aligned, but unless something’s changed recently, that option isn’t even offered.
Isn’t it always postfix? Not because of the software, but because of other clients and other servers.
@delirious_owl @gwilikers I’ve been trying to setup a store and forward server with postfix and not having a lot of luck.
It used to be button 10 (also counting 4 scrollwheel directions and click) of my Elecom trackball. I had written a small C program reading the device node and writing the events just of that to stdout, then piping that to a tclsh script (so I could change it easily and it’s still super fast for gaming) which did something in X. Horrible. But then they added support for more buttons to everything (kernel, X) and now I can just map it in games, like any other.