Tento stručný průvodce představuje užitečný nástroj nazvaný dpkg-repack
, který se používá k opětovnému vytvoření binárních balíčků Debianu, které jsou již nainstalovány na systému založeném na debianu.
Co je dpkg-repack?
Představte si tento scénář. Nainstalovali jste nějaké balíčky na váš systém založený na Debianu. A chcete nainstalovat stejné balíčky na jiný systém. Ale ztratili jste binární archivy, tj. soubory deb. Stáhli byste si je znovu z jejich oficiálních stránek nebo repozitáře?
Co když konkrétní verze konkrétního balíčku již není dostupná jinde? Bez obav! Protože jsou již nainstalovány ve vašem systému, můžete snadno znovu vytvořit .deb
soubory. Pozdravte dpkg-repack
!
dpkg-repack
je nástroj pro archivaci balíčků Debianu z příkazového řádku pro opětovné vytvoření binárních balíčků Debianu, které jsou již nainstalovány ve vašem systému.
Stručně řečeno, dpkg-repack
nástroj může vytvořit .deb
soubor z balíčku debianu, který je již nainstalován ve vašem systému.
dpkg-repack
nástroj může být užitečný v mnoha situacích, kde chcete,
- znovu vytvořit
.deb
soubory ze stávajících nainstalovaných balíčků debianu, - snadno kopírujte balíčky z jednoho systému do druhého,
- před aktualizací balíčku uložte aktuální stav,
- zálohujte konkrétní verzi balíčku pro budoucí použití,
- uložte konkrétní balíčky, které již nejsou k dispozici ke stažení.
Nainstalujte dpkg-repack v Debianu, Ubuntu a odvozeninách
dpkg-repack
je k dispozici ve výchozích úložištích Debianu, Ubuntu a jeho variant. Chcete-li nainstalovat dpkg-repack
, jednoduše spusťte následující příkaz:
$ sudo apt install dpkg-repack
Znovu vytvořte binární balíčky Debianu pomocí dpkg-repack
1. Pro účely této příručky používejte aplikaci Microsoft Teams který jsem si před chvílí nainstaloval na plochu Ubuntu.
$ dpkg -l | grep teams
Ukázkový výstup:
ii teams 1.3.00.5153 amd64 Microsoft Teams for Linux is your chat-centered workspace in Office 365.
Již nemám teams.deb
soubor. Smazal jsem to hned po instalaci aplikace Microsoft Teams. Mohu přejít na oficiální stránku ke stažení a stáhnout si ji znovu. Ale proč byste se měli obtěžovat stahováním znovu a znovu? Nyní mohu jednoduše znovu vytvořit teams.deb
soubor pomocí dpkg-repack.
2. Chcete-li vytvořit teams.deb
soubor z již nainstalovaného balíku týmů s dpkg-repack
utility, spusťte:
$ dpkg-repack teams
Ukázkový výstup:
dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.
Jak vidíte, výše uvedený příkaz znovu vytvořil "teams_1.3.00.5153_amd64.deb'"
soubor z balíčku Teams, který je již nainstalován na mé ploše Ubuntu. Nově vytvořený soubor deb bude uložen do aktuálního pracovního adresáře.
Podobně můžete převést všechny nainstalované balíčky Debianu zpět na .deb
balíčky pomocí dpkg-repack
utility.
3. Je také možné znovu vytvořit více deb souborů s mezerami oddělenými:
$ dpkg-repack <package1> <package2> <package3>
4. Pokud nemůžete znovu sestavit deb soubor kvůli problémům s oprávněními, zkuste to z fakeroot prostředí jako níže:
$ fakeroot -u dpkg-repack teams
Jednou zajímavou funkcí nástroje dpkg-repack je, že pokud byly v balíčku provedeny nějaké změny během jeho rozbalování (tj. soubory v /etc byly změněny), nový balíček změny zdědí.
Zobrazení obsahu souboru deb
Krok 1: Obsah tohoto deb souboru můžete zobrazit pomocí příkazu:
$ dpkg --contents teams_1.3.00.5153_amd64.deb
Ukázkový výstup:
drwxr-xr-x root/root 0 2020-05-26 15:15 ./ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/bin/ -rwxr-xr-x root/root 286 2020-02-20 16:46 ./usr/bin/teams drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/ . . . drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/teams/swiftshader/ -rwxr-xr-x root/root 286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams -rw-r--r-- root/root 1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin
Krok 2: dpkg-repack se hodí při instalaci stejné sady balíčků na více systémů, stačí je přenést pomocí externího pevného disku nebo přes LAN do jiných systémů a nainstalovat pomocí příkazu dpkg:
$ sudo dpkg -i <package-name>
Krok 3: Upozorňujeme, že stále musíte stáhnout závislosti. Chcete-li nainstalovat závislosti, spusťte:
$ sudo apt-get -f install
Případně můžete najít závislosti balíčku, jak je popsáno v následujícím odkazu:
- Jak vypsat seznam závislostí balíčku v Linuxu
A poté je všechny znovu vytvořte pomocí dpkg-repack
jak je popsáno výše.
Krok 4: To také pomůže, když chcete vrátit balíček na předchozí pracovní verzi. Řekněme například, že jste právě upgradovali Vim
balíček na novou dostupnou verzi. Pokud nová verze nefunguje podle očekávání, můžete se jednoduše vrátit ke staré verzi, kterou jste vytvořili dříve pomocí dpkg-repack
.
Další podrobnosti naleznete na manuálových stránkách:
$ man dpkg-repack
Související čtení:
- Jak sestavit balíčky Debianu ze zdroje
- Jak sestavit balíčky ze zdroje pomocí CheckInstall
- Jak převést balíčky Linuxu pomocí aplikace Alien