Package Installation and Management without Internet
I am pleased to announce that I have finally finished writing my guide to offline package installation with pacman for the Raspberry Pi! It was a lot of work, with many snaggles due to hardware issues, but the page is up and running, and I hope my Running Pacman Without Internet page will be a helpful resource for those needing an up to date, detailed how to discussion for running pacman offline.
The rest of this page is a discussion of my original plans and the adventure and steps I took in setting up my system in preparation for running ArchLinux on my Raspberry Pi that arrived a few days later in December 2012.
Dec 2, 2012: I will soon have a Raspberry Pi Model B arm-based computer to use as a local server that both my Zauruses can access. And, being a Zaurus owner, of course I have my own ideas about how to do things with the Raspberry Pi, and am not intimidated by the command line or the fact that how I expect to run my system is not the usually recommended way.
What I am writing about on this page is specific to Arch Linux for the Raspberry Pi, but if you are using another distribution, it may still be of interest, although I cannot speak for what features are available if you are using other package managers.
To begin with, my Raspberry Pi will not have Internet access, and the first thing new Pi owners are advised to do who choose to run Arch Linux Arm on it, after the base system is installed, is to set up Internet access and run the Arch Package Manager, called Pacman, to update the system and then add any desired packages, all while the Raspberry Pi is online.
And, since most Raspberry Pi users will do just that, all the guides available for Arch focus on how to install and update packages via the internet with Pacman, without any indication that it is possible to set up and update Arch Linux on a Raspberry Pi that does not have internet access.
I do have dialup internet access, but the CF modem I use for my Zaurus PDA is not at all Pi compatible, so after I get my Pi up and running, then I do want to get a USB dialup modem so my Pi will have direct internet access. But, even after I set up Internet for the Pi, I still will want to let Pacman (the Arch Linux Package Manager and Installer) do it’s work offline, as I have only one phone line, and do not want to tie it up many hours while the Raspberry Pi would be downloading packages, doing updating, and installing the new packages I choose.
It also goes against my grain to pay someone else to put the Arch image onto an SD card for me, so I downloaded the March 2012 image overnight and have dd’d it onto an SD card, waiting for my Pi to arrive.
Unpacking and dd’ing that image to an SD card was very intense, time consuming work for my Zaurus SL6000, sometimes crashing and always totally freezing up all controls and other activity on my Zaurus during the process. And I really do not want to have to go through that painful process again with my Zaurus.
So I think I am going to perform the very first initial boot of my Raspberry Pi using that image, even though it is quite out of date. Then, once I have that earlier version up and running, I will download whatever the latest and greatest Arch image is for the Raspberry Pi, with all it’s updates and bug fixes, using my trusty Zaurus SL5500 (also known as the Collie) at night when I will be sleeping. Then, once I have that image, I figure I can use the Pi to unpack and dd the new image to another SD card over USB. Why tie up either one of my Zauruses with unzipping and dd’ing when I can let the Raspberry Pi perform those tasks? Then I am free to do other things with my Zauruses while my Raspberry Pi does it’s own thing.
Then, when I read the Pacman man page carefully, I noticed that it clearly shows that we can install packages from a local repository. So, I have been downloading the packages I need using wget on the Collie, putting them all onto an SD card dedicated to Raspberry Pi packages.
I am only downloading the packages I want that are small at this point, as I will need to update many of them by the time my Raspberry Pi arrives, but I also have written a bash script that runs through a list of my downloaded packages, comparing them to the current package lists at the ArchLinuxArm repository, and tells me which ones are out of date. I also started downloading dependencies, and I think I have most of what I will need. But hunting down complete dependency lists on the web is a grueling task, so I think I am going to wait and see what the output from Pacman looks like when there are missing dependencies, before I spend unnecessary hours hunting down dependency lists from many more of the packages I intend to install.
Now, the catch in the above is “after the base
system is installed.” I will not be able to run Pacman or anything else on my Raspberry Pi until after I log in using ssh.
For details about the steps I am following to set up Ethernet on both my Zaurus and my Raspberry Pi, see my page about Setting Up Ethernet.
And, if you are a Raspberry Pi fan planning on ssh’ing over Ethernet for the very first boot of your Pi, or need to run Pacman offline for any reason, stay tuned to my Raspberry Pi Pages
and blog here at https://sdjf.wordpress.com/raspberrypi/, and on my website at http://sdjf.esmartdesign.com/raspberrypi/.