Tudásbázis: Kulcsszó elfogadása egyetlen szoftvercsomag számára

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

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