Editing 797: debian-main

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 4: Line 4:
 
| title    = debian-main
 
| title    = debian-main
 
| image    = debian_main.png
 
| image    = debian_main.png
 +
| imagesize =
 
| titletext = dpkg: error processing package (--purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES
 
| titletext = dpkg: error processing package (--purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES
 
}}
 
}}
  
 
==Explanation==
 
==Explanation==
{{w|Debian}} is a GNU/Linux distribution most notable for introducing {{w|Advanced Packaging Tool|APT}} (Advanced Packaging Tool). APT is a tool that functions as an automated general software installer for GNU/Linux systems; all one has to do is tell it what software package they would like to install, and the program will automatically fetch the software and all of its dependencies (other packages that a program relies on, such as a library for processing ZIP archives) from a central ''repository''. It will also automatically handle upgrades by automatically checking if the repository version of a package is higher than the currently installed version, and it can even handle the use of multiple repositories and linking between them; for example, if a piece of software is deemed worthy of inclusion in Debian's main repository, but as a stable release, the software developers can provide their own repository to provide a more experimental version for users who want it, and once that repository is added to APT's source list, APT will automatically realize that it should use the experimental version, since it has a higher version than that of the main repository. Although this wasn't the first package management system for easy GNU/Linux installation (that honor goes to {{w|RPM Package Manager|RPM}}), it is the first one that seamlessly integrated online installation and upgrades into the mix.
+
{{w|Debian}} is a Linux distribution most notable for introducing {{w|Advanced Packaging Tool|APT}} (Advanced Packaging Tool). APT is a tool that functions as an automated general software installer for Linux systems; all one has to do is tell it what software package they would like to install, and the program will automatically fetch the software and all of its dependencies (other packages that a program relies on, such as a library for processing ZIP archives) from a central ''repository''. It will also automatically handle upgrades by automatically checking if the repository version of a package is higher than the currently installed version, and it can even handle the use of multiple repositories and linking between them; for example, if a piece of software is deemed worthy of inclusion in Debian's main repository, but as a stable release, the software developers can provide their own repository to provide a more experimental version for users who want it, and once that repository is added to APT's source list, APT will automatically realize that it should use the experimental version, since it has a higher version than that of the main repository. Although this wasn't the first package management system for easy Linux installation (that honor goes to {{w|RPM Package Manager|RPM}}), it is the first one that seamlessly integrated online installation and upgrades into the mix.
  
Debian's main repository, debian-main, is included by default in all Debian installations. It's what you might call the "canon" of Debian, containing only those packages that have been approved by official Debian developers. Thus, getting a package on debian-main means that it, theoretically, conforms to a standard of quality.
+
debian-main is Debian's main repository, included by default in all Debian installations. It's what you might call the "canon" of Debian, containing only those packages that have been approved by official Debian developers. Thus, getting a package on debian-main means that it, theoretically, conforms to a standard of quality.
  
In this case, however, the Debian developers seem to have not noticed that one of the dependencies for the package is "locusts." {{w|Locust}}s are real insects, the migratory forms of several grasshopper species, that are best known for breeding extremely quickly, swarming, and devouring all green plant matter they come across, resulting in crop devastation (some consider this a plague). In some parts of the world they are also considered a delicacy. [[Cueball]] probably does not appreciate this as they crawl over his body searching for food, apparently spontaneously generated by APT as it saw that it needed "locusts" to install the package.
+
In this case, however, the Debian developers seem to have not noticed that one of the dependencies for the package is "locusts." {{w|Locust}}s are a real insect, closely related to the grasshopper, that are best known for breeding extremely quickly, swarming, and devouring all green plant matter they come across, resulting in crop devastation (some consider this a plague). In some parts of the world they are also considered a delicacy. [[Cueball]] probably does not appreciate this as they crawl over his body searching for food, apparently spontaneously generated by APT as it saw that it needed "locusts" to install the package.
  
 
The title text is an error line from <code>dpkg</code>, the program used to install/remove APT packages. Every package contains several scripts (although some of them may be empty) that are run on various events related to that package; these are used to perform any setup/cleanup tasks the package needs. This line is an error line indicating that one of those scripts has failed. The relevant portions are:
 
The title text is an error line from <code>dpkg</code>, the program used to install/remove APT packages. Every package contains several scripts (although some of them may be empty) that are run on various events related to that package; these are used to perform any setup/cleanup tasks the package needs. This line is an error line indicating that one of those scripts has failed. The relevant portions are:
  
*<code>error processing package (--purge)</code>: --purge is the option to purge a package completely from the system. This means that the program itself, all related data files, and all configuration files are removed from the system. So, the user was attempting to completely remove the locusts from the system without leaving a trace.
+
* <code>error processing package (--purge)</code>: --purge is the option to purge a package completely from the system. This means that the program itself, all related data files, and all configuration files are removed from the system. So, the user was attempting to completely remove the locusts from the system without leaving a trace.
*<code>subprocess pre-removal script</code>: The pre-removal script is the code run before actually removing a piece of software. Mostly, this allows long-running software (such as webservers) to stop themselves before removing anything, to avoid corrupting the hard disk. That means the error came while the computer was preparing to get rid of the locusts.
+
* <code>subprocess pre-removal script</code>: The pre-removal script is the code run before actually removing a piece of software. Mostly, this allows long-running software (such as webservers) to stop themselves before removing anything, to avoid corrupting the hard disk. That means the error came while the computer was preparing to get rid of the locusts.
*<code>returned error exit 163</code>: "Returned error" means just what it says, the script returned an error. "Exit" means that the error was a result of calling the <code>exit()</code> function with a non-zero value, specifically the value 163. The exact value has no real significance other than signifying to a user or other application that understands what the code means; neither <code>dpkg</code> nor the Linux kernel itself treat any exit value specially, apart from checking whether the value is 0 (which means no error).
+
* <code>returned error exit 163</code>: "Returned error" means just what it says, the script returned an error. "Exit" means that the error was a result of calling the <code>exit()</code> function with a non-zero value, specifically the value 163. The exact value has no real significance other than signifying to a user or other application that understands what the code means; neither <code>dpkg</code> nor the Linux kernel itself treat any exit value specially, apart from checking whether the value is 0 (which means no error).
*<code>OH_GOD_THEYRE_INSIDE_MY_CLOTHES</code>: This is the message returned along with the error. This seems to be a message from the programmer, somewhat like the apocryphal "Help! I'm trapped in ... factory" [[10|urban myth]]. The programmer has failed to write a functioning pre-removal script, due to locusts and is calling for help via an error message.
+
* <code>OH_GOD_THEYRE_INSIDE_MY_CLOTHES</code>: This is the message returned along with the error. This seems to be the computer indicating that it is unwilling to go any further with the deletion because the locusts are crawling under its clothes.
 +
 
 +
==Trivia==
 +
* This is fixed in [http://packages.debian.org/changelogs/pool/main/m/mingetty/current/changelog#versionversion1.07-2 Debian's mingetty 1.07-2] and above.
  
 
==Transcript==
 
==Transcript==
:[A swarm of insects cover Cueball and his computer. They are leaning back on their chair, flailing to get away.]
+
:AAAAAAAA
:Cueball: AAAAAAAA
+
:[A swarm of insects cover Cueball and his computer. He is leaning back on their chair, flailing to get away.]
 +
 
 +
:My package made it into Debian-main because it looked innocuous enough; no one noticed "locusts" in the dependency list.
  
:Caption below comic: My package made it into debian-main because it looked innocuous enough; no one noticed "locusts" in the dependency list.
+
:Title text: dpkg: error processing package (--purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES
  
==Trivia==
+
{{comic discussion}}  
*This is fixed in [http://packages.debian.org/changelogs/pool/main/m/mingetty/current/changelog#versionversion1.07-2 Debian's mingetty 1.07-2] and above.
+
<!-- Include any categories below this line-->
{{comic discussion}}
 
 
[[Category:Comics featuring Cueball]]
 
[[Category:Comics featuring Cueball]]
 
[[Category:Linux]]
 
[[Category:Linux]]

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)