Jakým způsobem instaluješ software na linuxovém systému?
Pravděpodobně máš k dispozici grafický program, kde si můžeš dostupné programy prohlédnout, přečíst jejich popisky, kouknout na obrázky, jak vypadají, a zakliknout tlačítko "Instaluj". Grafický instalátor se postará o vše potřebné a zpřístupní ti ikonku nového programu v nabídce aplikací.
My se ale dnes podíváme hlouběji, na systémy, díky kterým můžeš instalovat balíčky jednotným způsobem.
Linuxové systémy používají tak zvané balíčkovací systémy (angl. package managers).
Filozofie pod nimi je přímočará - je to vlastně o tom, že stáhneš archiv
a rozbalíš si ho na disk podobně jak ZIP-ový adresář.
Balíček může obsahovat příkazy (soubory v /usr/bin
), konfiguraci (soubory
v /etc
), knihovny (soubory), manuálové stránky (taky soubory) a tak dále.
Některé věci, např. vytvoření uživatele, nelze přes soubory; balíčky proto můžou obsahovat malé programy – skriptlety – které podobné věci při instalaci zajistí.
Kromě souborů a skriptletů balíček obsahuje metadata jako např.:
Pokud si stáhneš kupříkladu textový editor, bude potřebovat knihovnu na vykreslení okének. Tu knihovnu musíš mít nainstalovanou, aby editor fungoval. Grafická knihovna pak potřebuje např. standardní knihovnu jazyka C atd. Instalace jednoho balíčku tak často znamená, že musíš instalovat mnohem víc balíčků - ten “hlavní” a všechny ostatní, na kterých závisí.
Hodně systémů používá balíčkovací nástroje dva.
Jeden základní zvládá instalaci, zjištění obsahu a odinstalaci, ale neřeší
stahování balíčků z internetu.
Na Fedoře je to rpm
.
Pokud máš nějaký balíček stažený a řekneš rpm
, aby ho nainstaloval,
můžeš dostat odpověď: nenainstaluji ho, protože potřebuje k svému běhu ještě
5 dalších, které nejsou nainstalované.
Je na tobě, abys tyto chybějící závislosti vyřešila.
A protože je to úkol, se kterým se uživatelé systémů nechtějí měřit sami,
vznikly nástavby, které řeší stahování balíčků a jejich závislostí.
To umí ve Fedoře DNF.
Když instaluješ balíček pomocí dnf
, zachová se trochu jinak.
Řekne například: OK, ale potřebuješ ještě dalších 5 balíčků, zde máš seznam,
stáhnu všechny položky a nainstaluji všechny závislosti.
Kromě DNF existují i další takové nástavby: Gnome Software je grafická
aplikace, který instaluje další grafické aplikace.
(Nenajdeš v něm tedy bash
nebo tree
.)
Podobně jako dnf
je stahuje a instaluje včetně závislostí.
Volba balíčkovacío systému je něco, co se hodně liší v různých Linuxových distribucích. Například:
Distro | Základní systém | Použitelná nástavba |
---|---|---|
Fedora | RPM | DNF |
Debian & Ubuntu | APT | apt-get; aptitude |
Arch Linx | pacman | pacman |
OpenSUSE | RPM | YaST |
Grafický Gnome Software umí pracovat s více systémy – RPM, APT a dalšími.
Pomocí rpm -q
(z angl. query, dotaz) se zeptáš na informace o balíčku,
který máš nainstalovaný:
$ rpm -q bash
bash-5.0.7-1.fc30.x86_64
rpm -q -l bash
- zobrazí všechny soubory, jaké balíček instaluje.
Vyzkoušej si to, seznam těch souborů je velký.
Najdeš mezi nimi např. soubory v /etc/skel
- adresáři, který se zkopíruje do adresářů všech nově vytvořených uživatelů.
Nový uživatel dostane hned v domovském adresáři .bashrc
, .bash_logout
...
rpm -q --requires bash
- co bash
potřebuje, aby mohl být nainstalován.
Nejde jen obalíčky, ale i o jiné vlastnosti systému:
sh
filesystem
) v nějaké verzilibc
)rpmlib
)RPM umí i instalovat (-i
) a mazat (-e
) balíčky, ale protože neřeší
závislosti, hodí se to jen v hodně zvláštních situacích, např:
root
, můžeš vše.sudo dnf install balíček
- instalace balíčku (včetné stažení a závislostí)
sudo dnf remove balíček
- odinstalace balíčku
sudo dnf update
- aktualizace – dnf
se podívá na internet,
zjistí nejnovější verze všech balíčků, které máš nainstalované a nabídne
novější verze.
Repozitář je místo na internetu, kde jsou ke stažení balíčky. Ruzné repozitáře obsahují různé balíčky. Pro jednu linuxovou distribuci si jich můžeš přidat několik. Když chceš nainstalovat nový balíček, systém se podívá na všechny repozitáře, které má na svém seznamu, jestli v nich najde hledaný balíček.
Na Fedoře se repozitáře nacházejí v /etc/yum.repos.d/
.
Linuxové distribuce se liší svým přístupem k softwaru. Fedora, kupříkladu, nemá ve svých repozitářích přehrávač videa nebo MP3, protože v Americe jsou tyto technologie patentované.
Evropské právo softwarové patenty neuznává, a tak můžeš s klidným svědomím
přidat evropský repozitář rpmfusion
.
Tento projekt spravuje dva repozitáře:
Software v obou je k dispozici zdarma. „Free“ je tu od „freedom“ – volnost software používat, zkoumat a měnit.
Na stránkách rpmfusion se můžeš doklikat k návodu, jak přidat repozitář do svého systému:
$ sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Toto nainstaluje balíček rpmfusion-free-release
, který přidá nastavení
repozitáře do /etc/yum.repos.d/
:
$ rpm -ql rpmfusion-free-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-2020
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-32
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-32-primary
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-33
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-34
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-latest
/etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-rawhide
/etc/yum.repos.d/rpmfusion-free-updates-testing.repo
/etc/yum.repos.d/rpmfusion-free-updates.repo
/etc/yum.repos.d/rpmfusion-free.repo
A pak můžeš nainstalovat přehrávač videa/hudby:
$ sudo dnf install mplayer
$ mplayer /usr/share/sounds/gnome/default/alerts/bark.ogg
Zvuky ve formátu .ogg
jde přehrávat i bez přidání rpmfusion
.
mplayer
ale funguje i s .mp3
a ostatními.
Pomocí dnf
můžeš instalovat jak grafické aplikace (na které funguje
i grafický nástroj Gnome Software tak i programy pro příkazovou řádku
nebo systémové knihovny.
Taky se můžeš např. podívat jaký software máš nainstalovaný
(což jde i bez sudo
):
$ sudo dnf list installed
Taky můžeš systém aktualizovat:
$ sudo dnf update