Updating Pacman on the Raspberry Pi

Multithreaded JavaScript has been published with O'Reilly!

Updating Pacman on the Raspberry Pi
Updating Pacman on the Raspberry Pi

So… You got Arch Linux installed on your Raspberry Pi. And, you want to update all of the packages so that you can start installing stuff. Well, not so fast. Arch Linux has this little "feature", where you can't really install packages without generating a key.

Generate Pacman Key

To generate a key, folks will tell you that it is as easy as running:

pacman-key --init

And those folks are total liars. When running that command, you will get the output, Generating pacman keychain master key..., and it will just sit there doing nothing. Forever. In actuality, you are supposed to open another virtual console (Alt + F3 or Alt + F4), and do a bunch of random shit that causes drive reads and writes.

Perhaps, to do those writes, you would run a command such as:

ls -R /

But, that isn't nearly enough stuff on the tiny Raspberry Pi Arch image to generate enough IO. Still others will tell you to run:

updatedb

But, of course, that command does not exist on a newly installed system. To get that command available and then run it, you need to actually run:

pacman -S mlocate
updatedb

Once you've done that and made a lot of hard drive writes, you can switch back to the key init app by hitting Alt+F1. But, you'll notice that it STILL isn't done. At this point, get angry, go back to your terminals, and mash your keyboard with the recursive ls and the updatedb commands, and run the top command in another terminal. After several minutes of frustration and anger, your pacman-key --init command will finally be done.

Update Pacman

Now, you need to update the package manager itself. Run the command:

pacman -S pacman

And you should have the latest version.

Update ALL THE THINGS

Now, try running

pacman -Syyuf
Replace libusb with core/libusbx? Y
... procps? Y
... udev? Y
Proceed? Y

By the time it is done (about 15 minutes of installing), you'll have all sorts of new packages on your system. Most importantly, you'll have the latest firmware.

The udev, libusb, procps stuff is kinda goofy because Arch recently made a big change to their system, and since it's a rolling release, those three packages seem to complain a little about being replaced.

Thomas Hunter II Avatar

Thomas has contributed to dozens of enterprise Node.js services and has worked for a company dedicated to securing Node.js. He has spoken at several conferences on Node.js and JavaScript and is an O'Reilly published author.