IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.


 

Předchozí článek
Linuxový terminál (Bash) - Archivace a komprese
Všechny články v sekci
Základy Linuxu
Přeskočit článek
(nedoporučujeme)
Linuxový terminál (Bash) - Administrace sítového rozhraní
Článek pro vás napsal Václav Franz
Avatar
Uživatelské hodnocení:
43 hlasů
Aktivity