<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DoctorOW</id>
		<title>explain xkcd - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://www.explainxkcd.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DoctorOW"/>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php/Special:Contributions/DoctorOW"/>
		<updated>2026-04-30T21:19:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1654:_Universal_Install_Script&amp;diff=114658</id>
		<title>1654: Universal Install Script</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1654:_Universal_Install_Script&amp;diff=114658"/>
				<updated>2016-03-11T06:03:10Z</updated>
		
		<summary type="html">&lt;p&gt;DoctorOW: Fix typo!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1654&lt;br /&gt;
| date      = March 11, 2016&lt;br /&gt;
| title     = Universal Install Script&lt;br /&gt;
| image     = universal_install_script.png&lt;br /&gt;
| titletext = The failures usually don't hurt anything, and if it installs several versions, it increases the chance that one of them is right. (Note: The 'yes' command and '2&amp;gt;/dev/null' are recommended additions.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|This is an initial summary. Please check the facts about the repositories, I am not 100% familiar with them. Maybe a note should be made of Steam's odd presence and the reason for &amp;quot;apt-get &amp;amp; sudo apt-get&amp;quot;? Something like &amp;quot;many standard popular repository programs (and Steam, a game platform, which usually is not used for most programs)&amp;quot;? I'm not sure how to word it.}}&lt;br /&gt;
Most users of computers today are used to simple, easy installation of programs. You just download a .exe or a .dmg, double click it, and do what it says. Sometimes you don't even have to install anything at all, and it runs by itself, no problems.&lt;br /&gt;
&lt;br /&gt;
However, when things are more &amp;quot;homebrew&amp;quot;, for example downloading source code, things are more complicated. You have to work with &amp;quot;build environments&amp;quot; and &amp;quot;makefiles&amp;quot;, and command line interfaces. To make this process simpler, there exist repositories of programs which host packages of source code and the things needed to build it. When you download the package, it automatically does most of the work of building the code into something executable. However, there are many such repositories, such as &amp;quot;pip&amp;quot; and &amp;quot;brew&amp;quot;, among others listed in the comic. If you only know the name of a program, you may not know on which repository(ies) it resides.&lt;br /&gt;
&lt;br /&gt;
The script provided in the comic attempts to fix this problem, by giving a &amp;quot;universal install script&amp;quot;. It accepts the name of a program when you run it, and stores it in &amp;quot;$1&amp;quot;. This value is then referenced for a large number of commands. Everywhere the script says &amp;quot;$1&amp;quot;, it puts in the name of the program you gave it. The end result is the name being tried against a large number of software repositories, and hopefully, at least one of them will match and the program will be successfully installed. At the very end, it changes into the directory that is assumed to hold the newly installed package, and then runs several commands which build the program.&lt;br /&gt;
&lt;br /&gt;
All in all, this script would probably work; it runs many standard popular repository programs, and runs the nearly-universal commands to build the program.&lt;br /&gt;
&lt;br /&gt;
One of the more subtle jokes in the comic is the inclusion of &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sudo apt-get&amp;lt;/code&amp;gt; in the same script. In most cases this would be redundant as the &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; command is just to add admin permissions. This could be a reference to a joke in the Linux community about forgetting to include the sudo command. An example of this joke being used elsewhere was a  [https://twitter.com/liamosaur/status/506975850596536320 viral tweet] that showed a workaround for the issue.&lt;br /&gt;
&lt;br /&gt;
The title text mentions the possibility that the same program may be on multiple repositories, so in this case, the script will download and install several versions, or it may fail on a number of repositories, in which case usually nothing bad happens. It mentions that adding a way of automatically saying &amp;quot;yes&amp;quot; to questions asked during the different repository-fetching programs' running could simplify things further.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
[The comic is shown in a rectangular box, with the title &amp;quot;INSTALL.SH&amp;quot; at the top. Below it is a shell script:]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
pip install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
easy_install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
brew install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
npm install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
yum install &amp;quot;$1&amp;quot; &amp;amp; dnf install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
docker run &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
pkg install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
apt-get install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
sudo apt-get install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
steamcmd +app_update &amp;quot;$1&amp;quot; validate &amp;amp;&lt;br /&gt;
git clone https://github.com/&amp;quot;$1&amp;quot;/&amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
cd &amp;quot;$1&amp;quot;;./configure;make;make install &amp;amp;&lt;br /&gt;
curl &amp;quot;$1&amp;quot; | bash &amp;amp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>DoctorOW</name></author>	</entry>

	<entry>
		<id>https://www.explainxkcd.com/wiki/index.php?title=1654:_Universal_Install_Script&amp;diff=114657</id>
		<title>1654: Universal Install Script</title>
		<link rel="alternate" type="text/html" href="https://www.explainxkcd.com/wiki/index.php?title=1654:_Universal_Install_Script&amp;diff=114657"/>
				<updated>2016-03-11T06:02:33Z</updated>
		
		<summary type="html">&lt;p&gt;DoctorOW: Possible explanation for `apt-get &amp;amp; sudo apt-get`&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{comic&lt;br /&gt;
| number    = 1654&lt;br /&gt;
| date      = March 11, 2016&lt;br /&gt;
| title     = Universal Install Script&lt;br /&gt;
| image     = universal_install_script.png&lt;br /&gt;
| titletext = The failures usually don't hurt anything, and if it installs several versions, it increases the chance that one of them is right. (Note: The 'yes' command and '2&amp;gt;/dev/null' are recommended additions.)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
{{incomplete|This is an initial summary. Please check the facts about the repositories, I am not 100% familiar with them. Maybe a note should be made of Steam's odd presence and the reason for &amp;quot;apt-get &amp;amp; sudo apt-get&amp;quot;? Something like &amp;quot;many standard popular repository programs (and Steam, a game platform, which usually is not used for most programs)&amp;quot;? I'm not sure how to word it.}}&lt;br /&gt;
Most users of computers today are used to simple, easy installation of programs. You just download a .exe or a .dmg, double click it, and do what it says. Sometimes you don't even have to install anything at all, and it runs by itself, no problems.&lt;br /&gt;
&lt;br /&gt;
However, when things are more &amp;quot;homebrew&amp;quot;, for example downloading source code, things are more complicated. You have to work with &amp;quot;build environments&amp;quot; and &amp;quot;makefiles&amp;quot;, and command line interfaces. To make this process simpler, there exist repositories of programs which host packages of source code and the things needed to build it. When you download the package, it automatically does most of the work of building the code into something executable. However, there are many such repositories, such as &amp;quot;pip&amp;quot; and &amp;quot;brew&amp;quot;, among others listed in the comic. If you only know the name of a program, you may not know on which repository(ies) it resides.&lt;br /&gt;
&lt;br /&gt;
The script provided in the comic attempts to fix this problem, by giving a &amp;quot;universal install script&amp;quot;. It accepts the name of a program when you run it, and stores it in &amp;quot;$1&amp;quot;. This value is then referenced for a large number of commands. Everywhere the script says &amp;quot;$1&amp;quot;, it puts in the name of the program you gave it. The end result is the name being tried against a large number of software repositories, and hopefully, at least one of them will match and the program will be successfully installed. At the very end, it changes into the directory that is assumed to hold the newly installed package, and then runs several commands which build the program.&lt;br /&gt;
&lt;br /&gt;
All in all, this script would probably work; it runs many standard popular repository programs, and runs the nearly-universal commands to build the program.&lt;br /&gt;
&lt;br /&gt;
One of the more subtle jokes in the comic is the inclusion of &amp;lt;code&amp;gt;apt-get&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sudo apt-get&amp;lt;/code? in the same script. In most cases this would be redundant as the &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; command is just to add admin permissions. This could be a reference to a joke in the Linux community about forgetting to include the sudo command. An example of this joke being used elsewhere was a  [https://twitter.com/liamosaur/status/506975850596536320 viral tweet] that showed a workaround for the issue.&lt;br /&gt;
&lt;br /&gt;
The title text mentions the possibility that the same program may be on multiple repositories, so in this case, the script will download and install several versions, or it may fail on a number of repositories, in which case usually nothing bad happens. It mentions that adding a way of automatically saying &amp;quot;yes&amp;quot; to questions asked during the different repository-fetching programs' running could simplify things further.&lt;br /&gt;
&lt;br /&gt;
==Transcript==&lt;br /&gt;
{{incomplete transcript}}&lt;br /&gt;
&lt;br /&gt;
[The comic is shown in a rectangular box, with the title &amp;quot;INSTALL.SH&amp;quot; at the top. Below it is a shell script:]&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
pip install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
easy_install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
brew install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
npm install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
yum install &amp;quot;$1&amp;quot; &amp;amp; dnf install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
docker run &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
pkg install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
apt-get install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
sudo apt-get install &amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
steamcmd +app_update &amp;quot;$1&amp;quot; validate &amp;amp;&lt;br /&gt;
git clone https://github.com/&amp;quot;$1&amp;quot;/&amp;quot;$1&amp;quot; &amp;amp;&lt;br /&gt;
cd &amp;quot;$1&amp;quot;;./configure;make;make install &amp;amp;&lt;br /&gt;
curl &amp;quot;$1&amp;quot; | bash &amp;amp;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{comic discussion}}&lt;/div&gt;</summary>
		<author><name>DoctorOW</name></author>	</entry>

	</feed>