Správa balíkov

Ubuntu ponúka komplexný systém pre správu balíkov, t.j. pre inštaláciu, aktualizáciu, konfiguráciu a odobratie softvéru. Okrem toho, že nám Ubuntu poskytne prístup k vyše 24 000 zotriedených softvérových balíkov pre náš počítač, systém pre správu balíkov vyrieši aj vzájomné závislosti balíkov a kontrolu aktualizácií softvéru.

Existujú viaceré nástroje, ktoré spolupracujú so správcom balíkov Ubuntu od jednoduchých príkazov príkazového riadka, ktoré môžu byť jednoducho zautomatizované správcom systému, až po jednoduché grafické rozhranie, ktoré je ľahko ovládateľné aj pre nováčikov.

Úvod

Systém správy balíkov Ubuntu je odvodený od rovnakého, ako používa GNU/Linux distribúcia Debian. Súbory balíkov obsahujú všetky potrebné súbory, metadáta a inštrukcie pre implementáciu jednotlivých funkcionalít alebo softvérových aplikácií pre náš počítač. 

Súbory balíkov Debianu majú väčšinou príponu '.deb' a sú väčšinou uložené v Zdrojoch softvéru (repozitároch), ktoré predstavujú zbierku balíkov nachádzajúcich sa na rôznych médiách ako napríklad disky CD-ROM alebo Internet. Balíky sú väčšinou prekompilované do binárneho tvaru, preto je ich inštalácia rýchla a nevyžadujú ďalší softvér pre kompilovanie softvéru.

Mnoho komplexnejších balíkov používa koncept závislostí. Závislosti sú prídavné baliky, ktoré sú požadované hlavným balíkom k tomu, aby správne fungoval. Napríklad balík pre syntézu hlasu Festival závisí od balíka libasound2, čo je balík obsahujúci zvukovú knižnicu ALSA, ktorá je potrebná na prehrávanie zvuku. Aby Festival správne fungoval, musí byť tento balík a ostatné závislé balíky nainštalované. Systém správy balíkov Ubuntu to urobí automaticky.

dpkg

dpkg je správca balíkov pre systémy postavené na Debiane. Umožňuje inštalovať, odstraňovať a zostavovať balíky, ale na rozdiel od ostatných systémov na správu balíkov nemôže automaticky sťahovať a nainštalovať balíky a ich závislosti. Táto časť príručky hovorí o tom, ako sa dá dpkg využiť na správu lokálne nainštalovaných balíkov:

  • Ak chceme zobraziť zoznam všetkých nainštalovaných balíkov v systéme, zadáme do príkazového riadka príkaz:
    dpkg -l
  • V systéme je zvyčajne nainštalované veľké množstvo balíkov, preto výstup tohto príkazu bude rozsiahly. Príkaz však môžeme pomocou zvislého lomítka prepojiť s príkazom grep a obmedziť tak výstup iba na určitý typ nainštalovaných balíkov:
    dpkg -l | grep apache2
    Výraz apache2 môžeme nahradiť menom akéhokoľvek iného balíka, časťou mena alebo môžeme použiť tzv. regulárny výraz.
  • Ak chceme zobraziť súbory, ktoré boli nainštalované nejakým balíkom (v našom prípade balíkom ufw), zadáme:
    dpkg -L ufw
  • Ak potrebujeme vedieť, ktorý balík nainštaloval nejaký súbor, príkaz dpkg -S nám to možno prezradí. Napríklad:
    dpkg -S /etc/host.conf
    base-files: /etc/host.conf

    Výstup hovorí, že súbor /etc/host.conf je súčasťou balíka base-files.

    [Note] Mnoho súborov je počas inštalačného procesu automaticky vygenerovaných. Preto o niektorých súboroch v systéme súborov príkaz dpkg -S nevie zistiť, ku ktorému balíku prislúchajú.
  • Ak chceme nainštalovať .deb balík, ktorý sa už nachádza v počítači, zadáme:
    sudo dpkg -i zip_2.32-1_i386.deb
    Názov zip_2.32-1_i386.deb zmeníme na príslušný názov .deb súboru.
  • Tento balík je tiež možné odinštalovať príkazom:
    sudo dpkg -r zip
    [Caution] Odinštalovanie balíkov pomocou dpkg vo väčšine prípadov NEODPORÚČAME. Je lepšie použiť správcu balíkov, ktorý rieši závislosti, aby bol systém stále v konzistentnom stave. Napríklad ak odinštalujete balík pomocou dpkg -r, odstránite síce balík zip, ale iné balíčky, ktoré sú od neho závislé nemusia potom správne fungovať.

Viac o možnostiach dpkg sa dozvieme na stránkach man: man dpkg.

Apt-Get

Príkaz apt-get je mocný nástroj príkazového riadka, ktorý pracuje s Advanced Packaging Tool (APT) - rozšíreným balíkovacím nástrojom a vykonáva také funkcie ako inštalovanie nových softvérových balíkov, aktualizáciu existujúcich softvérových balíkov, aktualizáciu zoznamu balíkov a dokonca aj prechod na novú verziu celého systému Ubuntu.

Vďaka tomu, že sa jedná o jednoduchý nástroj príkazového riadka, apt-get poskytuje správcom servera mnoho výhod oproti ostatným nástrojom na správu balíkov. Niektoré z výhod sú napríklad jednoduché použitie pri terminálovom (SSH) pripojení a možnosť použitia v skriptoch, čo umožňuje jeho automatické naplánované spúšťanie pomocou nástroja cron.

Príklady najčastejšieho použitia nástroja apt-get:

  • Inštalácia balíka: Inštalácia balíkov pomocou nástroja apt-get je veľmi jednoduchá. Napríklad, ak chceme nainštalovať skener siete nmap, zadáme toto:
    sudo apt-get install nmap
  • Odstránenie balíka: Odstránenie balíka je tiež priamočiary a jednoduchý proces. Ak chceme odstrániť balík nmap, ktorý sme nainštalovali v predchádzajúcom príklade, zadáme nasledujúci príkaz:
    sudo apt-get remove nmap
    [Tip]

    Viaceré balíky: Pri inštalovaní alebo odstraňovaní môžete zadať viaceré balíky oddelené medzerami.

    Pridaním voľby --purge k príkazu apt-get remove, odstránime aj súbory s nastaveniami, ktoré boli vytvorené balíkom. To môže, ale nemusí mať za následok želaný efekt, preto je túto voľbu potrebné používať opatrne.
  • Aktualizácia zoznamu balíkov: Zoznam balíkov APT je v podstate databáza dostupných balíkov zo zdrojov softvéru definovaných v  súbore /etc/apt/sources.list. Ak chceme aktualizovať lokálne uložený zoznam balíkov a zahrnúť do neho posledné zmeny v zdrojoch softvéru, zadáme príkaz:
    sudo apt-get update
  • Aktualizácia balíkov: Časom sa v zdrojoch softvéru objavia novšie verzie balíkov, ktoré sú práve nainštalované v počítači (napríklad bezpečnostné aktualizácie). Ak chceme aktualizovať náš systém, najskôr aktualizujeme zoznam balíkov a potom zadáme:
    sudo apt-get upgrade
      Informácie o tom, ako prejsť na novú verziu Ubuntu sa nachádzajú v časti Prechod na novú verziu.

Akcie príkazu apt-get ako inštalovanie a odstraňovanie balíkov súzaznamenávané do súboru /var/log/dpkg.log.

Ďalšie informácie o používaní APT sa dozvieme v anglickom jazyku na stránke Debian APT User Manual alebo zadaním:

apt-get help

Aptitude

Aptitude je nadstavba systému Advanced Packaging Tool (APT) s textovým rozhraním. Poskytuje mnoho funkcií na správu balíkov, ako inštalovanie, odstraňovanie a aktualizovanie, ktoré sa väčšinou vykonávajú stlačením jedného malého písmena.

Nástroj Aptitude je prispôsobený na použitie v textovom prostredí terminálu, aby správne fungovali všetky kľúčové príkazy. Aptitude môžeme spustiť zadaním nasledujúceho príkazu do príkazového riadka:

sudo aptitude

Po spustení Aptitude uvidíme ponuku v hornej časti obrazovky a dve ďalšie časti okna pod ním. Horná časť obsahuje kategórie balíkov ako napríklad Nové balíky alebo Nenainštalované balíky. Dolná časť obsahuje informácie, ktoré sa vzťahujú na balíky a kategórie balíkov.

Používanie Aptitude na správu balíkov je relatívne jednoduché, pretože používateľské rozhranie umožňuje jednoducho vykonať bežné úlohy.  Nasledujúce príklady demonštrujú, ako sa tieto bežné úlohy spojené so správou balíkov dajú urobiť pomocou Aptitude:

  • Inštalácia balíkov: Ak chceme nainštalovať balík, vyhľadáme ho v kategórii Nenainštalované balíky, napríklad pomocou šipiek klávesnice a klávesy ENTER a presuíeme sa na balík, ktorý chceme nainštalovať. Potom stlačíme na klávesnici + a názov balíka by sa mal zafarbiť zelenou farbou, čo indikuje, že balík je vybraný na inštaláciu. Teraz stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a sťahovanie a inštalácia balíkov prebehne.
  • Odstraňovanie balíkov: Ak chceme odstrániť balík, vyhľadáme ho v kategórii Nainštalované balíky, napríklad pomocou pomocou šipiek klávesnice a klávesy ENTER a presunieme sa na balík, ktorý chceme odstrániť. Potom stlačíme na klávesnici - a názov balíka by sa mal zafarbiť ružovou farbou, čo indikuje, že balík je vybraný na odstránenie. Teraz stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a balíky sa odstránia.
  • Aktualizácia zoznamu balíkov: Ak chceme aktualizovať zoznam balíkov, jednoducho stlačíme na klávesnici u. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Po tomto kroku prebehne aktualizácia zoznamu balíkov. Stlačíme ENTER na OK, keď sa zobrazí dialóg o dokončení sťahovania.
  • Aktualizácia balíkov: Ak chceme aktualizovať balíky, najskôr zaktualizujeme zoznam balíkov podľa vyššie uvedeného postupu a potom stlačíme na klávesnici veľké U, čím sa vyberú balíky na aktualizáciu. Stlačíme g, aby sa zobrazil sumár akcií, ktoré sa budú vykonávať s balíkmi. Stlačíme g znova, čím spustíme správu balíkov. Kvôli bezpečnosti nás systém pred tým, ako bude pokračovať, ešte vyzve, aby sme zadali heslo. Stlačíme ENTER a zobrazí sa výzva Heslo:. Zadáme naše heslo, a tým získame oprávnenia na manipuláciu s balíkmi. Nakoniec stlačíme ešte raz g a systém sa opýta, či naozaj chceme vykonať požadované zmeny. Stlačíme ENTER na Pokračovať a sťahovanie a aktualizácia balíkov prebehne.

Pri prezeraní zoznamu balíkov vo vrchnej časti okna je v prvom stĺpci zobrazený aktuálny stav balíka, ktorý môže obsahovať tieto skratky opisujúce stav balíka:

  • i: Nainštalovaný balík
  • c: Balík nie je nainštalovaný, ale konfigurácia balíka sa nachádza v systéme
  • p: Odstránený zo systému
  • v: Virtuálny balík
  • B: Poškodený balík
  • u: Súbory sú rozbalené, ale balík ešte nie je nakonfigurovaný
  • C: Čiastočne nakonfigurovaný - konfigurácia zlyhala a vyžaduje opravu
  • H: Čiastočne nainštalovaný - odstraňovanie zlyhalo a vyžaduje opravu

Ak chceme ukončť Aptitude, jednoducho stlačíme na klávesnici q a potvrdíme, že chceme skončiť. V ponuke Aptitude sa nachádza mnoho ďalších funkcií, vyvoláme ju stlačením F10 na klávesnici.

Automatická aktualizácia

Balík unattended-upgrades môžeme použiť na automatickú inštaláciu aktualizovaných balíkov. Môžeme ho nastaviť tak, aby aktualizoval všetky balíky alebo iba inštaloval bezpečnostné aktualizácie. Nainštalujeme ho zadaním príkazu do príkazového riadka:

sudo apt-get install unattended-upgrades

Nástroj unattended-upgrades sa konfiguruje pomocou súboru /etc/apt/apt.conf.d/50unattended-upgrades. Otvoríme ho a upravíme nasledujúce nastavenia tak, ako potrebujeme:

Unattended-Upgrade::Allowed-Origins {
"Ubuntu jaunty-security";
// "Ubuntu jaunty-updates";
};

Niektoré balíky môžeme dať na čiernu listinu, aby sa neaktualizovali automaticky. Ak chceme zakázať automatickú aktualizáciu niektorého balíka, dopíšeme ho do zoznamu:

Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
[Note]

Dve lomítka // znamenajú poznámku, čokoľvek za "//" sa nebude spracovávať.

Keď chceme povoliť automatické aktualizácie, otvoríme súbor /etc/apt/apt.conf.d/10periodic a nastavíme príslušné konfiguračné voľby apt:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

Predchádzajúca konfigurácia aktualizácii zoznamu balíkov určuje, že sa dostupné aktualizácie stiahnu a nainštalujú každý deň. Lokálne stiahnuté archívy sa vymažú každý týždeň.

Viac informácií o konfigurácii periodických volieb apt sa nachádza v hlavičke sktiptu /etc/cron.daily/apt.

Výstupy unattended-upgrades budú zaznamenávané do súboru /var/log/unattended-upgrades.

Oznamovanie

Nastavením hodnoty Unattended-Upgrade::Mail v súbore /etc/apt/apt.conf.d/50unattended-upgrades povolíme nástroju unattended-upgrades, aby posielal správcovi emaily obsahujúce podrobnosti o balíkoch, ktoré je potrebné aktualizovať alebo majú iný problém.

Iný užitočný nástroj je apticron. Nástroj apticron nastaví úlohu pre plánovač cron, ktorá bude emailom odosielať správcovi informácie o balíkoch, ktoré je potrebné aktualizovať spolu so sumárom zmien každého balíka.

Ak chceme nainštalovať nástroj apticron, zadáme príkaz:

sudo apt-get install apticron

Keď je nástroj nainštalovaný, môžeme nastaviť emailovú adresu v súbore /etc/apticron/apticron.conf, na ktorú sa budú odosielať emaily:

EMAIL="spravca@nieco.sk"

Nastavenie zdrojov softvéru

Konfigurácia zdrojov softvéru systému Advanced Packaging Tool (APT) je uložená v súbore /etc/apt/sources.list. V tejto časti si ukážeme, ako sa do tohto súboru pridávajú a odstraňujú zdroje softvéru.

Jednoduchý príklad súboru /etc/apt/sources.list nájdete na tejto stránke príklad konfiguračného súboru APT.

Súbor môžeme otvoriť a pridať alebo odobrať zdroje softvéru. Napríklad, ak chceme vypnúť požiadavku na vloženie Ubuntu CD-ROM disku, ktorá sa zjavuje pri operáciách s balíkmi, jednoducho zapoznámkujeme príslušný riadok pre CD-ROM, ktorý sa nachádza hneď na začiatku tohto súboru:

# no more prompting for CD-ROM please
# deb cdrom:[Ubuntu 10.04_Lucid_Lynx - Release i386 (20070419.1)]/ lucid main restricted

Prídavné zdroje softvéru

Ako dodatok ku oficiálnym zdrojom podporovaných balíkov pre Ubuntu existujú prídavné, komunitami spravované zdroje softvéru, ktoré môžu pridať tisíce ďalších balíkov. Dva najpopulárnejšie zdroje softvéru sú Universe a Multiverse. Tieto zdroje nie sú oficiálne podporované Ubuntu, ale pretože sú spravované komunitou, poskytujú balíky, ktoré môžeme bezpečne používať na našom počítači.

[Note]

Balíky v zdroji Multiverse majú často licenčné obmedzenia, ktoré bránia v ich distribúcii spolu so slobodným operačným systémom, a ich použitie je v niektorých krajinách nelegálne.

[Warning]

Upozorňujeme, že ani jeden zo zdrojov Universe a Multiverse neobsahujú oficiálne podporované balíky. Preto pre tieto balíky nemusia byť dostupné bezpečnostné aktualizácie.

Existuje ešte mnoho ďalších dostupných zdrojov, z ktorých niektoré obsahujú len jeden balík, napríklad ak ho poskytuje vývojár vyvýjajúci iba jednu aplikáciu. Pred použitím takéhoto neštandardného zdroja by sme mali byť vždy veľmi opatrní. Pred použitím takéhoto zdroja je potrebné dôkladne preskúmať zdrojové kódy jeho balíkov, pretože takéto balíky môžu spôsobiť nestabilitu alebo nefunkčnosť nášho systému.

V základnom stave sú zdroje softvéru Universe a Multiverse zapnuté, ale ak ich chcete vypnúť, zakomentujte v súbore /etc/apt/sources.list tieto riadky:

deb http://archive.ubuntu.com/ubuntu lucid universe multiverse
deb-src http://archive.ubuntu.com/ubuntu lucid universe multiverse

deb http://sk.archive.ubuntu.com/ubuntu/ lucid universe
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid universe
deb http://sk.archive.ubuntu.com/ubuntu/ lucid-updates universe
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid-updates universe

deb http://sk.archive.ubuntu.com/ubuntu/ lucid multiverse
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid multiverse
deb http://sk.archive.ubuntu.com/ubuntu/ lucid-updates multiverse
deb-src http://sk.archive.ubuntu.com/ubuntu/ lucid-updates multiverse

deb http://security.ubuntu.com/ubuntu lucid-security universe
deb-src http://security.ubuntu.com/ubuntu lucid-security universe
deb http://security.ubuntu.com/ubuntu lucid-security multiverse
deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse

Zdroje

Väčšina informácií, ktoré sme použili v tejto kapitole, je dostupná na stránkach man a veľa je tiež dostupných online.