Emerge
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — Gentoo binhost
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
A Portage szoftvercsomag-kezelő fő parancssori felülete az emerge. Úgy is mondhatnánk, hogy gyakorlatilag az emerge parancson keresztül érjük el a Gentoo operációs rendszerünk Portage nevű szoftvercsomag-kezelőjét. Akár mondhatnánk azt is, hogy valójában az emerge a Gentoo operációs rendszert szoftvercsomag-kezelője.
A Gentoo Linux operációs rendszerünkben a Portage szoftvercsomag-kezelőből az emerge parancs az amely a szoftvercsomagok letöltésére, telepítésére, frissítésére és karbantartására szolgál.
Az emerge egy nagyon hatékony és rugalmas parancs, amely többek között automatikusan elkészítheti (forráskódból felépíti) és telepítheti a (forráskódból-felépített és szoftvercsomagba tömörített) szoftvercsomagokat. Letöltheti és telepítheti a már előzőleg lefordított "felhasználásra kész" bináris szoftvercsomagokat. Bináris szoftvercsomagokat készíthet. Szoftvercsomagok keresésére is használható, valamint a szoftvercsomagok szemszögéből az operációs rendszerrel kapcsolatos információk lekérdezésére is alkalmazható, stb.
Az emerge parancsnak nagyon sok lehetséges opciója van. A kiterjedt dokumentációért és az összes lehetőség teljes listájáért tekintse meg a man emerge parancssori súgót.
Az emerge használatának leírása mellett tekintse meg a Portage cikket is, amely a Portage használatával foglalkozik.
A Kézikönyv Gentoo -val való együttműködés és a munka a Portage -vel című fejezetei további szakaszokat tartalmaznak az emerge parancs használatával kapcsolatban.
A GYIK -ben és a Portage GYIK -ben néhány általános kérdés van megválaszolva az emerge paranccsal kapcsolatban.
-
Használat
Futtatása
Az emerge parancsot a megfelelő opcióknak, műveleteknek és szoftvercsomagoknak vagy szoftvercsomag-készleteknek kell követniük. Ha az emerge minden paraméter vagy szoftvercsomag nevének nélkül kerül meghívásra, akkor kiír egy súgószöveget, majd befejezi a futását.
A legtöbb esetben az emerge utasításokat superuser privileges birtokában kell végrehajtani, bár ha egyszerűen csak információ lekérésre használjuk, akkor lehetséges, hogy rendszergazdai jogosultság nélkül, egyszerű felhasználóként is futtatható.
Ha az emerge csak egy szoftvercsomaggal van meghívva, és a parancs más opciót nem tartalmaz a szoftvercsomagon kívül, akkor azonnal megkísérli telepíteni a szoftvercsomagot anélkül, hogy megerősítést kérne a felhasználótól. Gyakran nem ez a kívánt viselkedés, ezért valószínűleg a következő lehetőségek valamelyikére lesz szükség.
Az --ask (-a) és --pretend (-p) opciók lehetővé teszik a tervezett rendszermódosítások vizsgálatát, mielőtt azok ténylegesen megtörténnének. Az --ask kapcsoló hatására az emerge megjeleníti a kívánt változtatásokat, és megerősítést kér a folytatás előtt. A --pretend opció egyszerűen megjeleníti a tervezett változtatásokat és leáll, és nem igényel rendszergazdai jogosultságokat.
Parancsvégrehajtódás közben, amikor az
--ask kapcsolót megadtuk, az Enter billentyű véletlen megnyomása a megerősítő prompt kihagyását eredményezi. További információkért tekintse meg a man emerge súgóban a --ask opció szakaszt.Az emerge gazdag kimenetet biztosít, információkkal és figyelmeztetésekkel az egyes szoftvercsomagokról és a rendszer egészéről. A --verbose opció hasznos annak érdekében, hogy a Portage még több információt mutasson, mint például azt, hogy milyen USE jelölőzászlók vannak használva a szoftvercsomagok telepítéséhez vagy frissítéséhez, milyen USE jelölőzászlók állnak rendelkezésre az egyes szoftvercsomagok számára, a szoftvercsomag letöltésének mérete, az overlay (átfedés) neve.
A --help kapcsolóval futó emerge a parancssori opciókról nyújt információt:
user $emerge --helpemerge: command-line interface to the Portage system
Usage:
emerge [ options ] [ action ] [ ebuild | tbz2 | file | @set | atom ] [ ... ]
emerge [ options ] [ action ] < @system | @world >
emerge < --sync | --metadata | --info >
emerge --resume [ --pretend | --ask | --skipfirst ]
emerge --help
Options: -[abBcCdDefgGhjkKlnNoOpPqrsStuUvVwW]
[ --color < y | n > ] [ --columns ]
[ --complete-graph ] [ --deep ]
[ --jobs JOBS ] [ --keep-going ] [ --load-average LOAD ]
[ --newrepo ] [ --newuse ] [ --noconfmem ] [ --nospinner ]
[ --oneshot ] [ --onlydeps ] [ --quiet-build [ y | n ] ]
[ --reinstall changed-use ] [ --with-bdeps < y | n > ]
Actions: [ --depclean | --list-sets | --search | --sync | --version ]
For more help consult the man page.Alább látható egy példa az emerge meghívására "szoftvercsomag" telepítése céljából. Az -atv opciók a --ask (részletek fent), a --tree (a telepítendő szoftvercsomagok függőségi fájának megjelenítése), és a --verbose (részletek fent) rövid opcióra. Vigye az egérmutatót a piros pontozott négyzetek fölé, hogy megtekinthesse a kimenet egyes szakaszainak magyarázatát:
These are the packages that would be merged, in reverse order:
Calculating dependencies... done! [ebuild U ] category/package-3.0-r2::gentoo [2.0::gentoo] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB [ebuild UD ] category/package-2.0::gentoo [3.0::gentoo] 777 kB [ebuild R ] category/package-1.0::gentoo 777 kB [ebuild N ] category/package-0.5::some-overlay-name 777 kB
Total: 4 packages (1 new, 1 reinstall, 1 upgrade, 1 downgrade), Size of downloads: 3108 kB
Would you like to merge these packages? [Yes/No]Az U betű egy olyan szoftvercsomagot jelöl amely frissítve lesz (Update). A D egy visszaminősített szoftvercsomagot jelöl (Downgrade). Az R az újra az emerge által legenerált(forráskódból binárisra lefordított) szoftvercsomagot jelöli (re-emerged). N pedig a teljesen új szoftvercsomag jelöli (new). Szögletes zárójelben a korábban telepített szoftvercsomag verziója van feltüntetve. A world fájlban található szoftvercsomagok félkövéren vannak jelölve. Ezek a felhasználó által telepített szoftvercsomagok. A többi szoftvercsomagok szoftverfüggőségek lesznek, vagy a system set-ből lesznek.
A Portage kimenet teljes értelmezéséhez, kérem tekintse meg az OUTPUT részt, és a
--pretend opciót az emerge man súgó oldalon.A Portage kontextusában a "szoftvercsomag" kifejezés az "atomhoz" hasonló jelentésű lehet. Tekintse meg a {{Link|version specifier}|verziómeghatározó} leírást.
Szoftvercsomag telepítése
A szoftvercsomagok az emerge parancs segítségével vannak telepítve ("emergálva), amelyet egy verzióspecifikáció követ, jelezve, hogy melyik szoftvercsomagot kell telepíteni (és opcionálisan annak konkrét verzióját, slot-ját, valamint hogy melyik ebuild szoftvercsomag-tárolóból). Az emerge parancsot rendszergazdai jogosultságokkal kell végrehajtani.
A szoftvercsomagok működését USE jelölőzászlók szabályozzák, amelyek bekapcsolhatóak vagy kikapcsolhatóak a szoftver tervezett felhasználási módjától függően. Az USE jelölőzászlók beállíthatóak a /etc/portage/package.use fájlban.
A
--ask (-a) opció nagyon hasznos. Ez teszi lehetővé az emerge műveletek áttekintését a tényleges művelet megkezdése előtt. A --verbose (-v) opció részletesebb információkat jelenít meg a Portage működése közben, és gyakran hasznos ez a többletinformáció. Az opciók, ha szükséges, akkor beállíthatók alapértelmezettként. Az alapértelmezett beállítások a parancssorban felülírhatók. Például --ask=n.Ha a
--ask opció nincs megadva, akkor a kért művelet mindig megerősítés kérése nélkül hajtódik végre. A --pretend opció is használható.Bizonyos dolgokat, például a függőségeket, nem szabad ilyen módon telepíteni. Tekintse meg a ne adja hozzá a függőségeket a world fájlhoz szakaszt.
Példaként telepítse a net-proxy/tinyproxy szoftvercsomagot az --ask és --verbose paraméterekkel:
root #emerge --ask --verbose net-proxy/tinyproxySzoftvercsomagok keresése
Az emerge parancs itt leírt beépített keresési funkciója korlátozott eredményeket mutathat más eszközökhöz képest. Az Legújabb elérhető verzió-t az ACCEPT_KEYWORDS korlátozza (amely az aktuális profile származik. A make.conf, package.accept_keywords stb.). Emellett a Legújabb elérhető verzió, és a Legfrissebb telepített verzió nincs a slot tudatában, így nem jelenítenek meg több verziót slotonként. Ez némi zavart okozhat, amikor az olyan eszközök, mint az eix vagy az eshowkw több keresési eredményt mutatnak, mint az emerge --search.
Tekintse még át az eix, equery és packages.gentoo.org leírásokat a szoftvercsomagok még fejlettebb keresésmódjáért.
Olyan szoftvercsomagok keresése, amelyek nevében a proxy szó szerepel:
user $emerge --search proxyOlyan szoftvercsomagok keresése, amelyek nevében vagy leírásában szerepel a proxy kifejezés:
user $emerge --searchdesc proxySzoftvercsomagok keresése reguláris kifejezéssel:
user $emerge -s '%^python$'Listázza az összes szoftvercsomagot egy kategórián belül:
user $emerge -s '@^net-ftp/'Szoftvercsomagok eltávolítása (uninstall / depclean)
A Gentoo operációs rendszerben a szoftvercsomagok eltávolítását köznyelvben depclean-elésnek nevezik. A --depclean (-c) kapcsoló eltávolítja a megadott szoftvercsomagokat.
A depclean kapcsoló nem távolít el az olyan szoftvercsomagokat, amelyek jelenleg más telepített szoftvercsomagok szoftverfüggőségei, illetve azokat a szoftvercsomagokat se nem távolítja el amelyek a @system vagy a @profile szoftverkészletek részét képezik.
{{Important|Ügyeljen arra, hogy --ask vagy --pretend kapcsolók használatával ellenőrizze a szoftvercsomagok listáját, amelyeket a --depclean eltávolítana.
A --depclean kapcsoló eltávolítja azokat a szoftverfüggőségeket, amelyek feleslegessé válnak a megadott szoftvercsomagok eltávolítása miatt, eltávolítja az operációs rendszerben esetlegesen jelen lévő elárvult szoftvercsomagokat, valamint azokat a csomagokat, amelyek kizárólag azért vannak a rendszeren, mert egy virtuális szoftvercsomag alapértelmezett szoftverfüggőségeként kerültek telepítésre, ha telepítésre került egy másik szoftvercsomag, amely biztosítja a virtuális szoftverfüggőséget. Előfordulhat, hogy egy szoftvercsomag ilyen módon kerül fel a rendszerre, és bár soha nem lett kifejezetten telepítve (nem szerepel a @world készletben), mégis elvárttá válik a jelenléte. Ilyen esetekben célszerű lehet a --noreplace kapcsolóval hozzáadni az ilyen szoftvercsomagokat a world készlethez.
Egyes Portage műveletek, mint például a rendszerfrissítések, időnként elárvulttá tehetnek fontos szoftvercsomagokat (például fordítóprogramokat vagy kernelt), például amikor egy ilyen alapvető szoftvercsomag újabb verziója kerül az emerge által telepítésre, de a felhasználó még nem hajtotta végre azokat a lépéseket, amelyekkel a rendszer az új verzió használatára tér át. Ilyen esetekben a --depclean kapcsoló alkalmazása megpróbálhat létfontosságú rendszercsomagokat eltávolítani. Különös figyelmet kell fordítani például arra, hogy ne kerüljön eltávolításra az aktuális kernel forráskódja vagy a szükséges GCC verzió.
Íme egy példa a net-proxy/tinyproxy szoftvercsomag eltávolítására:
root #emerge --ask --verbose --depclean net-proxy/tinyproxyA --depclean használata helyett a szoftvercsomagok eltávolítására szolgáló alternatíva az emerge emerge --deselect (vagy -W kapcsoló) használata, majd az elárvult szoftvercsomagok eltávolítása a következő részben leírtak szerint.
Ne keverje össze a kisbetűs
-c kapcsolót, amely a --depclean rövidítése (és biztonságos), a NAGYBETŰS -C kapcsolóval, amely a rendszer károsodását okozhatja, és csak akkor szabad használni, ha feltétlenül szükséges (részletek lentebb).Ne használja az
--unmerge (-C) opciót (hacsak nem ismert, hogy az adott viselkedése kifejezetten szükséges). Ez az opció figyelmeztetés nélkül eltávolítja azokat a fontos szoftvercsomagokat, amelyek az operációs rendszer működéséhez szükségesek.Az elárvult (semelyik másik szoftvercsomaghoz nem tartozó) szoftvercsomagok kitakarítása az operációs rendszerből
Az elárvult szoftvercsomagok eltávolítása című témakörben további információt talál arról, hogy miként használható az emerge --depclean a potenciálisan nem használt szoftvercsomagok eltávolítására.Tekintse meg továbbá a Portage GYIK-jét is.
Szoftvercsomagok frissítése
Tekintse meg a Gentoo frissítése leírást a szoftvercsomagok frissítésével kapcsolatban.
Rendszer-információk lekérése
Az emerge olyan rendszer információkat képes megjeleníteni, amelyek hasznosak lehetnek a hibaelhárítás során. Ezeket az információkat gyakran közzé kell tenni amikor Ön támogatást kér, vagy amikor Ön bejelenti a hibát.
user $emerge --infoTovábbi információk írhatóak ki a --verbose paraméter segítségével.
Tippek
Diszfájlok ellenőrzése és újbóli letöltése
Az összes jelenleg telepített szoftvercsomag integritásának újraellenőrzéséhez, és a sérült szoftvercsomagok/előzőleg eltávolított szoftvercsomagok ismételt letöltéséhez kérjük, hogy futtassa a következő parancsot:
root #emerge --ask --fetchonly --emptytree @worldNe adjunk hozzá programfüggőségeket a world fájlhoz
Ha egy szoftverfüggőséget újra kell telepíteni, akkor használja inkább a --oneshot (-1) kapcsolót. A szoftverfüggőségek emerge package paranccsal történő telepítése azt eredményezi, hogy a szoftverfüggőség szoftvercsomagok hozzá lesznek adva a world fájlhoz, ami problémákhoz vezethet.
Szintén nem tanácsos az olyan függőségek telepítése a Portage segítségével amelyek egyéni forrásszoftvereket tartalmaznak. Helyette jobb megoldás az, ha egy ebuild-et ír inkább.
További információkért tekintse meg a User:Sam/Portage súgó/Gentoo rendszer karbantartása című leírást.
Az emerge művelet folytatása
Ha a több szoftvercsomagból álló emerge szoftvercsomag-létrehozás (maga a több szoftvercsomagot egyesével sorban legeneráló folyamat) valamiért megszakad (pl. CTRL + CTRL lenyomása, összeomlás, stb. miatt), akkor a --resume kapcsolóval a meghiúsult szoftvercsomag létrehozásától folytatható az emerge munkája. A --keep-going és --skipfirst opciók is érdekesek lehetnek. Részletekért tekintse meg az emerge man súgóját.
Ideiglenes beállítás átadása a Portage szoftvercsomag-kezelőnek a környezeti változókon keresztül
A környezeti változók parancssorban történő átadása a Portage-nek csak ideiglenes változtatásokat eredményez a rendszerbeállításban, és minden ilyen változtatást visszaállít a rendszeres karbantartás, például a rendszerfrissítés. Bár ez a szakasz hasznos lehet a beállítás változtatások hatásainak előnézetéhez, a
--pretend kapcsolóval, azonban nem szabad szoftvercsomagok tényleges telepítésekor vagy frissítésekor használni.
Az emerge parancs ideiglenes beállításértékeket adhat át környezeti változók parancssorban történő deklarálásával, hogy csak az adott hívás viselkedését befolyásolja. Például, hogy egyesítse az app-editors/emacs szoftvercsomagot az svg USE jelölőzászlóval, de ne tegye ezt a USE jelölőzászló beállítást állandóvá:
root #USE='svg' emerge app-editors/emacsVagy további beállításopciók átadása olyan szoftvercsomagoknak, amelyek az econf függvényt használják az ebuild-ben:
root #EXTRA_ECONF='--without-compress-install' emerge app-editors/emacsHa a sudo parancsot használja az emerge futtatásánál, akkor előfordulhat, hogy a környezeti változókat a sudo hívás után kell megadni, mivel a sudo parancs általában nem őrzi meg a környezeti változókat. Futtassa:
user $sudo USE='svg' emerge -av app-editors/emacsEgy olyan szoftvercsomag újbóli létrehozása (re-emerging), amely egy specifikus fájlt biztosít
Néha hasznos lehet egy szoftvercsomag újbóli létrehozása a szoftvercsomag által biztosított fájl megadásával.
Például, ha a felhasználó újra szeretné telepíteni a /usr/lib/libunwind.a fájlt, de nem tudni, hogy pontosan melyik szoftvercsomag biztosítja számára ezt a fájlt, akkor a fájl elérési útjának egyszerű megadásával meghatározható a szoftvercsomag az emerge által, ahonnan a fájl származott:
user $emerge -p /usr/lib/libunwind.aThese are the packages that would be merged, in order: Calculating dependencies... done! Dependency resolution took 2.76 s (backtrack: 0/20). [ebuild R ] sys-libs/llvm-libunwind-17.0.6
Ilyen módon csak azokat a fájlokat lehet újra előállítani az emerge segítségével, amelyeket egy jelenleg telepített szoftvercsomag biztosított. Tekintse meg a Pfl oldalt, hogy megtudja, milyen szoftvercsomagokhoz "tartozhatnak" a fájlok.
Hibaelhárítás
Tekintse meg a User:Sam/Portage súgó-t a Portage szoftvercsomag-kezelővel kapcsolatos témákért.
Emerge szoftvercsomag-készítés folyamat folytatása azoknál a szoftvercsomagoknál amelyek létrehozása meghiúsult a 'kicsomagolás' szakaszban
A következő üzenet jelenhet meg szoftvercsomagok emerge-létrehozásakor:
* Error messages for package dev-libs/libinput-1.16.0: * The ebuild phase 'unpack' has exited unexpectedly. This type of behavior * is known to be triggered by things such as failed variable assignments * (bug #190128) or bad substitution errors (bug #200313). Normally, before * exiting, bash should have displayed an error message above. If bash did * not produce an error message above, it's possible that the ebuild has * called `exit` when it should have called `die` instead. This behavior * may also be triggered by a corrupt bash binary or a hardware problem * such as memory or cpu malfunction. If the problem is not reproducible or * it appears to occur randomly, then it is likely to be triggered by a * hardware problem. If you suspect a hardware problem then you should try * some basic hardware diagnostics such as memtest. Please do not report * this as a bug unless it is consistently reproducible and you are sure * that your bash binary and hardware are functioning properly.
Bár ezt a problémát a fenti kimenetben felsorolt okok okozhatják, gyakran mégis az okozhatja, hogy egyserűen kevés a lemezterület a Portage által az ebuild forrásfájljainak kicsomagolásához használt útvonalon. Ez a hely a PORTAGE_TMPDIR változóval van beállítva, és gyorsan megtalálható a Portage lekérdezésével:
user $portageq envvar PORTAGE_TMPDIR/var/tmp
A df parancs használható annak a partíciónak a rendelkezésre álló lemezterületének megtekintéséhez, amelyre a PORTAGE_TMPDIR segítségével van csatolva (valószínűleg ez lesz a gyökér (/) partíció). A lemezterület felszabadításával kapcsolatos részletekért tekintse meg a lemezterület felszabadítása leírást.
További olvasnivaló a témában
- dispatch-conf — a Portage szoftvercsomag-kezelőhöz tartozó segédprogram, amellyel biztonságosan és kényelmesen kezelheti a beállítási fájlokat a szoftvercsomag frissítések után.
- Portage — Gentoo operációs rendszer hivatalos szoftvercsomag-kezelője és terjesztési (disztribúciós) rendszere