14. diel - Linuxový terminál (Bash) - Správa aplikácií
V predchádzajúcej lekcii sme sa naučili čo je to archivácia, kompresia a komprimácia. Ukázali sme si ako archivovať súbory programom tar a ako zmenšiť ich veľkosť nástrojmi gzip, bzip2 a zips.
V dnešnej lekcii sa pozrieme hlbšie na aplikácie. Vysvetlíme si, ako sa program v Linuxe distribuuje, kde sa uchováva a ako sa k nemu dostaneme cez príkazový riadok. Naučíme sa nielen programy inštalovať, ale aj vyhľadávať a jednoducho o nich získať potrebné informácie.
Softvérový balíček
Predtým inštalácia programu vyžadovala, aby používateľ stiahol
zdrojový kód, skompiloval ho do binárneho
kódu a uložil do systému. Dnes je toto nahradené
automatizáciou pomocou softvérových
balíčkov a nástrojov na prácu s nimi. Softvérový
balíček je komprimovaný súbor, ktorý obsahuje všetky potrebné informácie
na inštaláciu a následné odinštalovanie programu. V distribúciách
založených na Debiane, ako je aj Ubuntu, je
softvér komprimovaný do balíčka s príponou .deb
.
DPKG
V Ubuntu a iných distribúciách založených na Debiane manipuláciu so
softvérovými balíčkami vykonáva program DPKG
. Je to
nízkoúrovňový program, s ktorým my ako používatelia neprídeme priamo do
styku. Iba mu odovzdávame pokyny prostredníctvom iných programov, napr.
APT
. Vďaka DPKG
môžeme inštaláciu balíčkov s
koncovkou .deb
automatizovať.
Repozitár
Aplikácie v podobe balíčkov sú umiestnené v repozitári. Repozitár si môžeme predstaviť ako centrálne úložisko pre softvér, z ktorého si my používatelia aplikácie sťahujeme. Najčastejšie sa jedná o server, ku ktorému pristupujeme cez internet, ale môžeme si vytvoriť repozitár aj z lokálneho adresára alebo USB disku. Výhodami šírenia softvéru pomocou repozitárov sú pohodlná inštalácia pomocou správcu balíčkov a kompatibilita programov. Málokedy sa stane, že by program z oficiálneho repozitára distribúcie nebol stopercentne kompatibilný so systémom. Niektoré balíčky v repozitári majú pre svoje správne fungovanie vytvorené závislosti na iných balíčkach. Tieto balíčky sú uložené v rovnakom repozitári a pri pokyne na inštaláciu sa stiahnu súčasne.
Správa repozitárov
Väčšina distribúcií má viacero repozitárov podľa účelu, na ktorý
sú určené. Cesty sú uložené v súbore /etc/apt/sources.list
.
Ubuntu má v tomto súbore štandardne uložené cesty k niekoľkým základným
repozitárom. Ak chceme získať softvér z iného repozitára, je potrebné
zapísať cestu na nový riadok do tohto súboru. Cesta je k nájdeniu
väčšinou na webe repozitára alebo samotnej distribúcie a vždy začína
slovom deb
.
APT
Program apt
slúži na komunikáciu s DPKG
a na
jeho ovládanie. Umožňuje nám pohodlne inštalovať a odinštalovať
balíčky a vyhľadávať a získavať informácie o balíčkoch v našich
repozitároch. Program apt
je užívateľsky veľmi prívetivý.
Jednotlivé príkazy sú jednoduché a ľahko zapamätateľné. Na použitie je
potrebné oprávnenie root a príkaz sudo
.
Update
V systémoch ako sú Windows nie je ľahké udržať aktuálnosť všetkých
programov, pretože nie všetky majú funkciu automatickej aktualizácie.
Aktualizácie nám nezaisťujú len správnu funkčnosť, ale aj lepšie
zabezpečenie proti útočníkom. Keďže Linuxové systémy využívajú na
distribúciu softvéru repozitára, ku všetkým aktuálnym verziám sa ľahko
dostaneme pomocou jedného príkazu update
:
sudo apt update
Upgrade
Najnovšia verzia našich aplikácií z repozitára aktualizujeme
jednoduchým príkazom upgrade
:
sudo apt upgrade
Vyhľadávanie balíčkov
Pokiaľ si chceme overiť, či máme k dispozícii v repozitároch jeden
konkrétny balíček, využijeme príkaz apt-cache search
:
sudo apt-cache search apache2
Týmto príkazom vyhľadáme nielen všetky balíčky obsahujúce kľúčové
slovo apache2, ale aj všetky balíčky na ktoré je odkázaná nejaká
závislosť. Pre presnejšie vyhľadávanie v zozname dostupných balíčkov
môžeme využiť aj filtrovanie pomocou 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
Prepínač -i
znamená ignore case
alebo ignorovať rozdiel medzi veľkými a malými písmenami.
Na vyhľadávanie balíčkov môžeme použiť aj príkaz
apt list
. Parameter v tomto prípade neslúži ako kľúčové
slovo, ale je potrebné zadať presný názov programu. Vrátia nám preto iba
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 tiež využiť aj niektoré nastavenia ako je napr. vypísať zoznam iba nainštalovaných balíčkov.
sudo apt list --installed
Informácie o balíčku
Pred odobratím alebo inštaláciou nám niekedy môžu byť užitočné
informácie o veľkosti, verzii, zdroji alebo závislostiach balíčka. Na to
nám poslúži prí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
Inštalácia z repozitára
Zistili sme názov programu a teraz môžeme prejsť na inštaláciu. Na
nainštalovanie stačí k apt
pripojiť install
a
názov balíčka.
sudo apt install apache2
Odinštalácia
Podobne ako inštalovať, je možné program aj odinštalovať. Pokiaľ nevieme presný názov balíčka, ktorý chceme odstrániť, môžeme ho vyhľadať pomocou kľúčového slova.
sudo apt list –installed | grep apache
Na odstránenie balíčka slúžia dva príkazy:
sudo apt remove apache2
alebo
sudo apt purge apache2
Rozdiel medzi nimi je taký, že remove
odstráni zadaný
balíček, zatiaľ čo purge
odstráni aj všetky ostatné
balíčky inštalované ako závyslosti alebo prípadné konfiguračné súbory
programu.
Umiestnenie programov
Väčšina spustiteľných programov sa inštaluje do vopred definovaných
adresárov. Pokiaľ zadáme do terminálu napr. príkaz less
, Bash
prehľadá všetky tieto adresáre. Pokiaľ sa v niektorom z nich program
less
nachádza, spustí ho. Ak ho nenájde, vráti chybovú správu
less: command not found
.
Všetky tieto adresáre sú uložené v systémovej premennej
PATH
, oddelenej dvojbodkou. Vypísať si ich môžeme pomocou
prí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
Pokiaľ je program nainštalovaný v adresári, ktorý nie je v tejto premennej, môžeme ho ručne pridať napr. takto:
expand $PATH=PATH:/home/David/
Kým nebude adresárová cesta zapísaná v PATH
, musíme pre
spustenie zadať celú cestu k programu.
Inštalácia programu bez repozitára
Nie každý program je možné získať z nášho repozitára. Niekedy je k dispozícii iba na serveri vydavateľa a my si ho musíme stiahnuť a nainštalovať ručne. Jedným z takýchto programov je prehliadač Google Chrome, ktorý si teraz nainštalujeme.
Stiahnutie inštalačného súboru
Na stiahnutie inštalačného súboru potrebujeme URL odkaz na balíček s
príponou .deb
, ktorý pripojíme k wget
, príkazu
určenému na sťahovanie z internetu.
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Takto sa súbor stiahne do adresára, v ktorom sa aktuálne nachádzame. Pre
zadanie konkrétneho adresára na stiahnutie slúži prepínač
-P
.
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -P /home/David/Downloads
Inštalácia zo súboru
Ak máme stiahnutý balíček s príponou .deb
, môžeme
nainštalovať program.
sudo apt install /home/David/Downloads/google-chrome-stable_current_amd64.deb
Google Chrome máme úspešne nainštalovaný.
V ďalšej lekcii sa pozrieme na sieťové rozhranie. Ukážeme si, ako získať informácie o našej sieti a ako nastaviť sieťové rozhranie zápisom do konfiguračného súboru.