You are not logged in.

#1 2020-03-30 14:24:33

rchamberlin
Member
Registered: 2019-05-17
Posts: 3

[Solved] Making Archiso work offline again

Background: I inherited support for building a custom ISO that no longer works correctly because of the changes made to base and I'm trying to fix it.

With offline_releng not working right now, I'm attempting to build an offline ISO of Arch Linux.  I have a Docker container that I run an Ansible script in to build the ISO.

The ansible script does the following (in addition to other not relevant stuff):

    - name: Create offline package directory
      file:
        state: directory
        path: "{{ offline_mirror_dir }}"
        recurse: yes

    - name: Download extra needed packages for offline use
      command: "pacman -Syuw --noconfirm --dbpath /tmp/ --cachedir {{ offline_mirror_dir }} {{ item }}"
      with_items: "acpid ansible arch-install-scripts b43-fwcutter base base-devel broadcom-wl btrfs-progs clonezilla crda cryptsetup darkhttpd ddrescue device-mapper dhclient dhcpcd dialog diffutils dmidecode dmraid dnsmasq dnsutils dosfstools e2fsprogs electron elinks ethtool exfat-utils f2fs-tools fsarchiver git gnu-netcat gpm gptfdisk grml-zsh-config grub gtk2 gtk3 hdparm inetutils intel-ucode ipw2100-fw irssi iwd jfsutils lftp libglvnd libxslt linux linux-atm linux-firmware linux-lts linux-tools lm_sensors logrotate lsscsi lvm2 man-db man-pages mc mdadm mtools nano ndisc6 netctl nfs-utils nilfs-utils nmap ntfs-3g ntp openconnect openssh openvpn partclone parted partimage perl ppp pptpclient python-netaddr refind-efi reiserfsprogs rng-tools rp-pppoe rsync s-nail sdparm sg3_utils smartmontools sudo sysfsutils syslinux tcpdump testdisk usb_modeswitch usbutils vi vim-minimal vpnc wget wireless-regdb wireless_tools wpa_supplicant wvdial xfsprogs xl2tpd xorg xorg-drivers xorg-xinit"
      become: yes

    - name: Create a package database to use with the copied packages
      command: /bin/bash -c "repo-add offline.db.tar.xz *.xz"
      args:
        chdir: "{{ offline_mirror_dir }}"
      become: yes

Then I run pacstrap:

pacstrap -C /root/install-scripts/pacman.conf -c /mnt base base-devel

I point it at a pacman.conf configured with the offline repo

[offline]
SigLevel = Never
Server = file:///root/pkg/$arch

However, I get a bunch of errors about not being able to satisfy dependencies, for example:

unable to satisfy dependency 'glibc' required by perl
unable to satisfy dependency 'perl' required by groff

If I look in the offline directory, those dependencies seem to be there:

# ls pkg/x86_64 | grep glibc
glibc-2.31-2-x86_64.pkg.tar.zst

I'm unsure what I'm missing to make this work.  Any help would be greatly appreciated.  Let me know if I missed any needed info.

Last edited by rchamberlin (2020-03-31 03:07:34)

Offline

#2 2020-03-31 03:07:11

rchamberlin
Member
Registered: 2019-05-17
Posts: 3

Re: [Solved] Making Archiso work offline again

Even though it's probably pretty rare, for anyone that comes across this, this is the reason why it wasn't working:

https://www.archlinux.org/news/now-usin … mpression/

My existing Ansible task was only looking for *.xz.  Need to include .zst too.

Offline

#3 2020-04-01 03:59:51

eschwartz
Fellow
Registered: 2014-08-08
Posts: 4,097

Re: [Solved] Making Archiso work offline again

I recommend looking for the pattern *.pkg.tar* as that is the only part of the filename which specifically denotes a pacman package.


Managing AUR repos The Right Way -- aurpublish (now a standalone tool)

Offline

Board footer

Powered by FluxBB