this post was submitted on 18 Mar 2024
46 points (100.0% liked)
libre
9656 readers
4 users here now
Welcome to libre
A comm dedicated to the fight for free software with an anti-capitalist perspective.
The struggle for libre computing cannot be disentangled from other forms of socialist reform. One must be willing to reject proprietary software as fiercely as they would reject capitalism. Luckily, we are not alone.
Resources
- Free Software, Free Society provides an excellent primer in the origins and theory around free software and the GNU Project, the pioneers of the Free Software Movement.
- Switch to GNU/Linux! If you're still using Windows in
$CURRENT_YEAR
, flock to Linux Mint!; Apple Silicon users will want to check out Asahi Linux. - Social Media Recommendations:
- The Linux Experiment: Weekly news host for Linux/libre software related news.
- Nicco Loves Linux: Developer for KDE who makes interesting videos.
- David Revoy: An incredible artist with a cool webcomic, all done with GNU/Linux.
- Michael Horn: Makes videos about his various experiences with Linux.
Rules
- Be on topic: Posts should be about free software and other hacktivst struggles. Topics about general tech news should be in the technology comm or programming comm.
- Avoid using misleading terms/speading misinformation: Here's a great article about what those words are. In short, try to avoid parroting common Techbro lingo and topics.
- Avoid being confrontational: People are in different stages of liberating their computing, focus on informing rather than accusing. Debatebro nonsense is not tolerated.
- All site-wide rules still apply
Artwork
- Xenia was meant to be an alternative to Tux and was created (licensed under CC0) by Alan Mackey in 1996.
- Comm icon (of Xenia the Linux mascot) was originally created by @ioletsgo
- Comm banner is a close up of "Dorlotons Degooglisons" by David Revoy (CC-BY 4.0) for Framasoft
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
For beginners it doesn't really matter and this advice will get them going, but I do want to push back on this a bit.
There are two methods of solving the problem of dependency hell. Package managers are the correct way. Distribution package managers are incredibly robust and should always be the first option. These are state-of-the-art systems. They look at what is compatible, they restrain you from doing things which won't work, and they make sure EVERYTHING gets upgraded when a new exploit is discovered. The other way of solving dependency hell is bundling. Bundling is when every application ships with its own versions of its own dependencies. Bundling tends to work with a lot less up-front effort, but it takes up more space (on disk and in memory), and it also means you have several versions of these dependencies lying around, and they don't get updated automatically. They might never get updated unless the individual producers of the software decide so (and you remember to keep track of their announcements). This essentially reproduces the security model we're familliar with under Windows. Where we fetch software from all corners of the internet, install it, and it never gets updated.
It takes a little longer for everything to come together in a distribution package repository, but this is due to the amount of effort distribution maintainers invest in testing, as well as stripping out bundled dependencies and ensuring they can be independently tracked and updated. Distributions will keep software running on the newest available dependencies even if upstream development has been dormant for some time.
Now, not every package repository has a laser focus on every discipline. Where they fall short, this is where things like AppImages and FlatPaks (or cloning a Git repository and compiling it yourself) come in handy. But this is all technical debt. This is stuff you end up becoming responsible for maintaining yourself, which won't update along with your distribution. The more work you let your distribution do for you, the less effort it will take to keep things running smoothly.
If something packaged by your distribution doesn't work, trying out a bundled package (AppImage, FlatPak, or a language-specific package manager like cargo/pip/npm etc) can be a great sanity check. If your VLC is broken and you try an AppImage of it and it works, A: you get to watch your movie, and B: You've learned something. Try to figure out why one works and the other doesn't.
watashi no
sudo flatpak update
:static-linking-shining:
That's bundling (library code with the program code). What shines here are Nix and Guix, where variations of one thing can coexist in
/nix/store