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 operációs rendszert futtató számítógépek 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 .
Szoftvercsomag-kezelés
Szinkronizálási módszerek
Fontos, hogy elolvassa és kövesse az összes olyan hírelemet , amely a szoftvercsomag-tá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 szoftvercsomag-tárolót, beleértve a Gentoo ebuild fő szoftvercsomag-tárolót is:
root
#
emaint --auto sync
Illetve röviden:
root
#
emaint -a sync
Szinkronizálja a Gentoo ebuild szoftvercsomag-tá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 szoftvercsomag-tárolókat és a Gentoo ebuild szoftvercsomag-tá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 .
Szoftvercsomag listák
qlist
Felsorolja a telepített szoftvercsomagokat a verziószámmal és a használt átfedés (overlay) nevével:
root
#
qlist -IRv
A qlist programot az app-portage/portage-utils biztosítja.
eix
A world set készletben található szoftvercsomagok 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
Szoftvercsomagkészletekre hivatkozva a kiválasztott szoftvercsomagké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ó szoftvercsomagot:
user
$
equery list --duplicates '*'
Szoftvercsomag elérhető szinkronizált verzióinak és kulcsszavainak a felsorolása.
user
$
equery y firefox
Szoftvercsomag telepítés
A következő példákban a www-client/firefox szoftvercsomag 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 szoftvercsomagra.
Az azonnali szoftvercsomag telepítés megkezdése nélkül, egyszerűen csak felsorolja, hogy mely szoftvercsomagok lesznek telepítve később:
user
$
emerge --pretend --verbose www-client/firefox
Vagy röviden:
user
$
emerge -pv www-client/firefox
Kilistázza a telepítendő szoftvercsomagokat. 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 szoftvercsomag 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 az operációs rendszer frissül. A frissítés során a Portage megpróbálja a szoftvercsomag legújabb stabil verzióját telepíteni, függetlenül attól, hogy melyik verzió van jelenleg telepítve,. Valamint, függetlenül attól, hogy a szoftvercsomag 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 szoftvercsomagot, 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 szoftvercsomag régebbi, mint a legutóbbi stabil, vagy kisebb, mint az operátor (
<
) előtagot, ha újabb:
/etc/portage/package.mask
<www-client/firefox-96.0.1
Tekintse meg a /etc/portage/package.mask oldalt a szoftvercsomag-elrejtés további részleteiért.
Kizárólag néhány szoftvercsomag telepítése egy csoportban
A szoftvercsomagok és azok szoftverfüggőségeinek eltávolításához telepítés közben:
root
#
emerge --update @world --exclude="firefox libreoffice"
Már telepített szoftvercsomag hozzáadása a world listához
A world fájlt frissítése, kihagyva a szoftvercsomagok újraegyesítését:
root
#
emerge --noreplace firefox
Telepítés anélkül, hogy hozzáadná azt a world fájlhoz
Szoftvercsomag 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
Szoftvercsomag-eltávolítás
A teljes információért tekintse meg a szoftvercsomag-eltávolítások előkészületére vonatkozó dokumentációt.
--deselect
Használja az
emerge --deselect
(vagy röviden
-W
kapcsolót) a megadott szoftvercsomag eltávolításához a @world halmazból. (Gyakorlatilag ezzel jelzi, hogy a szoftvercsomag 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 szoftvercsomag:
user
$
emerge --pretend --depclean
Ha az emerge --depclean parancsot egy jó ideje Ön nem futtatta, akkor a parancs most sok szoftvercsomagot megpróbálhat eltávolítani. Itt óvatosság javasolt. Miután megbizonyosodott arról, hogy az emerge --depclean csak a szükségtelen szoftvercsomagokat 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 az operációs rendszer károsodását okozhatja, és kizárólag akkor szabad használni, ha feltétlenül szükséges (Tekintse meg a következő szakaszban található figyelmeztetést).
--depclean
Egy olyan szoftvercsomag közvetlen eltávolítása, amelytől más szoftvercsomagok 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 szoftvercsomagot 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 az operációs 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 operációs rendszerét
, vagy más szoftvert sérthet, ha egyedi szoftvercsomagokon használja azt. A szoftvercsomagok eltávolításának helyes módja a Gentoo operációs 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.
Szoftvercsomagok frissítése
Frissítse a
world set
összes szoftvercsomagját, azok függőségeit (
--deep
), és azokat a szoftvercsomagokat, 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 szoftvercsomag-tá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.
Szoftvercsomag 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 szoftvercsomag 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 szoftvercsomag 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 szoftvercsomagok függenek egy adott szoftvercsomagtól (a cat/pkg például):
user
$
equery d www-client/firefox
Információt kaphat egy szoftvercsomagró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 szoftvercsomagnak szüksége van rá. Ha véletlenül eltávolítják, akkor rendszerjavító live USB adathordozóra/rendszerjavító live adathordozó lemezre lehet szükség.
Újraépítések
Néha szükséges néhány szoftvercsomagot újból forráskódból létrehozni, hogy megfelelően működjenek. Íme néhány példa az újbóli létrehozás parancsokra.
Új kernel telepítése után:
root
#
emerge @module-rebuild
root
#
emerge @preserved-rebuild
Portage fejlesztések
A beállítások módosításának kezelése egy emerge szoftvercsomag létrehozás befejezése után:
root
#
dispatch-conf
Telepítés vagy frissítés után
A perl alapot képező szoftvercsomagok frissítése után:
root
#
perl-cleaner --all
Vagy ha az előző nem segített:
root
#
perl-cleaner --reallyall -- -av
haskell szoftvercsomagokhoz:
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 szoftvercsomagokon van rajta a
mysql
USE jelölőzászló:
user
$
equery hasuse mysql
Megmutatja, hogy jelenleg mely szoftvercsomagok 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 szoftvercsomaghoz:
user
$
equery uses <package-name>
Gyorsan hozzáad egy szükséges USE jelölőzászlót a szoftvercsomag telepítéshez:
root
#
echo 'dev-util/cmake -qt5' >> /etc/portage/package.use
Fontos Portage fájlok
- /etc/portage - a Portage elsődleges beállításkö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 szoftvercsomagok USE jelzői. Több fájlt tartalmazó mappa is lehet.
- /etc/portage/package.accept_keywords - Kulcsszavas egyedi szoftvercsomagok. Például ~amd64 , ~x86 vagy ∼arm .
- /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 szoftvercsomag atomok listája.
- /var/db/pkg - Minden telepített szoftvercsomaghoz 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 szoftvercsomag-ö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 szoftvercsomagot:
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 szoftvercsomag 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 forráskódból történő szoftvercsomag létrehozás megtekintése a rendszerfrissítések során:
root
#
watch genlop -unc
Átfedések
eselect szoftvercsomag-tá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 az operációs rendszer elindí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 szoftvercsomag-tá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:
/etc/eixrc/00-eixrc
OVERLAY_CACHE_METHOD="assign"
Szoftvercsomagok keresése a Portage szoftvercsomag-kezelőben reguláris kifejezések segítségével
Szoftvercsomagok keresése a Portage szoftvercsomag-kezelőben, a telepített verzióval együtt, reguláris kifejezések segítségével:
root
#
emerge -s "%^python$"
vagy
root
#
emerge --search "%^python$"
qcheck
Használja a qcheck parancsot a telepített szoftvercsomagok ellenőrzésére:
root
#
qcheck vim-core
A app-portage/portage-utils szoftvercsomag 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