Tudásbázis: Kulcsszó elfogadása egyetlen csomaghoz

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Knowledge Base:Accepting a keyword for a single package and the translation is 100% complete.
Other languages:

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 csomagkezelő mukavé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.

See also
Tekintse meg a /etc/portage/package.accept_keywords leírást.

Csomaglétrehozás megkísérlése a tesztelési ágból

Amikor megpróbálunk telepíteni egy csomagot a Gentoo szoftvertároló tesztelési ágából, akkor a Portage csomagkezelő 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 csomagot, 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 csomag 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ő csomagot kértek tőle letöltésre. Tehát jelez amikor olyan csomagot 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 csomag egy adott verzióját kérjük tőle, de a csomagnak ez a verziója kizárólag csak a tesztelési ágban van benne.

Ugyanaz a hiba jelenik meg, ha egy kért csomag függősége csak a tesztelési ágban érhető el.

Hogyan tegyük elérhetővé a tesztágból származó csomagokat?

Mindig előnyben kell részesíteni az stabil fejlesztői ágból származó programcsomagokat, 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ó csomagokat használják. A legtöbb új felhasználókat nem javasolják a tesztelési ágból származó programcsomagok 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 csomagok 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 csomagot 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 csomag neve előtti szakaszban lévő tilde ("~") azt jelzi, hogy a csomag 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: 

A rendszerkonfiguráció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 csomagnak 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 konfiguráció

A csomagok elérhetővé tehetők azáltal, hogy a Portage konfigurációs fájljaiba beleírjuk őket. A felhasználói preferenciáknak megfelelően, a tesztelési ágból származó csomagok 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 konfigurációs opciókat egyszerűen csak egy flat fájlba beleírjuk a Portage konfiguráció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 konfigurációkat tartalmazó fájlok.

Flat fájl

Ha minden egyes csomaghoz 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 csomag elérhetővé tételéhez, például a games-kids/gcompris csomag telepítéséhez az instabil fejlesztői-ágból:

root #echo "games-kids/gcompris ~amd64" >> /etc/portage/package.accept_keywords

Egy specifikus csomagverzió 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 konfiguráció szervezésében, egyéb előnyöket is biztosíthat a rugalmasságban.

Annak érdekében, hogy a konfigurációk 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 konfigurációs fájlok elrendezéséhez: Mondjuk telepíteni kell a Term-ScreenColor programcsomagot, de közben van neki egy Term-Screen nevű programcsomag 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 konfigurációs direktívát, amely felfedi a Term-Screen csomagot. 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# csomagvá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 csomagokat a tesztelési ágban lévőként?

Minden Gentoo ebuild-nek (csomagnak) 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 csomag 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