|
| 1 | +#!/usr/bin/bash |
| 2 | + |
| 3 | +set -ouex pipefail |
| 4 | + |
| 5 | +source /ctx/build_files/build-helpers.sh |
| 6 | + |
| 7 | +pdnf install pacman \ |
| 8 | + gendesk icoutils |
| 9 | + |
| 10 | +#DBPath = /var/lib/pacman/ |
| 11 | +#CacheDir = /var/cache/pacman/pkg/ |
| 12 | +#LogFile = /var/log/pacman.log |
| 13 | +#GPGDir = /etc/pacman.d/gnupg/ |
| 14 | +#HookDir = /etc/pacman.d/hooks/ |
| 15 | + |
| 16 | +sed -i -E 's!^#?RootDir\s*=.*$!RootDir = /tmp/pacmanroot/!g' /etc/pacman.conf |
| 17 | +sed -i -E 's!^#?CacheDir\s*=.*$!CacheDir = /tmp/pacmanroot/var/cache/pacman/pkg/!g' /etc/pacman.conf |
| 18 | +sed -i -E 's!^#?LogFile\s*=.*$!LogFile = /tmp/pacmanroot/var/log/pacman.log!g' /etc/pacman.conf |
| 19 | +sed -i -E 's!^#?GPGDir\s*=.*$!GPGDir = /tmp/pacmanroot/etc/pacman.d/gnupg/!g' /etc/pacman.conf |
| 20 | +sed -i -E 's!^#?HookDir\s*=.*$!HookDir = /tmp/pacmanroot/etc/pacman.d/hooks/!g' /etc/pacman.conf |
| 21 | + |
| 22 | +sed -i '1s|^|Server = https://ftp.icm.edu.pl/pub/Linux/dist/archlinux/$repo/os/$arch\n|' /etc/pacman.d/mirrorlist |
| 23 | +sed -i '1s|^|Server = https://ftp.psnc.pl/linux/archlinux/$repo/os/$arch\n|' /etc/pacman.d/mirrorlist |
| 24 | +echo 'Server = https://archive.archlinux.org/.all' >> /etc/pacman.d/mirrorlist |
| 25 | + |
| 26 | +mkdir -p /tmp/pacmanroot |
| 27 | +mkdir -p /tmp/pacmanroot/var/{cache,lib}/pacman /tmp/pacmanroot/{etc/pacman.d,log} |
| 28 | +#cp -f /etc/pacman.conf /tmp/pacmanroot/etc/pacman.conf |
| 29 | +rsync -ar /etc/pacman.d/ /tmp/pacmanroot/pacman.d/ |
| 30 | +#ln -s /proc /tmp/pacmanroot/proc |
| 31 | +#ln -s /dev /tmp/pacmanroot/dev |
| 32 | +#ln -s /sys /tmp/pacmanroot/sys |
| 33 | + |
| 34 | +if [ -d /usr/share/pacman/keyrings ]; then |
| 35 | + rsync -ar {/,/tmp/pacmanroot/}usr/share/pacman/keyrings |
| 36 | + rm -rf /usr/share/pacman/keyrings |
| 37 | +fi |
| 38 | +mkdir -p /usr/share/pacman |
| 39 | +ln -s /tmp/pacmanroot/usr/share/pacman/keyrings /usr/share/pacman/keyrings |
| 40 | +pacman-key --init |
| 41 | +pacman-key --populate |
| 42 | + |
| 43 | +pacman -Sydd --noconfirm archlinux-keyring |
| 44 | + |
| 45 | +# BioArchLinux |
| 46 | +pacman-key --recv-keys B1F96021DB62254D |
| 47 | +pacman-key --finger B1F96021DB62254D |
| 48 | +pacman-key --lsign-key B1F96021DB62254D |
| 49 | +tee -a /etc/pacman.conf <<'EOF' |
| 50 | +[bioarchlinux] |
| 51 | +Server = https://repo.bioarchlinux.org/$arch |
| 52 | +EOF |
| 53 | + |
| 54 | +# Chaotic AUR |
| 55 | +pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com |
| 56 | +pacman-key --lsign-key 3056513887B78AEB |
| 57 | +pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' |
| 58 | +pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst' |
| 59 | +tee -a /etc/pacman.conf <<'EOF' |
| 60 | +[chaotic-aur] |
| 61 | +Server = https://cdn-mirror.chaotic.cx/$repo/$arch |
| 62 | +Include = /tmp/pacmanroot/etc/pacman.d/chaotic-mirrorlist |
| 63 | +EOF |
| 64 | + |
| 65 | +# Arch4Edu |
| 66 | +pacman-key --recv-keys 7931B6D628C8D3BA |
| 67 | +pacman-key --finger 7931B6D628C8D3BA |
| 68 | +pacman-key --lsign-key 7931B6D628C8D3BA |
| 69 | +curl --retry 3 -sSLo /tmp/pacmanroot/etc/pacman.d/mirrorlist.arch4edu https://raw.githubusercontent.com/arch4edu/mirrorlist/refs/heads/master/mirrorlist.arch4edu |
| 70 | +tee -a /etc/pacman.conf <<'EOF' |
| 71 | +[arch4edu] |
| 72 | +Include = /tmp/pacmanroot/etc/pacman.d/mirrorlist.arch4edu |
| 73 | +EOF |
| 74 | + |
| 75 | +pacman-key --populate |
| 76 | +pacman -Sydd --noconfirm bioarchlinux-keyring chaotic-keyring arch4edu-keyring |
| 77 | +pacman -Syudd --noconfirm chaotic-mirrorlist mirrorlist.arch4edu |
| 78 | +pacman-key --populate |
| 79 | + |
| 80 | +# pdf-xchange (Chaotic AUR) |
| 81 | +pacman -Swdd --noconfirm pdf-xchange |
| 82 | +tar --overwrite -xavf /tmp/pacmanroot/var/cache/pacman/pkg/pdf-xchange-*.pkg.tar.zst --directory=/ usr |
| 83 | + |
| 84 | +# Cleanup |
| 85 | +pacman -Scc --noconfirm |
| 86 | +pdnf remove pacman |
| 87 | +rm -rf /etc/pacman.{conf,d} /usr/share/pacman |
| 88 | +rm -rf /var/{cache,lib}/pacman /var/log/pacman.log /root/.cache/paru |
| 89 | +rm -rf /tmp/pacmanroot |
0 commit comments