Dopravné | |
---|---|
Provoz systému Portage | |
Typ | Systém správy balíků |
Autor | Zac Medico, Ned Ludd, Mike Frysinger, Mounir Lamouri |
Zapsáno v | Krajta |
Operační systém | Gentoo Linux a Gentoo/FreeBSD |
První vydání | 2006 |
Hardwarová platforma | Kompatibilní s POSIX / Python |
Nejnovější verze | 3.0.30 [1] ( 12. prosince 2021 ) |
Stát | V neustálém zlepšování |
Licence | GNU General Public License v2 |
webová stránka | gentoo.org/proj/en/porta… |
Mediální soubory na Wikimedia Commons |
Portage je hlavní systém správy balíků pro Gentoo Linux . Analog systému portů FreeBSD . Jedná se o sadu utilit v Pythonu a Bash , navržených pro usnadnění a zefektivnění instalace softwaru ze zdrojových kódů nebo binárních balíčků s přihlédnutím ke všem závislostem.
Hlavním uživatelským rozhraním Portage je konzolový program emerge, který umožňuje instalovat nové balíčky s přihlédnutím k závislostem a s možností ovládat možnosti instalace - například s podporou určitých funkcí nebo bez podpory nepotřebných funkcí (možnosti sestavení jsou ovládány prostřednictvím tzv. USE příznaků), odstraňovat nepotřebné balíčky, aktualizovat nainstalované balíčky, synchronizovat se stromem portage (pomocí protokolu rsync ) atd. Program ebuildslouží jako nízkoúrovňové rozhraní k Portage a emerge je to vysokoúrovňový wrapper pro to.
Hlavním konfiguračním souborem Portage je /etc/portage/make.conf. Konfiguruje hlavní možnosti kompilátoru a další možnosti jejich použití (například pomocí ccache , distcc ), nastavení příznaků USE, HTTP proxy , FTP proxy , SYNC, ACCEPT_KEYWORDS a dalších nezbytných pro chod systému Portage.
Další konfigurační soubory systému jsou umístěny v /etc/portage/a umožňují jemnější konfiguraci různých aspektů systému portage.
Strom portage se obvykle nachází v adresáři /usr/portage/a je uspořádaným systémem adresářů-kategorií balíčků (ve tvaru app-emacs, dev-php), z nichž každý obsahuje adresáře jednotlivých balíčků. Ve stromu se každý balíček skládá ze sady ebuilds , souboru Changelog balíčku , metadata.xmlsouboru metadat balíčku a případně několika dalších malých souborů potřebných k sestavení balíčku (jako jsou záplaty ).
Kromě toho strom portage ukládá všechny licence používané balíčky.
Adresář /usr/portage/distfiles/obvykle obsahuje soubory distribuce softwaru , které se stahují během instalace balíčku.
Překryvy jsou úložiště balíčků, která nejsou zahrnuta v hlavním stromu portage. To obvykle zahrnuje novější verze programů nebo ty programy, které ještě nejsou v oficiálním stromu, živé verze, nestandardní rozšíření a záplaty. Překryvy mohou být lokální – přítomné pouze na počítači uživatele. Jedním ze způsobů použití lokálního překrytí je instalace ebuild , která nejsou zahrnuta v žádném veřejném překrytí, nebo testování ebuild . Pro zjednodušení práce s překryvy se používá utilitka pro laiky .
Obvykle se při instalaci určité verze programu stáhne archiv se zdrojovými kódy, který odpovídá instalované verzi. V případě živých balíčků jsou zdrojové kódy získávány z verzovacího systému daného programu. Živé balíčky vám tedy umožňují mít nejaktuálnější program. Takové balíčky jsou obvykle verze 9999.
V případě, že existuje více vývojových větví programu, může živý balíček používat i větev, která není hlavní. Například pro knihovnu Qt existují živé balíčky, které přebírají zdroje z větve do oficiální verze 4.6, 4.7 a nejpokročilejší větve. Takové balíčky mají verze 4.6.9999, 4.7.9999 a 4.9999.
revdep-rebuild z balíku gentoolkit - používá se ke kontrole integrity dynamického linkování . Při aktualizaci knihoven není neobvyklé, že program nebo jiná knihovna, která závisí na aktualizované, nadále odkazuje na předchozí verzi. Tím je narušena výkonnost programů. Obslužný program revdep-rebuild vám umožňuje automaticky najít takové "rozbité" programy a znovu je zkompilovat.
Laik se používá pro zjednodušení práce s překryvy, umožňuje přidávat, odebírat a synchronizovat překryvy pomocí jediného příkazu.
Programy equery a q , stejně jako sada programů eix , se používají k urychlení a automatizaci běžných úloh, jako je prohledávání stromu portage, výpis nainstalovaných balíčků, které patří do kategorie a tak dále.
Příklad toho, jak program emerge funguje:
# emerge -pv postfix These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] mail-mta/postfix-2.3.6 USE="hardened mysql pam ssl -cdb -dovecot-sasl -ipv6 -ldap -mailwrapper -mbox -nis -postgres -sasl (-selinux) -vda" 2,719 kB [blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.3.6) Total: 1 package (1 new, 1 block), Size of downloads: 2,719 kBPomalá rychlost systému přenosu , stejně jako nedostatek zohlednění zpětných závislostí nainstalovaných a aktualizovaných balíčků, vedly k vytvoření projektu Paludis [2] - náhrada za Portage, napsané v C++ a mající vyšší rychlost práce a další funkce (které jsou však většinou přítomné v nestabilních verzích Portage 2.2.x). Existuje také projekt pkgcore [3] .