Install Archlinux Package without Internet Connection
If for some reasons you have an Archlinux box without Internet access (like a Qemu system not completely setup?), but still want to install pacman packages, here is a little help:
Synchronize pacman database
cat > ./pacman_update.sh2 << EOF #! /bin/sh MIRROR=http://mirror.archlinuxarm.org/aarch64/ ROOT_FS=/path/to/archlinux/filesystem/root PAC_SYNC=$ROOT_FS/var/lib/pacman/sync set -x wget -q $MIRROR/alarm/alarm.db -O $PAC_SYNC/alarm.db wget -q $MIRROR/aur/aur.db -O $PAC_SYNC/aur.db wget -q $MIRROR/community/community.db -O $PAC_SYNC/community.db wget -q $MIRROR/core/core.db -O $PAC_SYNC/core.db wget -q $MIRROR/extra/extra.db -O $PAC_SYNC/extra.db
Retrieve the packages to install
(archlinux) pacman -S zsh resolving dependencies... looking for conflicting packages... Packages (1) zsh-5.1.1-2.1 Total Download Size: 1.68 MiB # nooo, we can't download that .... :( Total Installed Size: 5.03 MiB :: Proceed with installation? [Y/n] y :: Retrieving packages ... error: failed retrieving file 'zsh-5.1.1-2.1-aarch64.pkg.tar.xz' from mirror.archlinuxarm.org : Could not resolve host: mirror.archlinuxarm.org warning: failed to retrieve some files error: failed to commit transaction (download library error) Errors occurred, no packages were upgraded.
yep, that's a good start, but that's not very convenient ...
(archlinux) pacman -Sp zsh http://mirror.archlinuxarm.org/aarch64/extra/zsh-5.1.1-2.1-aarch64.pkg.tar.xz
yes, that's better !
Download the packages
cat > ./pacman_download.sh << EOF #! /bin/sh # run ./pacman_download.sh then past `pacman -Sp` urls to stdin MIRROR=http://mirror.archlinuxarm.org/aarch64/ ROOT_FS=/home/kevin/travail/sample/juno-qemu/linaro/juno-fs PAC_CACHE=$ROOT_FS/var/cache/pacman/pkg while read url do if [ -z "$url" ] then break fi echo Downloading $url into $PAC_CACHE ... wget -nc -q $url -P $PAC_CACHE echo Done done echo Bye bye.
Install the packages
(archlinux) pacman -S zsh resolving dependencies... looking for conflicting packages... Packages (1) zsh-5.1.1-2.1 Total Installed Size: 5.03 MiB :: Proceed with installation? [Y/n] (1/1) checking keys in keyring [######################] 100% (1/1) checking package integrity [######################] 100% (1/1) loading package files [######################] 100% (1/1) checking for file conflicts [######################] 100% (1/1) checking available disk space [######################] 100% (1/1) installing zsh [######################] 100%
And zsh is ready :-)