this post was submitted on 27 Aug 2026
447 points (96.3% liked)
linuxmemes
32616 readers
1060 users here now
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
- Instance-wide TOS: https://legal.lemmy.world/tos/
- Lemmy code of conduct: https://join-lemmy.org/docs/code_of_conduct.html
2. Be civil
- Understand the difference between a joke and an insult.
- Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
- Don't get baited into back-and-forth insults. We are not animals.
- Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
- Bigotry of any kind will not be tolerated. This is an LGBTQ+-friendly community -- if that is a problem for you, you should leave.
3. Post Linux-related content
- Including Unix and BSD.
- Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of
sudo in Windows.
- No porn, no politics, no trolling or ragebaiting.
- Don't come looking for advice, this is not the right community.
4. No recent reposts
- Everybody uses Arch btw, can't quit Vim, <loves / tolerates / hates> systemd, and wants to interject for a moment. You can stop now.
5. ๐ฌ๐ง Language/ัะทัะบ/Sprache
- This is primarily an English-speaking community. ๐ฌ๐ง๐ฆ๐บ๐บ๐ธ
- Comments written in other languages are allowed.
- The substance of a post should be comprehensible for people who only speak English.
- Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
6. (NEW!) Regarding public figures
We all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations.
- Keep discussions polite and free of disparagement.
- We are never in possession of all of the facts. Defamatory comments will not be tolerated.
- Discussions that get too heated will be locked and offending comments removed.
ย
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
founded 3 years ago
MODERATORS
This one hurts.
Never thought about it, but wouldn't that just fail after the first one it fails to find? I think most install commands return nonzero if nothing is installed
Should probably use or instead of and
Nope, this launches all those commands in parallel. Logical and is
&&.And strict mode (
set -e) is offI don't get it. Looks like a script that runs all these things, but I don't get the one dollar.
The
$1is a positional variable. So if you run./script.sh arg1$1 would be arg1 in that example, $0 would be the ./script.sh. It's the simplest way to pass an argument to a script.So... huh? What role does this play, since all the lines in the picture have $1? If you run it with arg1, won't it run them all? And if you left out arg1 and also didn't add $1 to each line, wouldn't it also just run all of them?
So the joke is, you've got something you want to install, be it a Python module, Java library, steam game, desktop application, whatever. You want it installed, figuring out which package manager has it and remembering the exact command syntax starts getting to be a pain, so just use this script to try installing it from a variety of sources.
You would evoke it by running
./install.sh packageand it will replace all instances of $1 with the string "package" at runtime. The ampersand at the end of each line will run that line as a separate background process rather than in the foreground process, so effectively this will attempt to install "package" or whatever you put in as an argument from a half dozen sources simultaneously in parallel.These include the old and new Python package managers, the old and new Red Hat package managers, debian/Ubuntu's APT with and without sudo, cloning a git repo and building from source, and the icing on the cake is curling directly into bash.
Don't curl directly into bash. You'll catch genital rabies.
Remember that this is an XKCD comic, it's a joke. The alt-text says "The failures usually don't hurt anything and if it installs multiple versions it increases the chance one of them is right. (the 'yes' command and '2>/dev/null' are recommended additions.)" "Yes" is a bash command that will spam 'y' in the terminal, the point of it is to answer yes to any questions an automated system asks, and 2>/dev/null will stop it from displaying errors. These add an even deeper level of Yolo-ing.
Ah alright. Pretty sure I get it now. Thank you for explaining!
Yes, that is the intention. When you're following some guide online and it requires you use some "software", you may not know how to install that software.
This install.sh script tries package managers, because one of them will probably work. Others will fail.
For example, installing numpy (python package): pip install succeeds and all the other ones (hopefully) fail.
Installing libcurl4-openssl-dev (curl with openssl library file): apt-get install works and all other ones (hopefully) fails.
Longer and more thorough explanation:
https://www.explainxkcd.com/wiki/index.php/1654:_Universal_Install_Script