Emerge
emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
all articles
A Portage csomagkezelő fő parancssori felülete az emerge. Úgy is mondhatnánk, hogy gyakorlatilag az emerge parancson keresztül érjük el a Gentoo rendszerünk Portage nevű csomagkezelőjét. Összesített felülnézetből, az átfogó képet látva akár mondhatnánk azt is, hogy valójában az emerge a Gentoo csomagkezelője.
Az emerge parancs szolgál a szoftvercsomagok letöltésére, telepítésére, frissítésére és karbantartására a Gentoo Linux rendszerünkben.
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 csomagbatömöríjtett) csomagokat. Letöltheti és telepítheti a már előzőleg lefordított "felhasználásra kész" bináris csomagokat. Bináris csomagokat készíthet. Csomagok keresésére is használható, valamint a csomagok szemszögéből a 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 csomagoknak vagy csomagkészleteknek kell követniük. Ha az emerge minden paraméter vagy csomagnév 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 csomaggal van meghívva, és a parancs más opciót nem tartalmaz a csomagon kívül, akkor azonnal megkísérli telepíteni a csomagot 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 lásd a man emerge súgóban a --ask
opció szakaszát.Az emerge gazdag kimenetet biztosít, információkkal és figyelmeztetésekkel az egyes csomagokról és a rendszer egészéről. A --verbose
opció hasznos, hogy a Portage még több információt mutasson, mint például, hogy milyen USE jelölőzászlókat használnak a csomagok telepítéséhez vagy frissítéséhez, milyen USE jelölőzászlók állnak rendelkezésre az egyes csomagokhoz, a csomag letöltésének mérete stb.
A --help
kapcsolóval futó emerge a parancssori opciókról nyújt információt:
user $
emerge --help
emerge: 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 "csomag" telepítése céljából. Az -atv
opciók a --ask
(lásd fent), a --tree
(a telepítendő csomagok függőségi fájának megjelenítése), és a --verbose
(lásd 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 [2.0] USE="enabled -disabled toggled* new% (-unavailable)" MAKE_OPTIONS="-disabled" 777 kB [ebuild UD ] category/package-2.0 [3.0] 777 kB [ebuild R ] category/package-1.0 777 kB [ebuild N ] category/package-0.5 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 csomagot jelöl amely frissítve lesz (Update). A D egy visszaminősített csomagot jelöl (Downgrade). Az R az újra az emerge által legenerált(forráskódból binárisra lefordított) csomagot jelöli (re-emerged). N pedig a teljesen új csomag jelöli (new). Szögletes zárójelben a korábban telepített csomag verziója van feltüntetve. A world fájlban található csomagok félkövéren vannak jelölve. Ezek a felhasználó által telepített csomagok. A többi csomagok fü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 "csomag" kifejezés az "atomhoz" hasonló jelentésű lehet. Tekintse meg a {{Link|version specifier}|verziómeghatározó} leírást.
Csomag telepítése
Telepítse a net-proxy/tinyproxy csomagot az --ask
és --verbose
paraméterekkel:
root #
emerge --ask --verbose net-proxy/tinyproxy
Milyen csomagot, verziót, és slot-ot kell telepíteni, és melyik ebuild programkódtároló(programcsomagtároló) van megadva egy verziómeghatározó által.
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 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.
Telepítéskor a csomag működését a USE jelölőzászlók szabályozzák, amelyek be illetve ki kapcsolhatók a szoftver rendeltetésétől függően.
Csomagok 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 csomagok még fejlettebb keresésmódjáért.
Olyan csomagok keresése, amelyek nevében a proxy szó szerepel:
user $
emerge --search proxy
Olyan csomagok keresése, amelyek nevében vagy leírásában szerepel a proxy kifejezés:
user $
emerge --searchdesc proxy
Csomagok keresése reguláris kifejezéssel:
user $
emerge -s '%^python$'
Listázza az összes csomagot egy kategóriában:
user $
emerge -s '@net-ftp'
Csomagok eltávolítása (törlése, uninstallálása)
A net-proxy/tinyproxy csomag eltávolítása a függőségekre érzékeny --depclean
(-c
) kapcsolóval:
root #
emerge --ask --verbose --depclean net-proxy/tinyproxy
Ez csak azokat a csomagokat távolíthatja el, amelyekre nincs szükség egy jelenleg telepített csomag függőségeként.
A --depclean
használata helyett a csomagok eltávolítására szolgáló alternatíva az emerge emerge --deselect (vagy -W
kapcsoló) használata, majd az árva csomagok 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 (lásd 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 csomagokat, amelyek a rendszer működéséhez szükségesek.Az elárvult (semelyik másik programcsomaghoz nem tartozó) programcsomagok kitakarítása a rendszerből
Az elárvult csomagok 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 csomagok eltávolítására.Tekintse meg továbbá a Portage GYIK-jét is.
Csomagok frissítése
Tekintse meg a Gentoo frissítése leírást a csomagok frissítésével kapcsolatban.
Rendszerinformációk lekérése
Az emerge olyan rendszerinformá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 --info
Tová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 csomag integritásának újraellenőrzéséhez, és a sérült csomagok/előzőleg eltávolított csomagok ismételt letöltéséhez, kérem futtassa ezt a parancsot:
root #
emerge --ask --fetchonly --emptytree @world
Ne adjunk hozzá programfüggőségeket a world fájlhoz
Ha egy függőséget újra kell telepíteni, akkor használja inkább a --oneshot
kapcsolót. A függőségek emerge package paranccsal történő telepítése azt eredményezi, hogy a függőségi programcsomagok 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 csomagból álló emerge-csomaglétrehozás (maga a több csomagot egyesével sorban legeneráló folyamat) valamiért megszakad (pl. CTRL+C lenyomása, összeomlás, stb. miatt), akkor a --resume
kapcsolóval a meghiúsult csomag 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 konfiguráció átadása a Portage-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 rendszer-konfigurációban, é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 konfigurációs változtatások hatásainak előnézetéhez, a
--pretend
kapcsolóval, azonban nem szabad csomagok tényleges telepítésekor vagy frissítésekor használni.
Az emerge parancs ideiglenes konfiguráció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 csomagot 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/emacs
Vagy további konfigurációs opciók átadása olyan csomagoknak, amelyek az econf
függvényt használják az ebuild-ben:
root #
EXTRA_ECONF='--without-compress-install' emerge app-editors/emacs
Ha 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/emacs
Egy olyan csomag újbóli legenerálása (re-emerging), amely egy specifikus fájlt biztosít
Néha hasznos lehet egy csomag újbóli előállítása a csomag á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 csomag 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 csomag az emerge által, ahonnan a fájl származott:
user $
emerge -p /usr/lib/libunwind.a
These 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 csomag biztosított. Tekintse meg a Pfl oldalt, hogy megtudja, milyen csomagokhoz "tartozhatnak" a fájlok.
Hibaelhárítás
Tekintse meg a User:Sam/Portage súgó-t a Portage csomagkezelővel kapcsolatos témákért.
Emerge-csomagkészítés folyamat folytatása azoknál a csomagoknál amelyek létrehozása meghiúsult "kicsomagolás" szakaszban
A következő üzenet jelenhet meg csomagok 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 csomagkezelőhöz tartozó segédprogram, amellyel biztonságosan és kényelmesen kezelheti a konfigurációs fájlokat a csomagfrissítések után.
- Portage — Gentoo hivatalos csomagkezelője és terjesztési (disztribúciós) rendszere