Linux jak zjistit, který správce balíčků. Správci balíčků v Linuxu. Správci balíčků založených na Debianu

Zdravím vás, drazí přátelé, známí a další osobnosti.

Jak asi víte a pamatujete, slíbil jsem, že pomalu (na vaši žádost) proberu linuxový cyklus, seznámím vás s různými základy a velmi postupně přejdu od teorie k praxi.

Dnes budeme pokračovat v tématu poznávání teorie a základů, a proto se budeme bavit o takové věci, jako jsou úložiště a vše s nimi spojené, tzn. Pojďme zjistit, jak vypadá linuxový software zevnitř, jak je vše uloženo a tak dále.

Celá tato obrovská hromada balíčků s hromadou vzájemných závislostí, spravovaná správcem balíčků, je přesně to, co tvoří vaši distribuci Linuxu. Ale to není jen hromada odpadků, ale spořádaný systém zvaný - ta-dam! - úložiště softwarových balíků. Kruh se uzavřel - vrátili jsme se k prvnímu konceptu - co je to úložiště :)

Pár slov o nuancích

Na závěr bych ještě rád řekl, že bez ohledu na to, jak stabilní, stabilní a nezničitelný Linux je, musí uživatel stále dbát určité opatrnosti. Například:

  1. Není třeba pokoušet osud a instalovat programy na Linux, obcházet správce balíčků, jednoduchou kompilací. Budou fungovat, ale správce balíčků nebude o nich nic vědět, a proto při aktualizaci systému nebo programů riskujete, že vám na hlavu naskočí více problémů, než si představujete. Instalujte programy pouze jako balíčky.
  2. Není potřeba propojovat ta úložiště, o kterých máte velmi mlhavou představu. Například není potřeba spojovat úložiště se slovy testování, ladění a podobnými pojmy, protože tato úložiště jsou primárně určena pro samotné vývojáře distribucí a nejsou vždy stabilní.
  3. Nepřipojujte všechna dostupná úložiště za sebou, i to si z vás může udělat krutý vtip. Připojte jen to nejnutnější, není třeba být lakomý :)

Například při instalaci operační systém Fedora má ve výchozím nastavení připojena dvě úložiště najednou:

  • Fedora (balíčky, které se hodí pro jakoukoli kombinaci CD nebo DVD)
  • Aktualizace (aktualizované balíčky novější než úložiště Fedory)

Pro běžný provoz je potřeba připojit další úložiště rpmfusion (bez něj se opravdu neobejdete), které umožní přístup k programům, které nebylo možné zařadit do distribuce kvůli licenčním omezením (aplikace, které jsou vyžadovány např. mp3, dvd atd.) atd.; – zahrnují proprietární ovladače pro ATI a NVIDIA; hry: Bub's Brothers, Secret Maryo Chronicles, UFO: Alien Invasion, Wörms of Prey, xrick, GLtron a mnoho, mnoho dalších; emulátory: emulátor Commodore 64, dále Commodore 8 bit, emulátor Amiga, Nestopia, ZSNES a mnoho dalších). Chcete-li připojit toto úložiště, stačí zadat následující příkazy do příkazového řádku (terminálu) jako superuživatel ():
$ sudo rpm -ivh https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
$ sudo rpm -ivh https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

Vezměte prosím na vědomí, že úložiště rpmfusion je rozděleno na dvě části: volné a nefree. První obsahuje čistě svobodné programy ve smyslu FSF, šířené pod GPL a kompatibilní licence. Obsah druhého, na rozdíl od názvu, jsou také většinou bezplatné programy, ale podléhající notoricky známým patentovým omezením některých států (například audio a video kodeky).

Totéž platí pro správce balíčků ve Fedoře. Pro normální a pohodlná práce správce balíčků (yum) ve Fedoře se doporučuje připojit další plugin Fastmirror. Tento plugin je velmi důležitý: neurčuje pouze nejbližší zrcadlo, jak to dělají podobné nástroje z jiných systémů pro správu balíčků, ale instaluje přesně to nejrychlejší zrcadlo v tento moment– podle doby odezvy.
$ sudo yum nainstalovat yum-plugin-fastestmirror
Zkrátka něco takového :)

Doslov

Chápu, že bez praxe je docela těžké tohle všechno vnímat za běhu, ale nedá se nic dělat - to jsou ty nejzákladnější a nejzákladnější teoretické informace, se kterými by se měl každý uživatel alespoň nějak seznámit, aby měl představu ​co je co a proč, a Nešťourejte slepě do tlačítek a nečtěte neznámé výrazy.

V následujících článcích se podíváme na to, co přesně je instalace balíčků v Linuxu, jak je tento operační systém strukturován, co znamená uživatel (a kdo je superuživatel, známý také jako root) a povíme si také o programech a ještě něco. Zůstaň s námi.

Jako vždy, pokud máte nějaké dotazy, doplnění atd., rád je uvidím v komentářích k tomuto materiálu.

P.S. Děkuji členu týmu Pantera za existenci tohoto článku.

Někdy může vyvstat otázka: čí je to soubor, odkud tato knihovna pochází?? Pohodlný správce balíčků řeší mnoho problémů s operačním systémem. Dá se s jistotou říci, že pokud se spřátelíte s MP, stanete se přáteli i se samotnou distribucí. Navíc je důležité ovládat sadu základních příkazů a vědět, kde najít další informace.


Následuje džentlmenská sada příkazů nezbytných pro každodenní rutinu hlavních linuxových distribucí: instalace, aktualizace a odstranění balíčku, zavedení aktualizací, kontrola závislostí, určení, zda soubor patří k balíčku atd.

Debian a související

Popularita a přátelská image uživatel Linuxu distribuční sady hrály na Ubuntu krutý vtip. Někteří začátečníci si myslí, že si na něm bez pomoci mohou dělat, co chtějí. příkazový řádek. To je mylná představa a je lepší se jí co nejdříve zbavit.


Skutečnost, že aptitude je v příkladech, neznamená, že je správnější než apt-get . Pro mě je to jen otázka zvyku.


$ instalační balíček aptitude #install package; $ balíček safe-upgrade aptitude #upgrade package; $ aptitude update #zkontrolovat a nainstalovat aktualizace; $ aptitude odstranit balíček #remove package; $ aptitude purge package #delete kompletní balíček, všechna data a nastavení; $ apt-get dist-upgrade #upgrade OS, killer-feature a funguje to! $ aptitude search package #search for package. $ apt-cache závisí na balíčku #package dependencies; $ apt-cache rddepends package #reverse package dependencies.

Některé funkce jsou dostupné s volitelným dpkg MP.


$ dpkg -l #seznam nainstalované programy; $ dpkg -L package #seznam souborů balíčků

Porovnáme různé správce balíčků v Linuxu. Mezi všemi distribucemi Linuxu je jednou z věcí, které sdílejí, potřeba mít možnost instalovat nové softwarové balíčky do systému. V závislosti na distribuci jsou k dispozici různí správci balíčků, kteří uživateli umožňují snadno a rychle instalovat, spravovat a odstraňovat balíčky. Správci balíčků jsou velmi dobří v optimalizaci instalací s běžnými umístěními instalace a konfiguracemi. V tomto článku probereme různé dostupné správce balíčků, na jakých distribucích je lze použít a čím je každý z nich jedinečný. Budeme se zabývat správci balíčků založenými na , správci základních balíčků RedHat Enterprise Linux (RHEL) a dalšími vlastními správci balíčků.

Správci balíčků založených na Debianu

Správce balíčků dpkg

Ubuntu a Debian jsou považovány za jeden z nejrozšířenějších spotřebitelských operačních systémů Na bázi Linuxu dostupné na dnešním trhu. Jejich správci balíčků jsou obecní, přičemž systém správy balíčků nejnižší úrovně je "Dpkg", zkratka pro "Debian Package". Jedná se o kostru softwaru pro správu balíčků s nástroji pro instalaci, odebírání a sestavování balíčků.

Dpkg postrádá pokročilejší funkce - funkčnost, jako je stahování balíčků z internetu nebo automatická instalace závislostí není prostřednictvím DPKG možná. Možnost to udělat z internetu je velmi užitečná, protože umožňuje uživatelům přidávat úložiště balíčků, což výrazně zvyšuje výběr softwaru, který lze snadno nainstalovat do systému. Může také výrazně zjednodušit proces instalace softwaru tím, že dokáže snadno najít a nainstalovat balíček pomocí jediného příkazu.

Pacman je správce balíčků pro Arch Linux. Pacman je jediný nástroj pro správu balíčků nalezený na Archu, takže není frontend. Arch Linux je verze operačního systému s aktualizacemi přidávanými každý den. V pacmanu existuje pouze několik příkazů určených k vyhledání, instalaci a odstranění balíčků. Tento správce balíčků se může připojit k internetu a nakupovat své balíčky odtud, takže je uživatelsky přívětivější. Pacman je však navržen tak, aby instaloval software z úložiště Arch, což znemožňuje instalaci z repozitářů třetích stran.

ABS, zkratka pro Arch Build System, je systém nástrojů navržených pro vytváření instalovatelných softwarových balíčků pro Arch Linux zdrojový kód. Skládá se z několika nástrojů, které společně vytvářejí balíčky - všechny tyto nástroje jsou nezávislé programy, jako je makepkg, pacman, asp a tak dále. Způsob vytvoření/instalace balíčku pomocí ABS se liší od běžné distribuce Linuxu. Místo instalace předkompilovaných balíčků musíte vytvořit soubor PKGBUILD z větve Svn nebo Git pomocí balíčku asp. Odtud použijete příkaz makepkg, který používá soubor PKGBUILD ke stažení a kompilaci zdrojového kódu pro váš systém. Díky tomu je ABS o něco méně intuitivní metoda instalace balíčků na Arch Linux. Má několik dalších využití, jako je přizpůsobení existujících balíčků nebo sestavení a instalace vlastního jádra.

Instalátory balíčků udělat operace s jednotlivými balíčky atomic (jeden krok): namísto kopírování mnoha souborů a spouštění několika skriptů uživatel zadá jediný příkaz „install/uninstall package“. Atomická operace z pohledu uživatele – přidání jedné nové komponenty do systému – se však může skládat z několika (nebo dokonce mnoha) operací s balíčky. Metoděj se již setkal podobný případ, učení se z vlastní zkušenosti konceptu „řetězce závislosti“. Instalační programy balíčků zde nemohou uživateli usnadnit práci. Chcete-li provést instalaci, odinstalaci a aktualizaci součást systému atomové, byly vyvinuty správci balíčků. Správce balíčků je program, který vypočítá celý komplex operací s jednotlivými balíčky, které je nutné provést pro instalaci/odstranění nové komponenty (balíčku), a sám se spustí instalační program balíčku tolikrát, kolikrát je potřeba, s požadovanými parametry. Správce balíčků navíc ukládá informace nejen o balíčcích již nainstalovaných v systému, ale také o všech, které jsou dostupné k instalaci z libovolného média nebo přes Síť (více o tom v sekci Balíček..Doručení).

Správce balíčků Program, který instaluje, odstraňuje nebo aktualizuje jakýkoli balíček nebo skupinu balíčků a automaticky provádí všechny potřebné procedury (doručování balíčků ze vzdálených úložišť, výpočet závislostí a instalace balíčků, které jsou pro ně vyžadovány, odstranění nahrazených balíčků atd.).

Nejznámější a nejoblíbenější správce balíčků se nazývá APT ( A pokročilý P ackage T ool). Původně byl vyvinut jako součást distribuce Debian a fungoval pouze s instalačním programem balíčků dpkg a následně byla vyvinuta verze pro další distribuce, která pracuje s rpm. Distribuce Methodius také používá APT.

Chcete-li nainstalovat balíček, musíte nejprve vědět o jeho existenci. Pro každou linuxovou distribuci jsou k dispozici tisíce a dokonce desetitisíce balíčků a orientace v nich není jednoduchá. APT poskytuje možnost vyhledat to, co potřebujete, mezi dostupnými balíčky; k tomu se používá nástroj apt-cache. Každý balíček musí obsahovat stručné shrnutí (jeden řádek) a krátký popis zdrojů obsažených v balíčku (ne delší než několik odstavců). Příkazem "apt-cache search podřetězec» APT najde a zobrazí seznam názvů balíčků a anotací, kde byl v názvu, anotaci nebo popisu nalezen zadaný podřetězec.

# apt-cache search python | wc 146 1158 8994 # apt-cache search python | grep "programovací" python - Interpretovaný, interaktivní objektově orientovaný programovací jazyk

Příklad 9. Vyhledávání balíčků v APT

Nástroj apt-get je určen k instalaci a odstraňování balíčků a instalační příkaz je poměrně jednoduchý: „apt-get install název_balíčku“, a nemusíte uvádět žádné informace o verzi a umístění balíčku: APT sám najde a nainstaluje nejnovější dostupnou verzi.

# apt-get install python Čtení seznamů balíčků... Dokončeno Vytváření stromu závislostí... Dokončeno Další doplňkové balíčky bude nainstalován: libpython libgdbm libgmp python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot-hotshot python-modules-hotshot modules -xml python-strict Budou nainstalovány následující NOVÉ balíčky: libpython libgdbm libgmp python python-base python-modules python-modules-bsddb python-modules-compiler python-modules-curses python-modules-email-email-email python-modules-bsddb -modules- hotshot python-modules-logging python-modules-xml python-strict 0 bude aktualizováno, 15 nových nainstalováno, 0 balíčků bude odstraněno a 0 nebude aktualizováno. Potřebujete získat 0B/4466kB archivů. Po rozbalení bude potřeba dalších 16,9 MB místa na disku. Pokračovat? y Přijato: 1 cdrom://SomeLinux CD RPM/hlavní libpython 2.3.3-some2 Přijato: 2 cdrom://SomeLinux CD RPM/hlavní libgdbm 1.8.3-some3 Přijato: 3 cdrom://SomeLinux CD RPM/main libgmp 4.1.2-některé3. . . Přijato: 14 cdrom://SomeLinux CD RPM/hlavní python-base 2.3.3-some12 Přijato: 15 cdrom://SomeLinux CD RPM/hlavní python 2.3.3-some12 Přijato 4466 kB za 0 s (19,5 MB/s). Provádění změn... Příprava... ######################################### 1: libpython ######################################## [ 6 %] 2: libgdbm ############################################ [ 13 %] 3 : libgmp # ######################################## [ 20 %] 4: python -základ # ####################################### [26 %] . . . 13: python-modules-logging ########################################## # [ 86 %] Dokončeno.

Příklad 10. Instalace balíčku pomocí APT

APT provádí instalační proceduru v několika fázích: nejprve vyhledá požadovaný balíček v seznamech dostupných, poté, co jej najde, vypočítá, které balíčky by se měly nainstalovat, aby byly splněny jeho závislosti, poté obdrží soubory všech potřebných balíčků. (v tomto případě APT nalezl potřebné balíčky na CD-ROM) a postupně spustí instalační program balíčků, aby nainstaloval vše potřebné. Podobně pro odstranění balíčku stačí spustit příkaz „apt-get remove“ název_balíčku ».

Kromě APT existuje několik dalších správců balíčků. Většina z nich je specifická pro distribuci, jako například emerge pro Gentoo nebo yast pro SUSE. Jejich úkoly a schopnosti jsou přibližně stejné jako APT.

Kontrola integrity

Vzhledem k tomu, že správce balíčků může vytvářet řetězce závislostí balíčků na sobě, lze jej vždy použít k určení, zda jsou u balíčků nainstalovaných v systému splněny všechny závislosti. Zavolá se systém, který nemá žádné balíčky s neuspokojenými závislostmi holistický. Pokud je integrita narušena, znamená to, že část softwaru nainstalovaného v systému je jednoduše nefunkční nebo nefunguje správně.

Integrita systému může být narušena v době některých změn v jeho složení: při instalaci, odstraňování nebo aktualizaci části balíčků nebo celého systému. Pokud pro všechny tyto operace používáte správce balíčků, pak by integrita systému neměla být ohrožena. I když někdy může být i pro správce balíčků obtížné najít správné řešení pro uspokojení všech závislostí a vyřešení konfliktů.

Pomocí správce balíčků lze mechanismus závislostí změnit tak, aby byl přínosem pro lidi. Můžete tedy vytvořit balíček, který obsahuje pouze závislosti a žádné prostředky – takový balíček se nazývá virtuální. To je užitečné, když chcete uživateli usnadnit instalaci kompletního prostředí pro provedení úlohy. Balíčky potřebné k tomu nemusejí přímo záviset na sobě, ale k instalaci všech v jednom kroku bude uživateli stačit nainstalovat jeden – virtuální – balíček. Takový virtuální balíček se v příkladu ukázal jako samotný balíček python a další - python-strict:

# rpm -ql python (neobsahuje žádné soubory) # rpm -ql python-strict (neobsahuje žádné soubory)

Příklad 11. Virtuální balíčky neobsahují soubory

To je důvod, proč apt „přijal“ 15 balíčků (včetně dvou virtuálních), ale „změnil“ pouze 13.

dodávka

Důležitým úkolem, který instalátor balíčku neřeší, je doručení souboru balíčku do systému pro následnou instalaci. Archivy balíčků většinou nejsou uloženy v samotném systému: jsou příliš velké (tisíce balíčků) a musí se pravidelně aktualizovat (vycházejí aktualizace softwaru, tedy nové verze balíčků). K instalaci je proto obvykle nutné nejprve zkopírovat potřebné soubory z média, kde jsou uloženy (to je buď instalační disky distribuční sada nebo úložiště na internetu).

Aby APT mohl pracovat s balíčky, musí být obsaženy v úložišti organizovaném podle zvláštních pravidel - úložišť. Seznam dostupných APT repozitáře uložené v souboru /etc/apt/sources.list, pro každý repozitář je uvedena přístupová metoda (například „cdrom:“, „ftp:“, „file:“ atd.) a adresa.

Rpm cdrom:/ RPM contrib hlavní rpm ftp://updates.somelinux.com 2.4/i586 aktualizace

Příklad 12. soubor sources.list

Po každé změně souboru /etc/apt/sources.list musíte aktualizovat mezipaměť APT, která uchovává informace o dostupných balíčcích, pomocí příkazu apt-get update. Chcete-li přidat informace o balíčcích dostupných na CD do mezipaměti, měli byste použít příkaz "apt-cdrom add" místo ruční úpravy sources.list.

APT vám umožňuje jednoduše doručit balíček do systému bez jeho instalace. To se například děje vždy s zdrojové balíčky, které se jednoduše zkopírují z úložiště do konkrétního adresáře v systému pomocí příkazu „apt-get source“ název_balíčku ».

Aktualizace

Software ve světě Linuxu (nejen) je neustále aktualizován: chyby jsou opraveny, možnosti jsou rozšiřovány. Vývojáři každé distribuce, jak jsou vydávány nové verze programů, připravují nové verze odpovídajících balíčků a zpřístupňují je ve svých úložišť(úložiště odrážející nejaktuálnější stav softwaru jsou dostupné přes internet). Pro uživatele má smysl držet krok s aktualizacemi softwaru, protože nové verze programů znamenají větší spolehlivost systému a nové funkce.

Správci balíčků vám to umožňují komplexní aktualizace celý systém. V APT lze tento postup provést jedním příkazem: „apt-get dist-upgrade“. Tento postup nejprve prozkoumá obsah všech dostupných úložišť a najde tam všechny balíčky, které jsou novějšími verzemi než odpovídající balíčky nainstalované v systému. Poté se vypočítá rozsah aktualizace: přidružená oblast vzájemně závislých zastaralých balíčků musí být odstraněna a nahrazena odpovídající oblastí novějších verzí. Složité situace mohou nastat, pokud se změnilo rozložení zdrojů mezi balíčky: balíčky byly rozděleny nebo sloučeny – to může vyžadovat ruční zásah uživatele. Druh aktualizací systému, které je třeba provádět pravidelně a Nezbytně Toto jsou aktualizace zabezpečení. Když jsou v programu objeveny a opraveny závažné chyby, které ohrožují bezpečnost celého systému, vývojáři distribuce se obvykle postarají o to, aby se příslušné aktualizace dostaly k uživateli. Obvykle existuje samostatné úložiště pro aktualizace související se zabezpečením.

Cena pohodlí

Cena za pohodlí správců balíčků spočívá v tom, že mohou úspěšně pracovat pouze se speciálními holistickými zdrojovými oblastmi ( úložiště balíčků). Ačkoli pro většinu uživatelů toto omezení není tak významné: ty distribuce, které používají správce balíčků, mají obvykle obrovská úložiště balíčků, kde můžete najít jakýkoli představitelný software. Li požadovaný program Koneckonců, distribuční sada není v oficiálním úložišti, obvykle jsou na internetu k dispozici „soukromá“ úložiště, včetně balíčků, které nejsou součástí oficiálního úložiště.

Pokud přesto nemůžete balíček, který potřebujete, nikde najít zkompilovaný speciálně pro vaši distribuci, můžete nainstalovat balíček třetí strany, ale to lze provést pouze pomocí instalačního programu balíčků; správce balíčků bude v této situaci k ničemu. Program můžete nainstalovat tak, že si jej zkompilujete sami ze zdrojového kódu, ale zde stojí za to mít na paměti následující.

Autor programy absolutně není povinna zohledňovat všechny jemnosti všech distribucí, proto jsou na jedné straně možné přímé konflikty se soubory v systému (které již nikdo nemůže sledovat), na druhé straně skryté konflikty a rozpory (např. program je nainstalován v podadresáři adresáře / usr/local a očekává vše odpočinek programy jsou také v tomto adresáři). To znamená, že budete muset sami přijít na to, jak a s jakými parametry program zkompilovat, jak jej nainstalovat do systému a jak se vyhnout konfliktům. A pokud ano, pokud opravdu umíte správně sestavit a nainstalovat do systému program, který potřebujete vy a tedy někdo jiný a který ještě není v distribuční sadě, pak je nejsprávnější udělat jej Igelitová taška, By alespoň zdrojový balíček a pokud to vyjde, tak binární. To vám výrazně usnadní život, když tento program znovu zkompilujete a nainstalujete (na jiný počítač nebo aktualizaci samotné verze programu), a co je nejdůležitější, pro celou uživatelskou komunitu vaše distribuce!

A konečně, mnoho moderních distribucí obsahuje nástroje, které pomáhají vytvářet binární balíčky. Takové nástroje (například balíček hasher z ALT Linuxu) umožňují nejen kompilovat program v „univerzálním prostředí“ obsahující pouze danou sadu balíčků, ale také automaticky vytvářet závislosti, kontrolovat správnou instalaci a monitorovat konflikty. Stručně řečeno, vytvořením balíčku pomocí takového nástroje můžete vážně tvrdit, že jste správcem tohoto balíčku v distribuci. Naopak sestavením programu na potupě, s využitím šamanismu a ruční práce se odhalíte jako lenoch a egoista, který se nestará o růst a zdokonalování vlastního operačního systému.

Někdy může vyvstat otázka: čí je to soubor, odkud tato knihovna pochází?? Pohodlný správce balíčků řeší mnoho problémů s operačním systémem. Dá se s jistotou říci, že pokud se spřátelíte s MP, stanete se přáteli i se samotnou distribucí. Navíc je důležité ovládat sadu základních příkazů a vědět, kde najít další informace.


Následuje džentlmenská sada příkazů nezbytných pro každodenní rutinu hlavních linuxových distribucí: instalace, aktualizace a odstranění balíčku, zavedení aktualizací, kontrola závislostí, určení, zda soubor patří k balíčku atd.

Debian a související

Popularita a image uživatelsky přívětivé Linux distribuce zahrál krutý vtip na Ubuntu. Někteří začátečníci si myslí, že na něm mohou dělat cokoli bez použití příkazového řádku. To je mylná představa a je lepší se jí co nejdříve zbavit.


Skutečnost, že aptitude je v příkladech, neznamená, že je správnější než apt-get . Pro mě je to jen otázka zvyku.


$ instalační balíček aptitude #install package; $ balíček safe-upgrade aptitude #upgrade package; $ aptitude update #zkontrolovat a nainstalovat aktualizace; $ aptitude odstranit balíček #remove package; $ aptitude purge package #delete kompletní balíček, všechna data a nastavení; $ apt-get dist-upgrade #upgrade OS, killer-feature a funguje to! $ aptitude search package #search for package. $ apt-cache závisí na balíčku #package dependencies; $ apt-cache rddepends package #reverse package dependencies.

Některé funkce jsou dostupné s volitelným dpkg MP.


$ dpkg -l #seznam nainstalovaných programů; $ dpkg -L package #seznam souborů balíčků