Emerge

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Emerge and the translation is 100% complete.

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.

Tip
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.
See also

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.

Warning
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:

# emerge -atv package

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.

See also
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.

Tip
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.
Warning
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ó.
Note
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

Note
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.

Note
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).
Warning
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

Note
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.

See also
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

Warning
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.


A Portage konfigurációs módosításainak helyes módja a Portage konfigurációs fájlok, például /etc/portage/make.conf, /etc/portage/package.accept_keywords, /etc/portage/package.use stb.

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
Note
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

See also
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