I've been transitioning to Linux recently and have been forced to use github a lot when I hadn't much before. Here is my assessment.
Every github project is named something like dbutils, Jason's cool photo picker, or jibbly, and was forked from an abandoned project called EHT-sh (acronym meaning unknown) originally made by frederick lumberg, forked and owned by boops_snoops and actively maintained by Xxweeb-lord69xX.
There are either 3 lines of documentation and no releases page, or a 15 page long readme with weekly releases for the last 15 years and nothing in between. It is either for linux, windows, or both. If it's for windows, they will not specify what platforms it runs on. If it's for Linux, there's a 50% chance there are no releases and 2 lines of commands showing how to build it (which doesn't work on your distro), but don't worry because your distro has it prepackaged 1 version out of date and it magically appears on flatpak only after you've installed it by other means. Everything is written in python2. It is illegal to release anything for Mac OS on github.
Then think “I’ll figure it out later” but you never do. Only to be reminded of it a month later when you happen to see it scroll by in an apt-or-whatever package upgrade.
“Oh yeah, I forgot about that. I should check that thing out again” you think to yourself. But you never do. Repeat for eternity.
Helix Editor did this to me. They have so much documentation on their site about how to use the editor, how to extend it, theme it, etc., etc. What they didn't seem to document, though, is that the binary is named hx, not helix :/
The fun part is that as a dev, you don't really know that either. It's just the file name of the executable. Anyone can rename that.
And even if it's not renamed, you still don't know, if your users need to call it with just hx or with ./hx or some other path.
Obviously, you should mention somewhere that the executable is likely called hx, but because that requires an explanation, there's certainly a tendency to not mention it very often...
I think they meant you don't know what the binary is called because it doesn't match the package name. I usually list the package files to see what it put in /use/bin in such cases.
If it's for Linux, there's a 50% chance there are no releases and 2 lines of commands showing how to build it (which doesn't work on your distro), but don't worry because your distro has it prepackaged 1 version out of date
There's a tool called Distrobox.
You can install it (via CLI I think?), and then manage it the easiest graphically way via BoxBuddy (available in your Software Center), or just the terminal if you prefer it.
With it, you can screw all those "Doesn't work on my distro" moments.
You're on Linux Mint? No problems, here's the AUR for you!
✨✨✨ BONUS: Your OS won't break anymore randomly due to some AUR incompatibility, because everything is containerized! ✨✨✨
Even if you run Arch, use it to install AUR stuff. Or Debian/ Ubuntu, add PPAs only via Distrobox.
It's absolutely no virtual machine. It basically only creates a small, lightweight container with all dependencies, but it runs on your host. Similar to Flatpaks.
You can also export the software, and then it's just like you would have installed it natively!
Your distro choice doesn't matter anymore. You now can run any software written only for Suse, an abandoned Debian version 10 years ago, Arch, Fedora, Void, whatever. It's all the same.
That's great, but it should still be possible and well documented for people to run things natively. Some people want less bloat for technical reasons (maintaining a product with very little storage or memory). Tinycore Linux is my go-to example of the benefit of keeping things lightweight for a purpose.
When you're maintaining a product that is based on linux, you're surely qualified to port that thing to your platform yourself.
Open source developers are thanklessly giving away their work for free already, and for the many things where there's just a github page it is just a one man show run in spare time. Don't demand them to give away even more of their time to cater for whatever distro you're using, just because you are not willing to invest the time to learn how linux works and also not willing to give a way a few megabytes for the dependencies they're developing against.
All the discussions about things like distrobox and flatpak where linux novices express their dissatisfaction due to increased disk space are laughable. In the linux universe sole users have no power in deciding what goes, they do not pay anything and at worst pollute the bug tracker. Developers are what make up the linux universe, and what appeals to them is what is going to happen. Flatpak is a much more pleasant experience to develop for than a gazillion distros, hence this is where it is going, end of story. As a user either be happy with wherever the linux rollercoaster goes, or - if you want to see change- step up and contribute.
Each to their own. Linux is, in my opinion, about choice.
If one prefers everything to be ultra minimalist, native and lightweight, then that's fine.
I personally just find to be Linux' most overlooked strength is containerization.
It's one of the main reasons why most servers run Linux, because of things like Docker.
On the desktop, containers are way underutilized, but that's now slowly changing with things like Flatpak or Distrobox.
A distrobox container is technically more bloated than a native install, sure, that's correct.
But, in my opinion, it's like saying "Drawers and closets are bloat for my apartment. I throw everything on the floor." Yeah, now you have less things in your room, but it looks like shit, you can't find anything and you fall over your tubberware that's mixed with your underwear and shampoo.
Having everything collected in a container only costs me a few hundred MBs and a small amount of RAM if needed.
But, literally every PC has more than 50 GB hard drive space and 8 GB RAM. If your system slows down because of one container, then your PC is the problem, not distrobox.
That absolutely doesn't mean we should stop optimizing software of efficiency. But it can help us to spend our time on more important stuff, like fixing bugs or adding new cool features.
I really love Flatpak because of that. Sure, it has some drawbacks, but as soon as more devs support Flatpak officially, and iron out some issues we currently have, like misconfigured permissions, they're (imo) the best package format.
Why should a distro maintainer have to apply every software change to their package format? That's needlessly duplicated work.
your distro has it prepackaged 1 version out of date
And the only reason you wanted to install the thing is because it's a prerequisite for some other thing you wanted to install, which requires the latest version.
Then you do a clean up day and start removing shit you don't know what is or even use. Then a few weeks later something doesn't work and you don't know why, but it was probably something you removed, so you go through the entire git journey again, throwing and taking the exact same punches to get things running.
I'm currently in the process of updating Slackware's documentation, some of which hasn't been touched in 12 years.
It's completely out of date, so no one uses it anymore.
And because no one uses it, no one updates it.
You're doing "Bob's" work son, thank you for your service!
As a devout SubGenius myself it is my destiny to use Slackware one day but alas I fear it is currently above my skill level, more documentation will help people like me greatly! PRABOB!
Also fyi to OP: never install software system-wide without your package manager. No sudo make install, no curl .. | sudo bash or whatever the readme calls for. Not because it's unsafe, but because eventually you're likely to end up with a broken system, and then you'll blame your distro for it, or just Linux in general.
My desktop install is about a decade old now, and never broke because I only ever use the package manager.
Also fyi to OP: never install software system-wide without your package manager. No sudo make install, no curl .. | sudo bash or whatever the readme calls for.
And that is why Linux isn't ready for mass adoption.
I had to fuck around for hours to make my wifi adapter work and everyone was referencing this one project on GitHub and the way to install it and what actually worked was to sudo make install.
You're the first person I see that's saying not to do that, I had to use instructions from the Linux Mint forum to try and get it installed the first time and no one mentioned that, I found alternative projects but none of them had clear instructions "You must have installed X, Y, Z first" without any explanation how to do it.
So, for new users, Linux is all about blind trust in strangers to make stuff work and if you have no interest in learning programming that's what your experience will continue to be.
😁I prefer yay to search and install stuff from AUR using a single command 🥰 and if you choose the endeavour flavour of arch, then you have yay preinstalled 😋👌🏻
How the fuck do you have a decade old arch installation? I have to reinstall it about every half a year because something breaks and its to complicated to fix it so I just choose to reinstall everything. In the 18 Months or so that I used Arch I had to reinstall it about 4 times. I don't even install that much stuff and I also don't go absolutely wild with configuration, but Theres A lot of stuff breaking in my system.
I also got used to just ignoring problems because I'm to lazy to reinstall everything or spend hours upon hours fixing my system.
Really love arch and the AUR. I've been tempted to get nix set up for the rare cases when there's no AUR package or the AUR package is unmaintained. I figure if there's no package in the AUR or nixpkgs, it's probably not worth running.
When I first moved to linux I felt this same way. It gets better. Now days I fucking love those 15 page ReadMes and I'm not bothered if there's no steps for my distro. The sheer volume of documentation surrounding linux packages is insane. There's often a ton of ways to configure and manage the to fit your needs. That freedom is what I love so much about linux.
As for the ones with 2 lines, I don't think I've seen that as much. I generally would avoid them unless the source was clear what the project did.
At any rate there will come a day when it starts to click. It's just a marathon not a sprint.
Learning to read docs is basically learning how to learn. If good docs exist and you have the skill of reading them, your life will get significantly easier.
As someone who works fairly extensively with all three major platforms... You're definitely wrong about macOS here. Almost everything on GitHub that works on Linux also works on Mac, aside from GUI applications which are often more OS dependent. The readme pages often just lump Mac and Linux together as they can be pretty similar, especially for things written for interpreted languages (python) where it's often literally the same.
I recently bought a MacBook Air M1 and I came at it from a classic "ThinkPad with Fedora on it" Linux nerd perspective. I got given a Mac at work a couple of years ago, and I warmed to it. I agree that Macs are great tools for DevOps work. I used to think they were just for posers but I've been converted.
Yep. I'm Linux at home but macOS all day at work. My employer won't let us use Linux workstations (despite everything I work on being Linux...). Both are vastly superior to Windows.
Came here to say this. Just get home brew up and running. One you have gcc and your other basic tools installed, there's very few Linux guides that won't work on a Mac. A couple shell tools have different names, but that's about it.
Between homebrew and nix, the amount of foss macs can run out of the box is pretty close to some generic Ubuntu (nixpkgs is technically the largest repo out there, but not all of the nixpkgs are available on mac).
GitHub is a place you can use to easily put a copy of your code online. Many people just want to build a working solution and move on. Building a useful GitHub project, with fancy stuff like releases, is work that isn't really solving any issues. Many people don't like doing it. Many people especially don't want to invest time in proprietary solutions like GitHub. They might not even accept pull requests on GitHub.
It's been a while since I've used Gentoo, but aren't their repos fairly robust? I don't remember having to use GitHub (or SourceForge back then) for much at all.
If you've been using Linux for 20 years that makes sense, as I have a lot of applications I used on windows that are not available on linux and have no alternative in any repo or flatpak, only as weird little projects on github (that don't work half the time). So I've spent a lot of time trying to replicate a resemblance of my work flow and QoL luxuries. Your work flow has been refined over that 20 years with little windows influence.
What's your bubble of interests? I mean I've seen Github projects where that description fits very VERY well. Usually when I'm attending to some very niche hobbies. Or try to get some exotic electronics from 20 years ago running again... With the everyday tools it's most of the times some active community and I copy and paste the 3 commands and I have it installed successfully.
You get used to how to find the right way of doing stuff. If you're still in the Windows biased search results space, everything FOSS is made to look sketchy. Those search results are not deterministic. That bias is intentional. Eventually Microsoft stops biasing you or bribing Google to do the same and your search results will be better. Then you stop using the search results all together for the most part. You'll figure out that the ways you did things in the past were inefficient and usually wrong. There are better ways that you'll discover and those repos are self hosted or on gitlab or elsewhere. You eventually just use RPM fusion, or you setup distrobox with Arch and the AUR, or you toss on the Nix package manager and start using flakes. The vast majority of my initial headaches were due to trying to replicate Windows workflows. Then I learned all of that was weird and pretty backwards.
Guy, nobody is making FoSS pages and documentation hard to find or read. The developers take care of that themselves. You've invented a story that had no basis in reality. At least the other posters admit it's lack of time and some overworked dude in his basement.
While I do see most of the listed stuff happened to me before, they only appear once in a while and it's often just one sentence in the list is true. I think OP is trying to make an exaggerating slander where it's extremely unlucky to have more than 5 sentences is right
Yeah you want to know the funny thing: I ended up on Github a lot when I was new to Linux, but that has happened less and less over time and I think it's due to two unrelated factors:
I have assimilated. As a Microsoft emigrant, I was used to doing things a certain way, there were things I didn't know about Linux, I hadn't really chosen the hardware I owned for Linux compatibility, etc. So I kept having to go get weird device drivers and weird little software packages to work on my distro and open my old files and such. But as I've gotten used to the ecosystem, replaced my old hardware with that which is Linux compatible out of the box etc. I've needed to do something weird less and less often.
Flatpak and Appimages have risen in popularity. It's easier to get the software you need, that runs on your distro, that is up to date and modern, even if it's not very popular. Because a variety of software is available in these formats it's easy to get what I need, be it commercial software, esoteric little stuff for my niche pastimes, etc.