Gentoo Cheat Sheet
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
Ez egy referenciacikk, amely hasznos parancsokat és tippeket tartalmaz a Gentoo rendszerek adminisztrálásához. Az új, és tapasztalt felhasználókat egyaránt arra biztatjuk, hogy a gyakorlatban számukra bevált, hasznos tippjeiket adják hozzá ehhez az cikkhez alul. Köszönjük!
Tekintse meg a gyakran ismételt kérdéseket és a Portage gyakran ismételt kérdéseit.
Csomagkezelés
Szinkronizálási módszerek
Fontos, hogy elolvassa és kövesse az összes olyan hírdarabkát, amely az szoftvertároló szinkronizálása után megjelenik. Tekintse meg a frissítésekkel kapcsolatos részletes utasításokat.
Portage
Szinkronizálja az összes automatikus szinkronizálásra beállított szoftvertárolót, beleértve a Gentoo ebuild fő szoftvertárolót is:
root #
emaint --auto sync
Vagy röviden:
root #
emaint -a sync
Szinkronizálja a Gentoo ebuild szoftvertárolót a tükörszerverek segítségével. Legfeljebb egy nap idős pillanatkép lekérésével teszi mindezt:
root #
emerge-webrsync
Az emerge --sync most futtatja az emaint sync modult a --auto
kapcsolóval. Tekintse meg a portage szinkronizálási műveletét.
eix
Szinkronizálja a beállított szoftvertárolókat és a Gentoo ebuild szoftvertárolót az eix használatával:
root #
eix-sync
Ez nem csak a tárolókat szinkronizálja, hanem frissíti az eix által a lekérdezések végrehajtásához használt gyorsítótárat is. Célszerűbb lehet a portage beállítása a gyorsítótár automatikus frissítésére.
Csomag listák
qlist
Felsorolja a telepített csomagokat a verziószámmal és a használt átfedés nevével:
root #
qlist -IRv
A qlist programot az app-portage/portage-utils biztosítja.
eix
A world set -ben található csomagok listájának és elérhető verzióinak megtekintéséhez használhatja a eix parancsot:
root #
eix --world | less
Azért, hogy a szín megmaradjon a kimenetben, kérjük használja a --color
kapcsolót:
root #
eix --color -c --world | less -R
Portage
Csomagkészletekre hivatkozva a kiválasztott csomagkészletek listája a következő parancs kiadásával történik:
user $
emerge --pretend --quiet --emptytree --nodeps @selected
Kilistázza az összes (*) vagy meghatározott nevű, több slot-ot használó csomagot:
user $
equery list --duplicates '*'
Csomagtelepítés
A következő példákban a www-client/firefox programcsomag kerül felhasználásra, de a felhasználóknak le kell cserélniük azt a valóságban tényleg telepíteni kívánt csomagra.
Az azonnali csomagtelepítés megkezdése nélkül, egyszerűen csak felsorolja, hogy mely csomagok lesznek telepítése később:
user $
emerge --pretend --verbose www-client/firefox
Vagy röviden:
user $
emerge -pv www-client/firefox
Kilistázza a telepítendő csomagokat. Telepítés előtt megerősítést kér:
root #
emerge --ask --verbose www-client/firefox
Vagy röviden:
root #
emerge -av www-client/firefox
Bizonyos verzió telepítése
A csomag egy adott verzióját telepíti. Használja a "\=" jelölést (fordított perjel és egyenlőségjel) olyan parancsértelmezőkhöz, amelyek különleges jelentést tulajdonítanak a "=" karakternek. Például:
root #
emerge --ask =www-client/firefox-96.0.1
Ez átmenetileg működni fog, amíg a rendszer frissül. A frissítés során a Portage megpróbálja a csomag legújabb stabil verzióját telepíteni, függetlenül attól, hogy melyik verzió van jelenleg telepítve; hogy a csomag eredetileg egy megelőző = operátoron keresztül jött-e létre vagy sem.
Annak megakadályozására, hogy a Portage automatikusan frissítsen egy csomagot, adjon hozzá egy sort az /etc/portage/package.mask/package.mask fájlhoz (ha nem létezik, hozza létre a fájlt). Ezt követően adja meg a nagyobb, mint operátor (>
) előtagot, ha a csomag régebbi, mint a legutóbbi stabil, vagy kisebb, mint az operátor (<
) előtagot, ha újabb:
<www-client/firefox-96.0.1
Tekintse meg a /etc/portage/package.mask oldalt a csomagelrejtés további részleteiért.
Telepítés anélkül, hogy hozzáadná azt a world fájlhoz
Csomag telepítése anélkül, hogy hozzáadná azt a world fájlhoz:
root #
emerge --ask --oneshot www-client/firefox
Vagy röviden:
root #
emerge -a1 www-client/firefox
Csomageltávolítás
A teljes információért tekintse meg a csomageltávolítások előkészületi-re vonatkozó dokumentációt.
--deselect
Használja az emerge --deselect (vagy röviden -W
kapcsolót) a megadott csomag eltávolításához a @world halmazból. (Gyakorlatilag ezzel jelzi, hogy a csomag már nem szükséges):
root #
emerge --deselect www-client/firefox
Most futtassa az emerge --depclean (vagy röviden a -c
opciót). A --pretend
(-p
) opció emerge megjeleníti, hogy milyen műveleteket kell végrehajtani. Ezt át kell Önnek tekintenie, hogy megbizonyosodjon arról, hogy nem kerülne eltávolításra a még szükséges csomag:
user $
emerge --pretend --depclean
Ha az emerge --depclean parancsot egy jó ideje Ön nem futtatta, akkor a parancs most sok programcsomagot megpróbálhat eltávolítani. Itt óvatosság javasolt. Miután megbizonyosodott arról, hogy az emerge --depclean csak a szükségtelen csomagokat távolítja el, futtassa:
root #
emerge --ask --depclean
A --ask
opcióra nem igazán van szükség a --pretend
segítségével végzett ellenőrzés után, de az előző példában szerepel, hogy elkerülje a "másolás-beillesztés" hibáját.
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 (Tekintse meg a következő szakaszban található figyelmeztetést).--depclean
Egy olyan csomag közvetlen eltávolítása, amelytől más csomagok nem függenek:
root #
emerge --ask --verbose --depclean www-client/firefox
Calculating dependencies... done! >>> Calculating removal order... >>> These are the packages that would be unmerged: www-client/firefox selected: 68.5.0 protected: none omitted: none All selected packages: =www-client/firefox-68.5.0 >>> 'Selected' packages are slated for removal. >>> 'Protected' and 'omitted' packages will not be removed. Would you like to unmerge these packages? [Yes/No]
Biztonsági intézkedésként a depclean nem távolít el egyetlen csomagot sem, hacsak az összes szükséges függőség meg nem lett oldották. Ennek következtében néha szükséges először futtatni:
root #
emerge --ask --verbose --update --newuse --deep @world
Használja a --changed-use
(-U
) parancsot a --newuse
(-N
) helyett, hogy elkerülje az újraépítést, amikor az egyetlen változás a tárolóhoz hozzáadott vagy onnan kidobott USE jelölőzászlók. Használja a --quiet
(-q
) kapcsolót a tömörebb végrehajtás érdekében:
root #
emerge --ask --quiet --update --changed-use --deep @world
Van egy
--unmerge
(-C
) opció, de ez nem ajánlott, és ha nem használjuk óvatosan, akkor megtörheti a rendszert. Ezt csak akkor szabad használni, amikor valóban szükséges, és csak miután Ön megfelelően tájékozódott arról, hogy mit csinál ez a parancs. Ez a parancs tönkreteheti az Ön egész Gentoo rendszerét, vagy más szoftvert sérthet, ha egyedi csomagokon használja azt. A csomagok eltávolításának helyes módja a Gentoo rendszerben gyakorlatilag mindig a --depclean
opcióval történik, ahogy azt fentebb már leírtuk. Ez a parancs azonban néha hasznos lehet egy kemény blokk ideiglenes eltávolításához.Csomagok frissítése
Frissítse a world set összes csomagját, azok függőségeit (--deep
), és azokat a csomagokat, amelyeknek van módosított USE jelölőzászlójuk (a szükségtelen újraépítések el lesznek kerülve, ha a USE változtatásoknak nincs semmilyen hatása):
root #
emerge --ask --verbose --update --deep --changed-use @world
A --newuse
használható a --changed-use
helyett azért, hogy megbizonyosodjon arról, hogy az összes USE jelölőzászló a Gentoo szoftvertárolójában lévők aktuális állapotát tükrözi, bár ez több újraépítést igényel. A --with-bdeps=y
a felépítési idő függőségek frissítésére is használható.
Részletesebb információért tekintse meg a Gentoo frissítése cikket.
Csomag hibaelhárítás
Ellenőrzi és újra felépíti a hiányzó könyvtárakat (általában nem szükséges):
root #
revdep-rebuild -v
Az equery parancs az app-portage/gentoolkit része. Telepítse a következő parancs kiadásával:
root #
emerge -a gentoolkit
Megmondja, hogy melyik telepített csomag ad parancsot a equery használatával:
user $
equery b `which vim`
A qfile gyorsabb alternatívát kínálhat az equery parancshoz képest, ha szükséges.
Megmondja, hogy melyik (nem) telepített csomag ad parancsot a e-file használatával:
user $
e-file vim
Az e-file telepítése a következővel:
root #
emerge -a app-portage/pfl
Az equery használatával megmondja, hogy mely csomagok függenek egy adott csomagtól (a cat/pkg például):
user $
equery d www-client/firefox
Információt kaphat egy csomagról a eix használatával:
root #
eix www-client/firefox
Ne törölje (unemerge) a sys-libs/glibc legenerálását. Szinte minden más csomagnak szüksége van rá. Ha véletlenül eltávolítják, akkor rendszerjavító live USB-re/rendszerjavító live lemezre lehet szükség. Lehetséges, hogy a glibc lekérése az
PORTAGE_BINHOST="http://packages.gentooexperimental.org/packages/amd64-stable/"
beállítása után lehetséges a /etc/portage/make.conf fájlban.Újraépítések
Néha szükség van néhány csomag újraépítésére, hogy azok megfelelően működjenek. Íme néhány gyakori újra legenerálás:
Új kernel telepítése után:
root #
emerge @module-rebuild
A Go új verziójára való frissítés után:
root #
emerge @golang-rebuild
root #
emerge @preserved-rebuild
Portage fejlesztések
A konfigurációs módosítások kezelése egy emerge legenerálás befejezése után:
root #
dispatch-conf
Telepítés vagy frissítés után
A perl alapot képező csomagok frissítése után:
root #
perl-cleaner --all
Vagy ha az előző nem segített:
root #
perl-cleaner --reallyall -- -av
haskell csomagokhoz:
root #
haskell-updater
USE jelölőzászlók
Beszerzi az X
USE jelölőzászló leírását és használatát az euse használatával:
user $
euse -i X
További információkat szerezhet a euse parancsról, ha elolvassa a kézikönyv oldalát:
user $
man euse
Megmutatja, hogy mely csomagokon van rajta a mysql
USE jelölőzászló:
user $
equery hasuse mysql
Megmutatja, hogy jelenleg mely csomagok jönnek létre a mysql
USE jelölőzászlóval:
user $
eix --installed-with-use mysql
Megmutatja, hogy milyen USE jelölőzászlók állnak rendelkezésre egy adott csomaghoz:
user $
equery uses <package-name>
Gyorsan hozzáad egy szükséges USE jelölőzászlót a csomagtelepítéshez:
root #
echo 'dev-util/cmake -qt5' >> /etc/portage/package.use
Fontos Portage fájlok
- /etc/portage - a Portage elsődleges konfigurációs könyvtára.
- /etc/portage/make.conf - Globális beállítások (USE jelzők, fordítói beállítások).
- /etc/portage/package.use - Az egyes csomagok USE jelzői. Több fájlt tartalmazó mappa is lehet.
- /etc/portage/package.accept_keywords - Kulcsszavas egyedi csomagok; például Template:Kulcsszó, Template:Kulcsszó vagy Template:Kulcsszó.
- /etc/portage/package.license - Elfogadott licencek
- /etc/portage/profile/use.mask - a zárolt használatjelzők elfedésére/felfedésére.
- /var/lib/portage/world - Az explicit módon telepített csomag atomok listája.
- /var/db/pkg - Minden telepített csomaghoz tartalmaz információkat, valamint a telepítéssel kapcsolatos fájlokat.
Naplófájlok kezelése
genlop
A genlop egy Portage naplófájl feldolgozó eszköz, amely az emerge csomag-összeállítási idejét (legenerálódási időt) is megbecsüli.
A következő parancs kiadásával telepítse a app-portage/genlop csomagot:
root #
emerge -a app-portage/genlop
További információkat gyűjthet a genlop-ről, ha elolvassa a kézikönyv oldalát:
root #
man genlop
Az utolsó 10 programcsomag létrehozások (telepítések) megtekintése:
root #
genlop -l | tail -n 10
root #
genlop -t libreoffice
Megbecsüli, hogy a emerge -uND --with-bdeps=y @world parancs mennyi időt vesz majd igénybe:
root #
emerge -pU @world | genlop --pretend
A legutolsó ebuild csomag-összeállítás megtekintése a rendszerfrissítések során:
root #
watch genlop -unc
Átfedések
eselect szoftvertároló
A app-eselect/eselect-repository a következő kiadásával telepíthető:
root #
emerge -a app-eselect/eselect-repository
Kilistázza az összes létező átfedést:
user $
eselect repository list
Kilistázza az összes telepített átfedést:
user $
eselect repository list -i
További információkért tekintse meg a Eselect/Repository leírást.
Szolgáltatások
Belépés a rendszergazdai parancssorba (root shell -be) (ha az aktuális felhasználó szerepel a sudoers listában, tehát ha használhat parancsokat a rendszergazda jogosultságaival):
user $
sudo -i
OpenRC
Az ssh szolgáltatás elindítása rendszerindításkor az alapértelmezett futási szinten:
root #
rc-update add sshd default
Az sshd szolgáltatást elindítása most azonnal:
root #
rc-service sshd start
Az sshd szolgáltatás ellenőrzése, hogy fut-e:
root #
rc-service sshd status
Az sshd szolgáltatás újraindítása:
root #
rc-service sshd restart
Az sshd szolgáltatás leállítása:
root #
rc-service sshd stop
A szolgáltatások, azok állapotainak és a futási szintjeinek, listázása:
root #
rc-status --all
Az engedélyezett szolgáltatások és a hozzájuk tartozó futási szintek megjelenítése (nem azt jeleníti meg, hogy futnak-e vagy sem):
root #
rc-update show
systemd
Az SSH szolgáltatás futtatása rendszerindításkor:
root #
systemctl enable sshd
Az sshd szolgáltatás futtatása most azonnal:
root #
systemctl start sshd
Az sshd szolgáltatás futásának az ellenőrzése:
root #
systemctl status sshd
Tippek
A metaadat gyorsítótár generálása
Az ebuild szoftvertárolók mérete a nagyon kicsitől a nagyon nagyig terjed. Ennek eredményeként lelassítják a szállítási műveletek többségét. Ez azért történik, mert az átfedések nem tartalmaznak metaadat-gyorsítótárakat. A gyorsítótár a keresések felgyorsítására és a függőségi fák felépítésére szolgál. Ügyes trükk az, hogy helyi metaadat-gyorsítótárat generálnak az átfedések szinkronizálása után.
root #
emerge --regen
Ez a trükk az eix-szel együtt is működik. Az eix-update az emerge --regen által generált metaadat-gyorsítótárat használhatja a műveletek felgyorsítására. Ennek engedélyezéséhez adja hozzá a következő változót az /etc/eixrc/00-eixrc fájlban:
OVERLAY_CACHE_METHOD="assign"
Csomagok keresése a Portage csomagkeresőben reguláris kifejezések segítségével
Csomagok keresése a Portage csomagkezelőben, a telepített verzióval együtt, reguláris kifejezésekkel:
root #
emerge -s "%^python$"
vagy
root #
emerge --search "%^python$"
qcheck
Használja a qcheck parancsot a telepített csomagok ellenőrzésére:
root #
qcheck vim-core
A app-portage/portage-utils csomag tartalmazza a qcheck parancsot, és a következő parancs futtatásával telepíthető:
root #
emerge -a app-portage/portage-utils
Tudjon meg többet a qcheck-ről a kézikönyv oldalának elolvasásával:
user $
man qcheck