Lekce 14 - Linuxový terminál (Bash) - Správa aplikací
V předchozí lekci, Linuxový terminál (Bash) - Archivace a komprese, jsme se naučili co je to archivace, komprese a komprimace. Ukázali jsme si jak archivovat soubory programem tar a jak zmenšit jejich velikost nástroji gzip, bzip2 a zip.
V dnešní lekci Linux tutoriálu se podíváme hlouběji na aplikace. Vysvětlíme si, jak se program v Linuxu distribuuje pomocí balíčků, kde se uchovává a jak se k němu dostaneme přes příkazový řádek. Naučíme se nejen programy instalovat z repozitářů, ale i vyhledávat a jednoduše o nich získat potřebné informace.
Softwarový balíček
Dříve instalace programu vyžadovala, aby uživatel stáhl
zdrojový kód, zkompiloval ho do binárního
kódu a uložil do systému. Dnes je toto nahrazeno
automatizací pomocí softwarových balíčků
a nástrojů pro práci s nimi. Softwarový balíček je komprimovaný soubor,
který obsahuje veškeré potřebné informace k instalaci a následné
odinstalaci programu. V distribucích založených na Debianu,
jako je i Ubuntu, je software komprimovaný do balíčku s
příponou .deb.
DPKG
V Ubuntu a jiných distribucích založených na Debianu manipulaci se
softwarovými balíčky provádí program DPKG. Je to
nízkoúrovňový program, s kterým my jako uživatelé nepřijdeme přímo do
styku. Pouze mu předáváme pokyny prostřednictvím jiných programů, např.
APT. Díky DPKG můžeme instalaci balíčků s
koncovkou .deb automatizovat.
Repozitář
Aplikace v podobě balíčků jsou umístěny v repozitáři. Repozitář si můžeme představit jako centrální úložiště pro software, ze kterého si my uživatelé aplikace stahujeme. Nejčastěji se jedná o server, ke kterému přistupujeme přes internet, ale můžeme si vytvořit repozitář i z lokálního adresáře nebo USB disku. Výhodami šíření software pomocí repozitářů jsou pohodlná instalace pomocí správce balíčků a kompatibilita programů. Málokdy se stane, že by program z oficiálního repozitáře distribuce nebyl stoprocentně kompatibilní se systémem. Některé balíčky v repozitáři mají pro své správné fungování vytvořené závislosti na jiných balíčkách. Tyto balíčky jsou uloženy ve stejném repozitáři a při pokynu k instalaci se stáhnou současně.
Správa repozitářů
Většina distribucí má více repozitářů podle účelu, pro který jsou
určeny. Cesty jsou uloženy v souboru /etc/apt/sources.list.
Ubuntu má v tomto souboru standardně uložené cesty k několika základním
repozitářům. Chceme-li získat software z jiného repozitáře, je
zapotřebí zapsat cestu na nový řádek do tohoto souboru. Cesta je k
nalezení většinou na webu repozitáře nebo samotné distribuce a vždy
začíná slovem deb.
APT
Program apt slouží ke komunikaci s DPKG a k jeho
ovládání. Umožňuje nám pohodlně instalovat a odinstalovat balíčky,
vyhledávat a získávat informace o balíčcích v našich repozitářích.
Program apt je uživatelsky velmi přívětivý. Jednotlivé
příkazy jsou jednoduché a snadno zapamatovatelné. K použití je zapotřebí
oprávnění root a příkaz sudo.
Update
V systémech jako jsou Windows není snadné udržet aktuálnost všech
programů, jelikož ne všechny mají funkci automatické aktualizace.
Aktualizace nám nezajišťují jen správnou funkčnost, ale i lepší
zabezpečení proti útočníkům. Jelikož Linuxové systémy využívají k
distribuci softwaru repozitáře, ke všem aktuálním verzím se snadno
dostaneme pomocí jednoho příkazu update:
sudo apt update
Upgrade
Nejnovější verze našich aplikací z repozitáře aktualizujeme
jednoduchým příkazem upgrade:
sudo apt upgrade
Vyhledávání balíčků
Pokud si chceme ověřit, zda máme k dispozici v repozitářích jeden
konkrétní balíček, využijeme příkaz apt-cache search:
sudo apt-cache search apache2
Tímto příkazem vyhledáme nejen všechny balíčky obsahující klíčové
slovo apache2, ale i všechny balíčky, na které je odkázána nějaká
závislost. Pro přesnější vyhledávání v seznamu dostupných balíčků
můžeme využít i filtrování pomocí grep:
sudo apt-cache search apache2 | grep http -i apache2 - Apache HTTP Server apache2-bin - Apache HTTP Server (modules and other binary files) apache2-data - Apache HTTP Server (common files) apache2-dev - Apache HTTP Server (development headers) apache2-doc - Apache HTTP Server (on-site documentation) apache2-ssl-dev - Apache HTTP Server (mod_ssl development headers) apache2-utils - Apache HTTP Server (utility programs for web servers) apache2-suexec-custom - Apache HTTP Server configurable suexec program for mod_suexec apache2-suexec-pristine - Apache HTTP Server standard suexec program for mod_suexec libapache2-mod-evasive - evasive module to minimize HTTP DoS or brute force attacks libapache2-mod-svn - Apache Subversion server modules for Apache httpd
Přepínač -i znamená ignore case,
neboli ignorovat rozdíl mezi velkými a malými písmeny.
K vyhledávání balíčků můžeme použít i příkaz
apt list. Parametr v tomto případě neslouží jako klíčové
slovo, ale je třeba zadat přesný název programu. Vrátí nám proto pouze
hlavní balíčky bez závislostí:
sudo apt list apache2 apache2/jammy-updates,jammy-security,now 2.4.52-1ubuntu4.1 amd64 apache2/jammy-updates,jammy-security 2.4.52-1ubuntu4.1 i386
Umožňuje nám také využít i některé nastavení, např. vypsat seznam pouze nainstalovaných balíčků:
sudo apt list --installed
Informace o balíčku
Před odebráním nebo instalací nám někdy mohou být užitečné
informace o velikosti, verzi, zdroji nebo závislostech balíčku. K tomu nám
poslouží příkaz apt show:
david@david:/$ sudo apt show apache2 Package: apache2 Version: 2.4.52-1ubuntu4.1 Priority: optional Section: web Origin: Ubuntu Maintainer: Ubuntu Developers <[email protected]> Original-Maintainer: Debian Apache Maintainers <[email protected]> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 546 kB Provides: httpd, httpd-cgi Pre-Depends: init-system-helpers (>= 1.54~) Depends: apache2-bin (= 2.4.52-1ubuntu4.1), apache2-data (= 2.4.52-1ubuntu4.1), apache2-utils (= 2.4.52-1ubuntu4.1), lsb-base, mime-support, perl:any, procps Recommends: ssl-cert Suggests: apache2-doc, apache2-suexec-pristine | apache2-suexec-custom, www-browser, ufw Conflicts: apache2.2-bin, apache2.2-common Replaces: apache2.2-bin, apache2.2-common Homepage: https://httpd.apache.org/ Task: lamp-server Download-Size: 97,8 kB APT-Manual-Installed: yes APT-Sources: http://cz.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages Description: Apache HTTP Server The Apache HTTP Server Project's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the number one web server on the Internet. . Installing this package results in a full installation, including the configuration files, init scripts and support scripts. N: There is 1 additional record. Please use the '-a' switch to see it
Instalace z repozitáře
Zjistili jsme název programu a nyní můžeme přejít k instalaci. Pro
nainstalování stačí k apt připojit install a
název balíčku.
sudo apt install apache2
Odinstalace
Podobně jako instalovat, lze program i odinstalovat. Pokud neznáme přesný název balíčku, který chceme odstranit, můžeme ho vyhledat pomocí klíčového slova:
sudo apt list –installed | grep apache
K odstranění balíčku slouží dva příkazy:
sudo apt remove apache2
nebo:
sudo apt purge apache2
Rozdíl mezi nimi je ten, že remove odstraní zadaný
balíček, zatímco purge odstraní i všechny ostatní balíčky
instalované jako závislosti, či případné konfigurační soubory
programu.
Umístění programů
Většina spustitelných programů se instaluje do předem definovaných
adresářů. Pokud zadáme do terminálu např. příkaz less, Bash
prohledá všechny tyto adresáře. Pokud se v některém z nich program
less nachází, spustí ho. Pokud ho nenajde, vrátí chybovou
zprávu less: command not found.
Všechny tyto adresáře jsou uložené v systémové proměnné
PATH, oddělené dvojtečkou. Vypsat si je můžeme pomocí
příkazu echo:
david@david:/$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
Pokud je program nainstalovaný v adresáři, který není v této proměnné, můžeme ho ručně přidat např. takto:
expand $PATH=PATH:/home/David/
Dokud nebude adresářová cesta zapsaná v PATH, musíme pro
spuštění zadat celou cestu k programu.
Instalace programu bez repozitáře
Ne každý program lze získat z repozitáře. Někdy je k dispozici pouze na serveru vydavatele, odkud si ho musíme stáhnout a nainstalovat ručně. Jedním z takových programů je prohlížeč Google Chrome, který si nyní nainstalujeme:
Stažení instalačního souboru
Pro stažení instalačního souboru potřebujeme URL odkaz na balíček s
příponou .deb, který připojíme k wget, příkazu
určenému ke stahování z internetu:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Takto se soubor stáhne do adresáře, ve kterém se aktuálně nacházíme.
Pro zadání konkrétního adresáře ke stažení slouží přepínač
-P:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -P /home/David/Downloads
Instalace ze souboru
Pokud máme stažený balíček s příponou .deb, můžeme
program nainstalovat:
sudo apt install /home/David/Downloads/google-chrome-stable_current_amd64.deb
Tímto máme Google Chrome úspěšně nainstalovaný.
V další lekci, Linuxový terminál (Bash) - Administrace sítového rozhraní, se podíváme na síťové rozhraní. Ukážeme si, jak získat informace o naší síti a jak nastavit síťové rozhraní zápisem do konfiguračního souboru.

