797: debian-main

Explain xkcd: It's 'cause you're dumb.
Revision as of 15:01, 31 December 2012 by St.nerol (Talk | contribs)

Jump to: navigation, search
debian-main
dpkg: error processing package (--purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES
Title text: dpkg: error processing package (--purge): subprocess pre-removal script returned error exit 163: OH_GOD_THEYRE_INSIDE_MY_CLOTHES

Explanation

Debian is a Linux distribution most notable for introducing 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 RPM), it is the first one that seamlessly integrated online installation and upgrades into the mix.

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." Locusts 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 dpkg, 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:

  • error processing package (--purge): --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.
  • subprocess pre-removal script: 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.
  • returned error exit 163: "Returned error" means just what it says, the script returned an error. "Exit" means that the error was a result of calling the exit() 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 dpkg nor the Linux kernel itself treat any exit value specially, apart from checking whether the value is 0 (which means no error).
  • OH_GOD_THEYRE_INSIDE_MY_CLOTHES: 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

Transcript

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.
comment.png add a comment! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

Locusts may very well be grasshoppers. There doesn't seem to be any difference in the species, the grasshoppers change into locusts when they are crowded. Wikipedia - Locust swarming behaviour --Macxcool (talk) 14:50, 13 February 2014 (UTC)

I disagree with the last part of the explanation. I feel that the statement OH_GOD_THEYRE_INSIDE_MY_CLOTHES is the (possibly final) code comment from the programmer writing the dependencies, and has nothing to do with the server on the other end (why would a computer be wearing clothes in the first place?). 141.101.81.216 14:23, 24 February 2014 (UTC)


The capitalisation and underscores are consistant with the error codes given by apt commands. 108.162.246.117 05:06, 30 April 2014 (UTC)
Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal or Bitcoin?