this post was submitted on 09 Apr 2024
311 points (98.7% liked)
Linux
48697 readers
1383 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
How do people not using Debian/Ubuntu follow along with tutorials when their package manager doesn't have a package that's in Apt?
As an Arch user (btw), that's rarely an issue thanks to the AUR and it's vast package pool :) But on the very rare occasion that it's not there on the AUR but available as a deb, I can use a tool called Debtap to convert the .deb to the Arch's .tar.zst package.
For rpm-based distros like Fedora and OpenSUSE etc, there's a similar tool called
alien
that can convert the .deb to .rpm.In both instances though, dependencies can be a pain, sometimes you may need to trawl thru the dependencies and convert/install them, before to do the main package.
Ideally though, you'd just compile from source. It used to be a daunting task in the old days, but with modern CPUs and build systems like meson, it's not really a big deal these days. You'd just follow the build instructions on the package's git repo, and usually it's just a simple copy-paste job.
Finally, if these packages are just regular apps (and not system-level packages like themes etc), then there are multiple options these days such as using containers like Distrobox, or installing a Flatpak/Appimage version of that app, if available.
Thanks for the explanation btw. Ive tried other distros but quickly ran into missing dependencies and drivers and instantly gave up on it and just went back to Ubuntu.
The other reply here mentioned Arch and a "more user friendly" flavor called Manjaro, but Manjaro isn't quite Arch.
I would suggest if you want to try the challenge of Arch without the terminal-only install, give EndeavourOS a look! Their community is exceptionally friendly and helpful, and you get a lot of the benefits of "pure Arch" with an indtaller and usability features. :)
I have had problems even just using Kubuntu and certain libraries not working because of the QT dependency version from KDE. Then I wasn't able to update QT because KDE didn't support the newer version. I quickly gave up on trying to solve dependency hell and went back to stock Ubuntu. Am now traumatized for life of using other distros.
Aw that's such a bummer! I don't have a ton of experience here but currently I'm running OpenSUSE Tumbleweed, and something it does is say "This dependency can't be satisfied, what do you want to do?"
You can usually "keep obsolete", "remove the thing", "ignore this and risk breaking it".
If I keep hitting "keep obsolete" and it just goes in circles, I wait a few weeks and usually everything has been pushed by then. :)
I wonder if this mismatch could be from the 'buntu distros holding back certain packages differently from KDE's schedule... I sadly don't know enough to comment. 😅
Yes Ubuntu is definitely slower in the update cycle. But virtually everyone in the programming world seems to use it and wikis almost always get based on an Ubuntu LTS version.
As a random example take ROS2
Even when a new version such as 24.04 comes it usually takes almost six months for people to start migrating and libraries to become well supported on it.
Never actually missed important dependencies in AUR.
So you might give Arch or derivatives a spin. Warning: Arch relies on you knowing what you're doing. You can bork something by doing it the wrong way. Manjaro helps, but has its own issues - mainly, you better not use AUR unless you actually need it.
Running OpenSuSE Tumbleweed, I can't say that's ever been a real issue. I ran Ubuntu a long time (10 years, at least) ago, but too much stuff was broken and version updates were a chore. Maybe it's gotten better since.
I typically search the package name + fedora, it will probably tell me the alternative package that is in fedora.
Nowadays, I have moved to an atomic fedora distro, so I would severely limit the amount of package I install on my system for stability and security.
I think I only have two packages installed on my machine: fish, because it is the only popular shell that follows xdg dir; and a latex-like input method to use in slack.
Back in my slackware days I’d just convert other distros packages to the tgz format or compile the package and its requirements.
If the dependencies were really complex I’d draw a picture to help me understand them better.
My first step is usually to figure out whether the package should exist as a separate entity under Gentoo (which, for instance, doesn't have separate dev packages). Then I check the overlay masterlist to see if there's an unofficial package (which there often is).
If there is no package, I can package it myself (since I've been working with the same distro for years and can handle the basic packaging cases), install from source, get the .deb and apply alien or deb2targz and proceed from there, or give the whole thing up as a bad job.
I usually look at their GitHub or what have you to see if there are packages or instructions there. I have been able to solve most issues this way. Otherwise I see how much of a bitch it will be to compile from source. Depending what it is, I also check to see if there is a docker image instead.