Install any Fedora package (dnf/bubblewrap)
Install any Fedora package (dnf/bubblewrap)
Here a method to access dnf packages wihout adding packages to OSTree (apart dnf).
$ sudo rpm-ostree install dnf
$ cat /etc/dnf/dnf.conf
[main]
installroot=/var/lib/fedora
use_host_config=True
$ cat /usr/local/bin/bubblewrap
#!/bin/bash
cmd=$(basename "$0")
if (( UID == 0 ))
then
/usr/bin/bwrap --ro-bind /var/lib/fedora / --bind /root /root --dev /dev --proc /proc --tmpfs /tmp --tmpfs /run --ro-bind /run/systemd/resolve /run/systemd/resolve $cmd $@
else
/usr/bin/bwrap --ro-bind /var/lib/fedora / --bind /var/home /var/home --dev /dev --proc /proc --tmpfs /tmp --tmpfs /run --bind /run/user/$UID /run/user/$UID --ro-bind /run/systemd/resolve /run/systemd/resolve $cmd $@
$ cat /usr/local/bin/dnf
#!/bin/bash
trap "/usr/local/bin/build_dnf_cache.sh 2>/dev/null" EXIT
/usr/bin/dnf $@
$ cat /usr/local/bin/build_dnf_cache.sh
#!/bin/bash
mkdir -p /usr/local/bwrap
rm -f /usr/local/bwrap/*
comm -23 <(ls /var/lib/fedora/usr/bin/) <(ls /usr/bin/) | while read command
do
ln -s /usr/local/bin/bubblewrap /usr/local/bwrap/$command
done
$ cat /etc/environment.d/path.conf
PATH=/usr/local/bin:/usr/local/bwrap:/usr/local/sbin:/usr/bin:/usr/sbin
Now you can install fedora rootfs:
$ sudo /usr/local/bin/dnf -y group install core
$ sudo reboot
And now
[~]$ sipcalc
bash: sipcalc : command not found
[~]$ sudo dnf install sipcalc
Mise à jour et chargement des dépôts :
Dépôts chargés.
Paquet Architecture Version Dépôt Taille
Installation de :
sipcalc x86_64 1.1.6-28.fc42 fedora 66.4 KiB
Résumé de la transaction :
Installation : 1 paquet
La taille totale des paquets entrants est de 39 KiB. Un téléchargement de 39 KiB est nécessaire.
Après cette opération, 66 KiB supplémentaires seront utilisés (+66 KiB, -0 B).
Is this ok [y/N]: y
[1/1] sipcalc-0:1.1.6-28.fc42.x86_64 100% | 298.4 KiB/s | 38.8 KiB | 00m00s
---------------------------------------------------------------------------------------------------------------------------------------------------------------
[1/1] Total 100% | 98.4 KiB/s | 38.8 KiB | 00m00s
Exécution de la transaction
[1/3] Vérifier les fichiers des paquets 100% | 500.0 B/s | 1.0 B | 00m00s
[2/3] Préparer la transaction 100% | 17.0 B/s | 1.0 B | 00m00s
[3/3] Installation de sipcalc-0:1.1.6-28.fc42.x86_64 100% | 239.9 KiB/s | 68.4 KiB | 00m00s
Terminé !
[~]$ sipcalc
Usage: sipcalc [OPTIONS]... <[ADDRESS]... [INTERFACE]... | [-]>
Try 'sipcalc -h' for more information.
Bonus (manpages and bash-completion):
[~]$ cat /etc/systemd/system/var-usrlocal-share-man.mount
[Unit]
Description=Mount /var/usrlocal/share/man
[Mount]
What=/var/lib/fedora/usr/share/man
Where=/var/usrlocal/share/man
Type=none
Options=bind
[Install]
WantedBy=multi-user.target
[~]$ cat /etc/systemd/system/var-usrlocal-share-bash\\x2dcompletion.mount
[Unit]
Description=Mount /var/usrlocal/share/bash-completion
[Mount]
What=/var/lib/fedora/usr/share/bash-completion
Where=/var/usrlocal/share/bash-completion
Type=none
Options=bind
[Install]
WantedBy=multi-user.target
$ sudo systemctl enable --now "var-usrlocal-share-bash\\x2dcompletion.mount" var-usrlocal-share-man.mount