Již jsme věděli, jak stáhnout balíček se všemi jeho závislostmi v Ubuntu a jeho derivátech. Dnes uvidíme, jak stáhnout rekurzivní závislosti balíčku v Ubuntu. Jinými slovy, stáhneme závislosti závislostí.
Řekněme, že se pokoušíte nainstalovat balíček s názvem a.deb . Balíček a.deb závisí na balíčku b.deb a opět balíček b.deb závisí na balíčku c.deb . Při této metodě stahujeme nejen závislosti a.deb, ale také závislosti b.deb a c.deb. To může být užitečné, když nemůžete nainstalovat balíček ani poté, co jste si stáhli všechny požadované závislosti pomocí apt-rdepends příkaz.
Lokální stahování balíčků se závislostmi slouží třem hlavním účelům.
- Vyhněte se opakovanému stahování stejné sady balíčků. Pokud například chcete nainstalovat editor Vim na více systémů, můžete si stáhnout Vim se všemi požadovanými závislostmi, uložit je na USB disk (nebo je přenést přes LAN) a nainstalovat Vim na jiný systém.
- Ušetřete šířku pásma a čas internetu.
- Instalujte balíčky do systémů bez připojení k internetu. To je hlavní důvod pro stahování balíčků se závislostmi lokálně. Balíčky si můžete stáhnout v systému připojeném k internetu a poté je přenést do offline systému přes USB disk nebo LAN a nainstalovat je do něj bez internetu.
Důvody pro vás mohou být různé. Pokud jste někdy chtěli instalovat balíčky na offline systém, tato metoda by vám určitě pomohla.
Stáhněte si rekurzivní závislosti balíčku v Ubuntu
Pro účely této příručky si vezmeme Vim program jako příklad.
Nejprve uveďme seznam rekurzivních závislostí balíčku Vim pomocí následujícího příkazu:
$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u
Vyměňte vim za svůj vlastní balíček. Pokud chcete zobrazit výstup ve sloupcovém formátu pro snadné čtení, spusťte:
$ apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u | column
Ukázkový výstup:
cdebconf libacl1 libdb5.3 liblzma5:i386 libpython3.6-stdlib libtinfo5 vim debconf libacl1:i386 libdebian-installer4 libmpdec2 libreadline7 libzstd1 vim-common dpkg libattr1 libexpat1 libncursesw5 libselinux1 libzstd1:i386 vim-runtime dpkg:i386 libattr1:i386 libffi6 libnewt0.52 libselinux1:i386 mime-support xxd gcc-8-base libbz2-1.0 libgcc1 libpcre3 libslang2 perl-base xxd:i386 gcc-8-base:i386 libbz2-1.0:i386 libgcc1:i386 libpcre3:i386 libsqlite3-0 readline-common zlib1g install-info libc6 libgpm2 libpython3.6 libssl1.1 tar zlib1g:i386 install-info:i386 libc6:i386 liblzma5 libpython3.6-minimal libtextwrap1 tar:i386

Toto jsou závislosti závislostí programu Vim. Vezměte prosím na vědomí, že všechny tyto nemusí být nutné k instalaci Vim.
Pokračujme a stáhněte si rekurzivní závislosti balíčku Vim pomocí příkazu:
$ apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u)
Tento příkaz stáhne vim spolu s jeho závislými programy v aktuálním adresáři. Stáhne také závislosti závislostí Vimu.

Zkontrolujte, zda byly staženy všechny závislosti pomocí příkazu "ls":
$ ls
Zde je seznam závislostí programu Vim a závislostí jeho závislostí na mé ploše Ubuntu 18.04:

Nyní přesuňte všechny stažené soubory přes USB disk nebo LAN do offline systému. A pak přejděte do umístění, kam jste uložili všechny stažené balíčky v offline systému, a nainstalujte je pomocí příkazu:
$ sudo dpkg -i *
Alternativně můžete vytvořit index všech stažených balíčků a nainstalovat je pomocí správce balíčků APT.
Chcete-li vytvořit index stažených balíčků, přejděte do umístění, kde jsou balíčky uloženy, a spusťte následující příkaz:
$ dpkg-scanpackages . | gzip -c9 > Packages.gz
Přidejte tuto složku do seznamu zdrojů APT pomocí následujícího příkazu:
$ echo "deb[trusted=yes] file:///home/sk/vim ./" | sudo tee -a /etc/apt/sources.list
Zde jsem uložil všechny soubory do /home/sk/vim
složku v mém offline systému. Tuto cestu musíte nahradit svou vlastní.
Aktualizujte index balíčku pomocí příkazu:
$ sudo apt-get update
Nakonec nainstalujte balíček vim pomocí správce balíčků APT:
$ sudo apt-get install vim
Podobně si můžete stáhnout a nainstalovat i další balíčky.
Doufám, že to pomůže.
Doporučená četba:
- Jak stáhnout balíček RPM se všemi závislostmi v CentOS
- Camicri Cube – Instalace balíčků na offline systémy Ubuntu
- Jak nainstalovat software offline v Ubuntu
- Jak simulovat příkazy Linuxu, aniž byste cokoli změnili v systému