Velkou součástí správy linuxových strojů – zejména vzdálených strojů – je správa a instalace softwaru. Když se něco pokazí s místní aplikací nebo když se něco na souborovém systému porouchá a potřebuje opravit, často budete chtít poslat aktualizace, aniž byste museli cestovat mnoho kilometrů, abyste se posadili před fyzickou obrazovku. Jak vysvětluji ve svém kurzu Pluralsight Údržba a odstraňování problémů Linuxu, spoustu problémů lze samozřejmě vyřešit pomocí skriptů Bash, ale stále existuje spousta případů, kdy neexistuje žádná alternativa k dobrému, staromódnímu binárnímu programu.
Představte si, že některé vaše vzdálené systémy potřebují nainstalovat nové aplikace, takže členové týmu používající tyto počítače budou moci vykonávat nějakou obchodní funkci. Schopnost využít integraci a automatizaci jednoho z hlavních linuxových repozitářů – jako je Debian nebo RPM – vám může značně usnadnit administrativní úkoly.
Jak nám Linus Torvalds nikdy nepřestane připomínat, problém mnoha systémů pro správu softwaru Linux je v tom, že existuje příliš mnoho systémů pro správu softwaru Linux. V průběhu let se vývoj aplikací a dokonce i adopce Linuxu komplikovaly tím, že veškerý čas a práce, které investujete do přípravy softwaru pro, řekněme, repozitáře Debianu, vám nepomůže, pokud je chcete dostat do RPM systémů. A ani jedno nepomůže správci Zypper SUSE.
Jedním slibným řešením problému softwarového zásobníku je distribuce aplikací s jejich vlastním samostatným prostředím, které bude fungovat na jakékoli distribuci Linuxu. Jednou z možností standardu v tomto mladém a rostoucím oboru je AppImage.
Práce s AppImages
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Jsem all-in na AppImage. Stejně jako ostatní systémy pro správu balíčků, které jsem zmínil, je k dispozici spousta složitosti, pokud ji chcete. Ale ve svém jádru jsou AppImages ve skutečnosti docela jednoduché. Spíše než pracovat přes repo jako většina ostatních správců balíčků, AppImages jsou samostatné, samostatné soubory, které lze odesílat přímo nebo sdílet prostřednictvím webu.
Zde je ukázka její krásy. Zatímco jsem si hrál s AppImages, narazil jsem na velmi starou diskuzi na technickém fóru, která mě přivedla ke stejně starému a opuštěnému projektu GitHub a souvisejícím YAML a souborům receptů. Byly navrženy tak, aby automaticky vytvořily poměrně složitou infrastrukturu potřebnou k přípravě archivu potřebného pro vygenerování balíčku AppImage. Přestože byla celá tato infrastruktura postavena tak, aby fungovala na pět let starém vydání Ubuntu, když jsem to dal dohromady a spustil appimagetool
příkaz proti němu vytvořil soubor AppImage, který bez problémů fungoval na mé aktuální ploše. Nemyslím si, že existuje příliš mnoho pět let starých GitHub projektů této složitosti, které by mohly běžet pomocí jiných technologií bez nějakého vážného přepracování.
Ale já se tam nechystám. Místo toho vám ukážu, jak to funguje s velmi jednoduchou aplikací Hello World. Nejprve se ujistěte, že je balíček AppStream nainstalován lokálně.
Pro systém založený na Debianu spusťte:
$ sudo apt install appstream
A pro systémy RPM použijte:
$ sudo dnf install appstream
Klonujte úložiště Git odkazované v tomto článku, na kterém jsem založil tento příklad:
$ git clone https://github.com/boolean-world/appimage-resources
$ cd appimage-resources
$ ls hello-world-appimage
Dále cd
do nového adresáře, který Git vytvořil, a rozhlédněte se. Jsou zde dva adresáře. Použijte hello-world-appimage
; druhý je složitější projekt a měli byste zvážit, zda ho také nevyzkoušíte.
helloworld.desktop
soubor je to, co čtou systémy Linux GUI, aby věděly, jak zacházet se způsobem, jakým prezentují ikonu na ploše. Jak se ukázalo, způsob, jakým je soubor aktuálně zapsán, vám bude později dělat potíže, takže proveďte jednu menší úpravu:přidejte Categories=
řádek a přiřaďte mu hodnotu GNOME
. A nezapomeňte na středník na konci:
$ nano hello-world-appimage/helloworld.desktop
add Categories=GNOME;
Stáhněte si předkompilovanou kopii appimagetool
binární z projektu AppImage GitHub. Zkuste navštívit web GitHub – je tam spousta vynikající dokumentace a zdrojů. Jakmile je binární soubor stažen, udělejte soubor spustitelným a nasměrujte jej na hello-world-appimage
adresář. Nejprve mu ale musíte říct, jakou architekturu chcete. Z nějakého důvodu nástroj s názvem, který končí na x86_64
je vše kolísavé, pokud jde o výběr, zda vytvořit aplikaci pomocí x86_64 nebo ne (nejsem si jistý, co se tam děje):
$ wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
$ chmod +x appimagetool-x86_64.AppImage
$ ARCH=x86_64 ./appimagetool-x86_64.AppImage hello-world-appimage
Pokud nevidíte žádné naštvané chybové zprávy, vše můžete spustit:
$ ls
$ ./hello-world-appimage-x86_64.AppImage
Závěr
AppImage je neuvěřitelně efektivní volba pro správu balíčků. Až to budete prozkoumávat, myslím, že zjistíte, že je to skvělá alternativa k výchozímu nastavení distribuce Linuxu.