Tudásbázis: Kulcsszó elfogadása egyetlen szoftvercsomag számára
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
Nem minden, a Gentoo szoftvertárolóban lévő szoftver lesz azonnal telepíthető az emerge paranccsal. A még tesztelés alatt álló szoftvert (más néven stabilizálás) egy kulcsszó rejti el, és kifejezetten el kell fogadni a telepítéshez (kivéve a tesztelési ág rendszerszintű használata esetén). Ügyeljen arra, hogy a tesztelési ágból származó szoftverek használata stabilitási problémákat okozhat, ezért annak az ágnak a használata a tapasztalatlan felhasználók számára nem ajánlott.
Ez az útmutató egy adott témára összpontosít. A Portage szoftvercsomag-kezelő munkavégzésével kapcsolatos teljes és pontos információkért tekintse meg az emerge man súgóját és a Gentoo kézikönyvet.
Tekintse meg a /etc/portage/package.accept_keywords leírást.
Szoftvercsomag létrehozásának a megkísérlése a tesztelési szoftverágból
Amikor megpróbálunk telepíteni egy szoftvercsomagot a Gentoo szoftvertároló tesztelési ágából, akkor a Portage szoftvercsomag-kezelő emerge parancsa ki fog lépni a figyelmeztetés után. Például amikor megpróbálja összeállítani a games-kids/gcompris
szoftvercsomagot, amelynek jelenleg még csak a tesztelési ágban létezik verziója:
root #
emerge --ask games-kids/gcompris
These are the packages that would be merged, in order: Calculating dependencies... done! !!! All ebuilds that could satisfy "games-kids/gcompris" have been masked. !!! One of the following masked packages is required to complete your request: - games-kids/gcompris-1.0::gentoo (masked by: ~amd64 keyword) For more information, see the MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook.
A Portage úgy gondolta, hogy a kérést csak úgy tudja teljesíteni, ha telepíti a kért szoftvercsomag tesztágának ("~<arch>") verzióját. A fenti példában a tesztelési ág az ~amd64 kulcsszót használja, mivel a példában használt rendszer az amd64 architektúrát (x86_64) használja.
A Portage figyelmezteti a számítógép felhasználóját, ha egy tesztelési ágban lévő szoftvercsomagot kértek tőle letöltésre. Tehát jelez amikor olyan szoftvercsomagot próbálnak letölteni és összeállítani, amelynek nincs a stabil fejlesztői ágban verziója, ugyanakkor megtalálható a tesztelési ágban a Gentoo szoftvertárolójában. Továbbá, akkor is figyelmeztet minket, ha a szoftvercsomag egy adott verzióját kérjük tőle, de a szoftvercsomagnak ez a verziója kizárólag csak a tesztelési ágban van benne.
Ugyanaz a hiba jelenik meg, ha egy kért szoftvercsomag függősége csak a tesztelési ágban érhető el.
Hogyan tegyük elérhetővé a tesztágból származó szoftvercsomagokat?
Mindig előnyben kell részesíteni az stabil fejlesztői ágból származó szoftvercsomagokat, ha ez praktikus. A felhasználóknak fel kell készülniük az instabilitási kockázatára, amikor a tesztelési ágból származó szoftvercsomagokat használják. A legtöbb új felhasználókat nem javasolják a tesztelési ágból származó szoftvercsomagok telepítését.
Ha hibákat észlel, akkor javasoljuk, hogy azokat megfelelőképpen jelentse a megfelelő helyen.
Az emerge parancs --autounmask-write opciójának a használata
Valószínűleg ez a legegyszerűbb mód a szoftvercsomagok telepítésére a tesztelési ágból.
Futtassa az emerge parancsot a --autounmask=y --autounmask-write
paraméterrel, hogy várósorba állítsa a szövegfájl módosítását, amely ahhoz szükséges, hogy egy szoftvercsomagot felfedjen a tesztágból. Például:
root #
emerge --ask --autounmask=y --autounmask-write games-kids/gcompris
These are the packages that would be merged, in order: Calculating dependencies... done! [...] [ebuild N ~] games-kids/gcompris-1.0 USE="handbook -debug -kiosk -test" The following keyword changes are necessary to proceed: (see "package.accept_keywords" in the portage(5) man page for more details) # required by games-kids/gcompris (argument) =games-kids/gcompris-1.0 ~amd64 Would you like to add these changes to your config files? [Yes/No] y Autounmask changes successfully written. * IMPORTANT: 2 config files in '/etc/portage' need updating. * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS * sections of the emerge man page to learn how to update config files.
Vegye figyelembe, hogy a szoftvercsomag neve előtti szakaszban lévő tilde ("~") azt jelzi, hogy a szoftvercsomag a tesztelési ágban van.
Az előző parancs által módosított védett fájlok módosításainak áttekintéséhez és egyesítéséhez futtassa a dispatch-conf (vagy az etc-update) parancsot:
root #
dispatch-conf
--- /etc/portage/package.accept_keywords 2021-04-01 09:12 +0200 +++ /etc/portage/._cfg0000_package.accept_keywords 2021-04-24 00:29 +0200 @@ -11,3 +11,5 @@ [...] +# required by games-kids/gcompris (argument) +=games-kids/gcompris-1.0 ~amd64 >> (1 of 2) -- /etc/portage/package.accept_keywords >> q quit, h help, n next, e edit-new, z zap-new, u use-new m merge, t toggle-merge, l look-merge:
Az operációs rendszer beállításától függően előfordulhat, hogy a változtatások automatikusan véglegesíthetők, vagy megjelenhet egy ablak a képernyőn, amit be kell zárni a folytatáshoz (q gomb az alapértelmezett szövegmegjelenítőben, less). Ha a változtatások nem kerülnek automatikusan elkészítésre, akkor a dispatch-conf beavatkozást kér Öntől. Ha a javasolt módosítások helyesek, nyomja meg az u gombot a változtatások véglegesítéséhez.
Tekintse meg a kézikönyv dispatch-conf bejegyzését a részletes információkért.
Az autounmask módosításainak áttekintése és egyesítése után a szoftvercsomagnak elérhetőnek kell lennie a Portage számára és telepíthetőnek kell lennie:
root #
emerge --ask games-kids/gcompris
These are the packages that would be merged, in order: Calculating dependencies... done! [...] [ebuild N ~] games-kids/gcompris-1.0 USE="handbook -debug -kiosk -test" Would you like to merge these packages? [Yes/No]
Manuális beállítás
A szoftvercsomagok elérhetővé tehetők azáltal, hogy a Portage beállításfájljaiba beleírjuk őket. A felhasználói preferenciáknak megfelelően, a tesztelési ágból származó szoftvercsomagok elérhetővé tehetők telepítésre az emerge parancsot használva az autounmask opciókkal, ahogy azt láttuk is. Vagy úgy, hogy a beállításopciókat egyszerűen csak egy flat fájlba beleírjuk a Portage beállítás könyvtárában. Esetleg úgy, hogy a flat fájl helyén egy könyvtár van, és ebben a könyvtárban vannak benne a beállításokat tartalmazó fájlok.
Flat fájl
Ha minden egyes szoftvercsomaghoz egy fájl van bejegyzésekkel, ez nagyobb rugalmasságot kínál egyes felhasználók számára, mint az autounmask opció használata.
Ha az /etc/portage könyvtár még nem létezik, akkor lehet, hogy először létre kell azt hozni:
root #
mkdir --parents /etc/portage
A megfelelő sor hozzáadása a kívánt szoftvercsomag elérhetővé tételéhez, például a games-kids/gcompris szoftvercsomag telepítéséhez az instabil fejlesztői-ágból:
root #
echo "games-kids/gcompris ~amd64" >> /etc/portage/package.accept_keywords
Egy specifikus szoftvercsomag verzió telepítéséhez:
root #
echo "=games-kids/gcompris-1.0 ~amd64" >> /etc/portage/package.accept_keywords
Könyvtárak használata
A könyvtárral való rendelkezés a beállítás szervezésében, egyéb előnyöket is biztosíthat a rugalmasságban.
Annak érdekében, hogy a beállítások mind, szépen egyesével külön-külön fájlokba legyenek elrendezve az /etc/portage/package.accept_keywords elérési utat (ha az még nem lett létrehozva) könyvtárként hozza létre. Ne fájlként. Így csinálja:
root #
mkdir --parents /etc/portage/package.accept_keywords
Példa arra, hogy hogyan kell a könyvtárszerkezetet használni a beállításfájlok elrendezéséhez: Mondjuk telepíteni kell a Term-ScreenColor szoftvercsomagot, de közben van neki egy Term-Screen nevű szoftvercsomag függősége, ami ráadásul kizárólag csak a szoftvertároló tesztelési ágából érhető el.
A Term-ScreenColor nevű fájl arra van használva, hogy tartalmazza a beállítás direktívát, amely felfedi a Term-Screen szoftvercsomagot. Utalva arra, hogy miért tette elérhetővé a Term-Screen telepítését a tesztelési ágból:
root #
echo "=dev-perl/Term-Screen-1.30.0 ~amd64" >> /etc/portage/package.accept_keywords/Term-ScreenColor
Kiegészítő megjegyzések
Az -r#
szoftvercsomag változatok beengedéséhez, amelyek azonnal hasznos frissítéseket tartalmazhatnak, cserélje ki a bevezető egyenlőségjelet (=
) egy tilde (~
) jelre:
~dev-perl/Term-Screen-1.30.0 ~amd64
Maga a kulcsszó általában elhagyható:
~dev-perl/Term-Screen-1.30.0
Azért, hogy mindig a legfrissebb tesztelési verzió legyen telepítse a szoftverből, hogy a bevezető =
jelet, vagy ~
jelet, és a verziószámot dobja hátra az írás végére:
dev-perl/Term-Screen
Ha az elfedés (maszk) azért van, mert nincsen a KEYWORDS meghatározva, akkor használja a **
jelölést:
~sys-apps/portage-9999 **
Hogyan jelölik meg a szoftvercsomagokat a tesztelési ágban lévőként?
Minden Gentoo ebuild-nek (szoftvercsomagnak) van egy KEYWORDS értékkészlete, amelyre a fordításkor hivatkozik. Ezek a kulcsszavak azonosítják, hogy az ebuild mely architektúrákhoz telepíthető, és hogy az ebuild stabil (nincs előtag) vagy még tesztelési fázisban van-e (~ előtag).
Bizonyos esetekben a szoftvercsomag KEYWORDS tartalom nélkül van meghatározva. Ebben a konkrét esetben a Portage a speciális **
kulcsszóérték használatát javasolja felülbíráláshoz.
További olvasnivaló a témában
- ACCEPT_KEYWORDS — tájékoztatja a szoftvercsomag-kezelőt, hogy az ebuild KEYWORDS mely értékeit fogadhatja el
- KEYWORDS — the KEYWORDS változó azt jelzi, hogy mely architektúrákon stabil az ebuild, vagy még mindig tesztelési fázisban van.
- Knowledge Base:Accepting a keyword for all packages