Skip to content

Instantly share code, notes, and snippets.

@vodik
Last active Jun 25, 2022
Embed
What would you like to do?
_Never_ -Sy when installing!

Once upon a time there was a user that wanted to install firefox.

The user tried to do pacman -S firefox but it didn't work. The all mighty pacman reported that firefox-3.2.4-1.i686.pkg.tar.gz could not be found on his mirror. So the user tried pacman -Sy firefox. It worked and the user rejoiced since he could once again go and troll /h/.

But all was not good. The user had made a grave error!

See, when the user told the almighty pacman to -Sy firefox, pacman did as it was told. It went and checked its databases, found firefox, and noticed that firefox also wanted a new version of one of its friends, readline. So the almighty pacman also updated readline.

The problem was that it was that this readline update was no small version bump. Oh no, it was a bump from version 5 to version 6! And this of course also included a .so name bump. But the user was blissfully ignorant to all this. After spending hours trolling /h/ and /d/, he decided to go to bed. Before he went to sleep, he shut down the system because it was quite noisy with all the papst fans running at 6000rpm.

The next morning when the user turned on his system to check what had transpired in /b/ while he was asleep. Instead of getting his hello-kitty gdm login theme he got a horrible message!

error while loading shared libraries: libreadline.so.5: cannot open shared object file: No such file or directory

Because bash (and many other packages) depended on readline and not readline<=5.x, bash had not been updated together with readline and rendered the system unbootable.

The user struggled for hours with the system to no avail. At last he gave up, booted his laptop and went to bbs.archlinux.org. There he proceeded to flame and rant about how horrible of an OS archlinux was and how nøøbish its developers were. To this, the glorious evil overlords on the bbs replied:

PEBKAC. Don't upgrade single packages. Keep your system up to date.

https://bbs.archlinux.org/viewtopic.php?id=57205 && http://bugs.archlinux.org/task/15566 && https://bbs.archlinux.org/viewtopic.php?id=75197

Mr.Elendig

@seekdoor
Copy link

seekdoor commented Apr 19, 2015

受教了

@Krutonium
Copy link

Krutonium commented Nov 30, 2020

Where do I subscribe to more stories like this? :3

@es20490446e
Copy link

es20490446e commented Jan 19, 2021

If doing such thing is so dangerous, why does pacman so easily allow it?

@Krutonium
Copy link

Krutonium commented Jan 19, 2021

If doing such thing is so dangerous, why does pacman so easily allow it?

Because it does what you tell it to.

@es20490446e
Copy link

es20490446e commented Jan 19, 2021

The simplicity of chopping your own finger is not simplicity.

@todorbg
Copy link

todorbg commented Feb 2, 2021

The simplicity of chopping your own finger is not simplicity.

Isn't it? In my eyes, my OS should do exactly what I want it to do, whenever I want it to do - no questions asked. To do the command is the OS's job - no matter how stupid it is.

Just my take.

Copy link

ghost commented Feb 3, 2021

But then on this very same debate, what is the purpose of sudo rm -rf / --no-prreserve-root then? Also another useless command which does actual suicide

@es20490446e
Copy link

es20490446e commented Feb 4, 2021

That when running that command you always know what you were doing.

@thurstylark
Copy link

thurstylark commented Dec 28, 2021

Any powerful tool is dangerous to the user if operated incorrectly. This is just as true for Pacman as it is for a razor blade.

Also, Pacman is used by other projects, and those projects can build their infrastructure to support partial updates if they so choose. ArchLinux's infrastructure is not set up to support partial upgrades, and requires that all packages be updated to the latest version available upon an update to any package.

Dulling the tool to fit ArchLinux's context is not the answer, because the tool is built to be sharp in multiple contexts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment