Handbook:Parts/Working/Portage/cs

Portage vás vítá
Portage je jednou s nejpozoruhodnějších inovací Gentoo na poli správy softwaru. Díky své velké flexibilitě a obrovskému množstvím funkcí je často pokládána za nejlepší nástroj pro správu softwaru dostupný pro Linux.

Portage je celá napsaná v Pythonu a Bashi a je tak pro uživatele plně transparentní, jelikož se jedná o skriptovací jazyky.

Většina uživatelů bude s Portage pracovat prostřednictvím nástroje. Cílem této kapitoly není duplikovat informace dostupné v manuálové stránce emerge. Pro vyčerpávající přehled voleb emerge se prosím podívejte na manuálovou stránku:

Ebuildy
Pokud dokumentace Gentoo hovoří o balíčcích, má tím na mysli softwarové tituly dostupné uživatelům Gentoo skrze repozitář Gentoo. Ten obsahuje sbírku ebuildů, souborů, které obsahují veškeré informace, které Portage potřebuje k nakládání s programy (instalaci, vyhledávání, dotazování atd.). Ve výchozím stavu se soubory ebuildů nacházejí v.

Kdykoli je Portage dán požadavek na provedení akce, která se týká softwaru, použije ebuildy v systému, jako výchozí bod. Proto je třeba pravidelně aktualizovat ebuildy v systému, tak, aby Portage věděl o novém softwaru, bezpečnostních aktualizacích atd.

Aktualizace repozitáře Gentoo
Repozitář Gentoo se aktualizuje příkazem, utilitou pro rychlý přírůstkový přenos souborů. Aktualizace je opravdu jednoduchá, jelikož příkaz poskytuje rozhraní pro.

Někdy se však vyskytnou omezení daná firewallem, která znemožní příkazu navázat spojení se zrcadly. V takovém případě aktualizujte repozitář Gentoo přes každodenně generovaný snímek stromu Portage. Nástroj automaticky stáhne a nainstaluje poslední snímek do systému:

Další výhodou použití je to, že umožňuje správci, aby stáhl pouze snímky repozitáře Gentoo, které jsou podepsány GPG klíčem týmu Gentoo release engineering. Více informací o tomto tématu lze najít na stránce Vlastnosti Portage v sekcizískání ověřených snímků repozitáře Gentoo.

Vyhledání softwaru
Způsobů jak vyhledávat software ve repozitáře Gentoo je mnoho. Jednou z cest je využití samotného programu. V základu příkaz vrátí názvy balíčků, jejichž název odpovídá (buď úplně, nebo i částečně) danému vyhledávacímu dotazu.

Například k vyhledání všech balíčků, které mají v názvu "pdf":

Pokud chcete prohledávat také popisy, použijte volbu  (nebo také  ):

Všimněte si, že výstup vrací mnoho informací. jednotlivá pole jsou jasně označena, tudíž nebudeme více vysvětlovat jejich význam:

Instalace softwaru
Pokud jsme žádaný software našli, dělí nás od jeho instalace již jen jeden příkaz. Pro nainstalování gnumeric je to například:

Jelikož mnoho aplikací závisí jedna na druhé, jakýkoli pokus o instalaci určitého softwaru může vést také k instalaci několik závislostí. Nebojte, Portage si se závislostmi poradí. Abyste zjistili, co Portage nainstaluje, použijte volbu. Například:

Během instalování balíčku Portage stáhne z internetu nezbytný zdrojový kód (je-li to potřeba) a uloží jej (ve výchozím stavu) do. Potom jej rozbalí, zkompiluje a balíček nainstaluje. Chcete-li dát Portage instrukce, aby došlo pouze ke střžení zdrojových kódů bez jejich instalace, předejte příkazu emerge volbu :

Nalezení dokumentace nainstalovaných balíčků
Spousta balíčků obsahuje vlastní dokumentaci. Někdy se to, zda bude dokumentace balíčku nainstalována nebo ne, určuje pomocí přepínače USE. Ke zjištění, zda je přepínač USE  balíčkem používán, použijte příkaz :

Nejlepší je zapínat přepínač USE  pro každý balíček zvlášť pomocí souboru, tak aby byla instalována dokumentace jen pro balíčky, u kterých to chceme. Více informací si můžete přečíst v sekci o přepínačích USE.

Jakmile je balíček nainstalován, lze jeho dokumentaci většinou najít v podadresáři pojmenovaném po balíčku uvnitř adresáře :

Jistější postup jak vypsat nainstalované soubory dokumentace je použít s volbou. Příkaz se používá k dotazům na databází portage a je součástí balíčku :

Volba  může být použita s ostatními pravidly ke zobrazení míst kam se instalují různé typy souborů. Další funkce si můžete nastudovat v man stránce :.

Odstranění softwaru
K odstranění softwaru ze systému použijte příkaz. Tím dáte Portage instrukce, aby odstranila soubory nainstalované daným balíčkem ze systému. Vyjímkou jsou konfigurační soubory aplikace, "pokud" byly uživatelem změněny. Ponechání konfiguračních souborů umožňuje uživateli, aby mohl pokračovat v práci s balíčkem bez nutnosti rekonfigurace, pokud by byl později znovu nainstalován.

Pokud je balíček odstraněn ze systému, závislosti tohoto balíčku, které byly automaticky nainstalovány spolu s ním, jsou stále zachovány v systému. Aby Portage nalezl všechny závislosti, které mohou být nyní odstraněny, použijte funkci emerge, která je popsána později.

Aktualizace systému
Abyste udrželi systém ve formě (nemluvě o instalaci nejnovějších bezpečnostních aktualizací), je třeba aktualizovat pravidelně systém. Jelikož Portage kontroluje pouze ebuildy v repozitáři Gentoo, první věcí, kterou musíte udělat, je aktualizace repozitáře Gentoo. Jakmile je repozitář Gentoo aktualizován, může být systém aktualizován pomocí. V následujícím příkladu používáme také volbu, který říká Portage, aby zobrazil seznam balíčků, které chce aktualizovat a vyžádal potvrzení:

Portage po vyhledá novější verze instalovaných aplikací. Nicméně zkontroluje pouze verze aplikací, které byly explicitně nainstalovány (aplikace obsažené v ) - nebude zevrubně kontrolovat jejich závislosti. Chcete-li aktualizovat zároveň i závislosti, použijte volbu :

To stále nezahrnuje všechny balíčky: některé balíčky v systému jsou potřebné během kompilace a sestavování balíčků, ale jakmile je balíček nainstalován, tyt závislosti již nejsou k ničemu potřeba. Portage jim říká "build dependencies" (závislosti sestavení). K jejich zahrnutí do aktualizačního cyklu přidejte volbu :

Protože bezpečnostní aktualizace se často dějí i v balíčcích, které jste neinstalovali do systému přímo (ale byly vtaženy do systému jako závislosti jiných programů), doporučuje se čas od času tento příkaz spustit.

Pokud jste v systému změnili nastavení USE, doporučuje se také přidat volbu. Portage pak ověří, zda změna vyžaduje instalaci nových balíčků nebo překompilování již existujících:

Metabalíčky
Některé balíčky ve repozitáři Gentoo nemají žádný reálný obsah, ale používají se k instalaci sestav balíčků. Například balíček nainstaluje do systému kompletní desktop KDE Plasma tím, že vtáhne rozličné balíčky související s Plasmou jako závislosti.

Spuštění k odstranění takového balíku ze systému nebude mít žádný efekt, jelikož závislosti zůstanou v systému.

Portage obsahuje funkci k odstranění osiřelých závislostí, avšak jelikož je dostupnost softwaru dynamicky proměnná, je nejdříve nejdůležitější provést celkovou aktualizaci systému, včetně změn přepínačů USE. Potom lze spustit příkaz k odstranění osiřelých závislostí. Jakmile je toto dokončeno, může být nutné znovu sestavit aplikace, které byly dynamicky propojené k nyní již odstraněnému softwaru, ale nadále ho již nepotřebují. Tato funkce byla do Portage nedávno přidána.

O vše se postarají následující tři příkazy:

Licence
Počínaje Portage verze 2.1.7 je možné schválit nebo naopak odmítnout instalaci software na základě jeho licence. Všechny balíčky ve stromu obsahují ve svém ebuildu údaj o licenci ( LICENSE ). Příkaz zobrazí licenci balíčku.

Ve výchozím stavu Portage povoluje licence schválené Free Software Foundation, Open Source Initiative nebo ty, které se řídí definicí svobodného software.

Proměnná, která povoluje licence, se nazývá ACCEPT_LICENSE a může být nastavena v. V následujícím příkladu je zobrazena její výchozí hodnota:

S tímto nastavením buden možné nainstalovat balíčky pod svobodnou softwarovou nebo dokumentační licencí. Nesvobodný software nebude možné instalovat.

Proměnnou ACCEPT_LICENSE je možné nastavit globálně v, nebo zvlášť specifikovat pro každý balíček v souboru.

Abyste mohli například povolili licenci balíčku, vložte do  následující:

Tímto umožníte instalaci, ale zamezíte instalaci balíčku , ačkoli mají stejnou licenci.

.

Skupiny licencí se v proměnné ACCEPT_LICENSE označují znakem. Je možné provést nastavení (které bylo předchozí výchozí volbou Portage) umožňující všechny licence vyjma End User Licence Agreement (EULAs), kteřé vyžadují přečtení a podpis akceptace. Abychom toho dosáhli, udělte souhlas se všemi licencemi (pomocí ) a pak odstraňte všechny licence ve skupině EULA následujícím způsobem:

Vemte na vědomí, že tímto nastavením udělíte souhlas s nesvobodným softwarem a dokumentací.

Terminologie
Jak bylo řečeno dříve, Portage je extrémně silná a podporuje mnoho funkcí, které jiné nástroje správy softwaru nemají. Abyste vše pochopili, vysvětlíme několik aspektů Portage, aniž bychom zabíhali do přílišných detailů.

Portage umožňuje koexistenci několika verzí jednoho balíčku v systému. Zatímco ostatní distribuce se přiklání k tomu pojmenovávat balíčky podle těchto verzí (například freetype a freetype2), Portage používá techniku zvanou "SLOT"y. Ebuild deklaruje určitý SLOT své verze. Ebuildy s různými SLOTy mohou koexistovat v jednom systému. Například balíček freetype používá v ebuildech SLOT="1" a SLOT="2".

Existují také balíčky, které poskytují stejnou funkcionalitu, alejinou implementaci. Například metalogd, sysklogd a syslog-ng jsou systémové loggery. Aplikace, které spoléhají na dostupnost "systémového loggeru", nemohou například záviset na metalogd, jelikož volba kteréhokoli loggeru je stejně dobrá. Portage umí virtuální balíčky: všechny systémové loggery jsou na seznamu vzájemně se vylučujících závislostí virtuálního balíčku logovací služby v kategorii virtual tak, aby aplikace mohly záviset na balíčku. Je-li tento balíček instalován, natáhne s sebou logovací balíček jmenovaný v něm na prvním místě, pokud už není nainstalovaný jiný logovací balíček (v takovém případě je virtual uspokojen).

Software v repozitáři Gentoo může být umístěn v rozdílných větvích. Ve výchozím stavu systém akceptuje pouze balíčky, které Gentoo považuje za stabilní. Většina nových softwarových titulů bývá při svém zahrnutí přidána do testovací větve, což znamená, že je třeba provést další testování, než budou označeny za stabilní. Ačkoli jsou ebuildy tohoto softwaru v repozitáři Gentoo, Portage je nebude aktualizovat do doby, než budou přidány do stabilní větve.

Některý software je dostupná pouzte pro pár architektur. Nebo software funguje jenom na jiných architekturách nebo potřebuje víc testování nebo vývojář, který zahrnul software do repozitáře Gentoo nemá možnost ověřit, že balíček funguje na jiných architekturách.

Každá instalace Gentoo se také drží určeného profilu, který obsahuje, mimo další informace, seznam balíčků, které jsou vyžadovány k tomu, aby systém normálně fungoval.

Blokované balíčky
Ebuildy obsahují specifická pole, která informují Portage o svých závislostech. Jsou dvě možné závislosti: závislost sestavení, deklarovaná v proměnné DEPEND a závislosti běhu, obdobně deklarované v proměnné RDEPEND. Pokud jdna z těchto závislostí výslovně uvede, že je balíček nebo virtual nekompatibilní, vyvolá to blokaci.

Nakolik jsou novější verze Portage dostatečně chytré, aby obešly dorbné blokace bez uživatelského zásahu, občas je třeba takové blokace vyřešit ručně.

Vyřešení blokace vyžaduje, aby se uživatel rozhodl buď neinstalovat balíček nebo odinstalovat nejdříve balíček, který zapříčiňuje konflikt. V daném příkladu lze zvolit buď neinstalovat postfix nebo nejprve odebrat ssmtp.

Občas se objeví blokující balíčky se specifickými atomy, jako je. V takovém případě může být blok odstraněn aktualizací blokujícího balíčku na novější verzi.

Je také možné, že se dva balíčky, které mají být teprve nainstalovány, navzájem blokují. V těchto vzácných případech se pokuste zjistit, pro je potřeba instalovat oba dva. Ve většině případů by měla postačovat instalace jen jednoho z nich. Pokud tomu tak není, nahlašte chybu Systému správy chybových hlášení Gentoo.

Maskované balíčky
Když se pokoušíte nainstalovat balíček, který není dostupný pro daný systém, objeví se tato chyba maskování. Uživatelé by měli zkusit nainstalovat jinou, v systému dostupnou aplikaci nebo počkat, dokud nebude balíček dostupný. Zamaskování balíčku má vždy svůj důvod:

Potřebné změny přepínače USE
Chybová hláška se může zobrazit i takto, pokud není použitá volba :

Takové varování nebo chyba nastanou pokud je vyžadována instalace balíčku, který nejenže závisí na jiném balíčku, ale také vyžaduje, aby byl tento balíček sestaven s určitým přepínačem USE (nebo sadou přepínačů USE). V daném případě je vyžadováno, aby byl balíček app-text/feelings sestaven s USE="test", ale tento přepínač USE nebyl v systému zapnut.

Řešení spočívá buď v přidání požadovaného USE přepínače mezi globální USE přepínače v, nebo jeho nastavení pro daný balíček v.

Chybějící závislosti
Instalovaná aplikace závisí na jiném balíčku, který není v systému dostupný. Zkontrolujte prosím Bugzillu, zda je problém nahlášen a pokud ne, nahlašte jej prosím. Pokud není v systému nastaveno mísení větví, nemělo by toto nastat a jde tedy o chybu.

Nejednoznačený název ebuildu
Zvolená instalovaná aplikace má název, který odpovídá více než jednomu balíčku. Řešením je zadat také název kategorie. Portage informuje uživatele o možných shodách, z nichž lze vybrat.

Kruhové závislosti
Dva (nebo více) instalovaných balíčků na sobě vzájemně závisí a tudíž nemohou být nainstalovány. Jedná se nejspíše o chybu v jednom z balíčků v repozitáři Gentoo. Po nějakém čase resynchronizujte a zkuste to znovu. Přínosem může být také kontrola Bugzilly, abyste zjistili, zda je problém znám a pokud ne, nahlašte ho.

Stažení selhalo
Portage nemohla stáhnout zdrojové kódy dané aplikace a bude se snažit nainstalovat další aplikace (je-li to možné). Tato chyba může být způsobena zrcadlem, které není správně synchronizováno, nebo tím, že ebuild odkazuje na chybné umístění. Server, kde se zdrojové kódy nachází může být také z nějakých důvodů mimo provoz.

Za hodinu zkuste znova, zda problém přetrvává.

Ochrana profilu systému
Uživatel požaduje odebrání balíčku, který je součástí základních systémových balíčků. Profil ho uvádí jako vyžadovaný a neměl by tedy být odstraněn ze systému.

Chyba ověření přehledu
Jedná se o známku toho, že je něco špatně s repozitářem Gentoo - často se jedná o chybu při zavádění ebuildu do repozitáře ebuildů Gentoo.

Pokud ověření přehledu selže, nepokoušejte se znovu zpracovat ebuild ručně. Spuštění problém neodstraní, naopak ho může zhoršit.

Namísto toho počkejte hodinu nebo dvě, než se repozitář usadí. Je pravděpodobné, že byl problém ihned zaznamenán, ale může chvilku trvat, než se oprava objeví na zrcadlech rsync. Zkontrolujte Bugzillu a zjistěte, zda už někdo problém nahlásil nebo napište na (IRC). Pokud tomu tak není, nahlašte, že je v ebuildu chyba.

Jakmile bude chyba opravena, resnychronizujte repozitář ebuildů Gentoo, čímž stáhnete opravený přehled.