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

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

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 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, 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 szoftvercsomagok telepítéséhez vagy frissítéséhez, milyen USE jelölőzászlók állnak rendelkezésre az egyes szoftvercsomagokhoz, a szoftvercsomag 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 "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:

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

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

Telepítse a net-proxy/tinyproxy szoftvercsomagot az --ask és --verbose paraméterekkel:

root #emerge --ask --verbose net-proxy/tinyproxy

Milyen szoftvercsomagot, verziót, és slot-ot kell telepíteni, és melyik ebuild programkódtároló (szoftvercsomag-tá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 szoftvercsomag 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.

Szoftvercsomagok 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 szoftvercsomagok még fejlettebb keresésmódjáért.

Olyan szoftvercsomagok keresése, amelyek nevében a proxy szó szerepel:

user $emerge --search proxy

Olyan szoftvercsomagok keresése, amelyek nevében vagy leírásában szerepel a proxy kifejezés:

user $emerge --searchdesc proxy

Szoftvercsomagok 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)

A net-proxy/tinyproxy szoftvercsomag eltávolítása a szoftverfüggőségekre érzékeny --depclean (-c) kapcsolóval:

root #emerge --ask --verbose --depclean net-proxy/tinyproxy

Ez csak azokat a szoftvercsomagokat távolíthatja el, amelyekre nincs szükség egy jelenleg telepített szoftvercsomag szoftverfüggőségeként.

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

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 (részletek 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 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

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

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

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


A Portage beállítások módosításának helyes módja a Portage beállításfájlok, például /etc/portage/make.conf, /etc/portage/package.accept_keywords, /etc/portage/package.use stb.

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/emacs

Vagy 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/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 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.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 szoftvercsomag biztosított. Tekintse meg a Pfl oldalt, hogy megtudja, milyen szoftvercsomagokhoz "tartozhatnak" a fájlok.

Hibaelhárítás

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