Content-type: text/html Manpage of PORTAGE

PORTAGE

Section: Portage (5)
Updated: Styczeń 2007
Index Return to Main Contents
 

NAZWA

portage - serce Gentoo  

OPIS

W trakcie działania Portage korzysta z wielu różnych plików konfiguracyjnych, większość z nich nie jest znana większości użytkowników, czy zwykłym deweloperom. W tym podręczniku można znaleźć informacje o tym, w jaki sposób można efektywnie wykorzystać potencjał drzemiący w Portage, a także znaleźć opis poszczególnych plików konfiguracyjnych nieposiadających własnych stron podręcznika.

Ustawienia znajdujące się w plikach w katalogu make.profile mogą zostać nadpisane przez profil nadrzędny, gdy używane są profile kaskadowe. Więcej informacji na ten temat można znaleźć na stronie http://www.gentoo.org/proj/en/releng/docs/cascading-profiles.xml

UWAGA:
Więcej informacji o tym, jak zainstalować pakiet, można odnaleźć w podręczniku emerge(1).
 

STRESZCZENIE

/etc/
make.globals
make.conf(5)
/etc/make.profile/
deprecated
make.defaults
packages
packages.build
package.provided
package.use
package.use.force
package.use.mask
parent
profile.bashrc
use.force
use.mask
virtuals
/etc/portage/
bashrc
modules
package.keywords
package.mask
package.unmask
package.use
mirrors
categories
/etc/portage/profile/
Własne ustawienia nadpisujące /etc/make.profile/
/usr/portage/profiles/
arch.list
categories
info_pkgs
info_vars
package.mask
profiles.desc
thirdpartymirrors
use.desc
use.local.desc
/var/lib/portage/
world
 

TERMINOLOGIA

W kolejnych sekcjach można napotkać wiele sformułowań, które mają specyficzne znaczenie dla Portage. Poniżej znajduje się słowniczek najważniejszych pojęć. Proszę skonsultować się także z wymienionymi podręcznikami, by uzyskać dokładniejsze informacje.
Atom DEPEND
Łańcuch znaków pasujący do pakietu. Jego format to kategoria/pakiet. Dodatkowo może zawierać informacje o wersjach, a także operatory logiczne. Więcejinformacji: ebuild(5)
KEYWORD
Każda architektura posiada unikalny identyfikator - KEYWORD. Więcejinformacji: ebuild(5)
virtual
Atom DEPEND będący częścią kategorii wirtualnej. Może zostać użyty, gdy w drzewie Portage znajduje się wiele pakietów, które mogą zaspokoić daną zależność, a tylko jeden z nich jest niezbędny do poprawnej kompilacji, czy działania aplikacji. Więcejinformacji: ebuild(5)
 

OPIS POSZCZEGÓLNYCH PLIKÓW

/etc/
make.globals
Globalne, domyślne ustawienia Portage. Plik ten wchodzi w skład pakietu Portage. Parametry i ustawienia, które się w nim znajdują, mogą zostać nadpisane przez te zawarte w pliku make.conf. Dokładny opis formatu znajduje się na stronie podręcznika make.conf(5).
make.conf
Globalne ustawienia Portage. Dokładny opis formatu znajduje się w podręczniku make.conf(5).
/etc/make.profile/
Zazwyczaj jest to tylko dowiązanie symboliczne do właściwego profilu znajdującego się w katalogu /usr/portage/profiles/. Jako, że jest to część drzewa Portage, łatwo może zostać zaktualizowane/poprawione po użyciu polecenia `emerge --sync`. Znajduje się tam definicja używanego profilu (zazwyczaj są to ustawienia związane z konkretną architekturą). W przypadku gdy chcemy stworzyć własny profil to należy utworzyć katalog /etc/make.profile/ i zapełnić go odpowiednimi plikami. Jeżeli jednak naszym celem jest tylko zmiana niektórych ustawień to lepiej nie edytować żadnego z plików należących do używanego profilu, ponieważ zmiany będą utracone przy najbliższym procesie synchronizacji drzewa Portage. By nadpisać interesujące nas ustawienia najlepiej posłużyć się instrukcjami, które można znaleźć poniżej, w kolejnej części tego podręcznika opisującej /etc/portage/.
deprecated
Jeśli w danym profilu istnieje ten plik to jest on uważamy za przestarzały, co oznacza że nie jest on już wspierany przez deweloperów Gentoo. Pierwsza linia musi zawierać nazwę profilu, do którego najlepiej dokonać migracji, w pliku mogą dodatkowo znajdować się instrukcje opisujące tę procedurę, jaką należy wykonać w czasie zmiany profilu.

Przykład:

default-linux/x86/2005.0
# emerge -n '>=sys-apps/portage-2.0.51'
# rm -f /etc/make.profile
# ln -s /usr/portage/profiles/default-linux/alpha/2005.0 /etc/make.profile
make.defaults
Domyślne ustawienia Portage w danym profilu. Schemat pliku jest opisany w podręczniku make.conf(5). Znajdują się tu definicje kilku specyficznych zmiennych:

ARCH
typ architektury (x86/ppc/hppa/etc...).
USERLAND = GNU
wsparcie dla BSD/cygwin/etc...
PORTAGE_LIBC = glibc
wsparcie dla uClibc/BSD libc/etc...
PROFILE_ARCH
rozróżnia różne typy komputerów posiadających tę samą architekturę (ARCH), np. wszystkie komputery sparc posiadają ARCH=sparc, ale wartość tej zmiennej to 'sparc32' lub 'sparc64'.
STAGE1_USE
specjalne flagi USE, które mogą być potrzebne w przypadku przeprowadzania bootstrapu podczas instalacji
GRP_STAGE23_USE
specjalne flagi, używane przez catalyst w czasie budowania pakietów GRP i pliku stage3.
packages
Plik konfiguracyjny, który służy do maskowania specyficznych pakietów/wersji z poziomu profilu, zawiera on także listę pakietów należących do specjalnego zestawu system.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND na jedną linię
- pakiety należące do zestawu system powinny mieć dodany prefiks '*'
Uwaga: W ustawieniach profili kaskadowych można usunąć flagi USE w profilach potomnych, które to flagi USE zostały dodane w profilach rodzicielskich, dodając do flagi przedrostek '-'.

Przykłady:

# komentarz
# glibc tylko w wersjach niższych niż 2.3
<sys-libs/glibc-2.3
# dodaj dowolną wersję bashu do zestawu system
*app-shells/bash
# readline tylko w wersjach niższych niż 4.2
# dodaj readline do zestawu system
*<sys-libs/readline-4.2
packages.build
Lista pakietów (jeden w jednej linijce) tworzących plik stage1. Przydatne tylko dla aplikacji budujących pliki stage.
package.provided
Lista pakietów (jeden w jednej linijce), które Portage powinno uważać jako zainstalowane i nie zajmować się ich zarządzaniem. Bardzo przydatna opcja dla portów w nie-linuksowym środowisku. Nie będą one aktualizowane, chyba że wśród zależności będzie wymagana jego nowsza wersja. Ta lista zastępuje składnię emerge --inject.

Dla przykładu, jeśli chcesz własnoręcznie zarządzać jądrem w wersji 2.6, to używając tego pliku możesz powiedzieć Portage, że 'sys-kernel/development-sources-2.6.7' jest już niezależnie zainstalowane.

Wirtualne pakiety (virtual/*) nie powinny być wymienione w package.provided. Zależnie od typu wirtuału może być konieczne dodanie pozycji do pliku virtuals i/lub dodanie pakietu zapewniającego wirtuał do package.provided.

Format:

- komentarze zaczynają się #
- jeden depend atom na jedną linię
- nie można używać operatorów relacji
- obowiązkowa specyfikacja numeru wersji

Przykład:

# zarządzanie jądrem
sys-kernel/development-sources-2.6.7

# specjalna wersja Qt
x11-libs/qt-3.3.0

# zainstalowana modularna wersja X, ale pakiety wymagają wersji monolitycznej
x11-base/xorg-x11-6.8
package.use.force
Wymuszanie flag USE w wypadku danych pakietów.

Uwaga: W ustawieniach profili kaskadowych można usunąć flagi USE w profilach potomnych, które to flagi USE zostały dodane w profilach rodzicielskich, dodając do flagi przedrostek '-'.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND, a następnie lista, oddzielonych spacjami
flag USE, w jednej linii

Przykład:

# wymuś instalację dokumentacji dla GTK+ 2.x
=x11-libs/gtk+-2* doc
# przestań wymuszać wsparcie MySQL przez Qt
x11-libs/qt -mysql
package.use.mask
Maskowanie flag USE w wypadku danych pakietów.

Note: W ustawieniach profili kaskadowych można usunąć flagi USE w profilach potomnych, które to flagi USE zostały dodane w profilach rodzicielskich, dodając do flagi przedrostek '-'.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND, a następnie lista, oddzielonych spacjami
flag USE, w jednej linii.fi

Przykład:
# zamaskuj instalację dokumentacji dla GTK+ 2.x
=x11-libs/gtk+-2* doc
# odmaskuj wsparcie MySQL przez Qt
x11-libs/qt -mysql
parent
Zawiera lokalizację profilu nadrzędnego, może to być zarówno ścieżka względna jak i absolutna. Najczęściej zawartość tego pliku jest postaci '..', aby wskazać katalog nadrzędny. Ten plik konfiguracyjny jest jedynie używany w przypadku profili kaskadowych.
profile.bashrc
Jeśli potrzeba, ten plik może zostać użyty w celu ustawienia specjalnych zmiennych środowiskowych dla ebuildów posiadających inne niż standardowe środowisko. Składnia jest identyczna, jak dla innych skryptów bashowych.
use.force
Nie ma sensu mieć wyłączone niektóre flagi USE w pewnych warunkach. Tutaj wymienia się wymuszone flagi.

Note: W ustawieniach profili kaskadowych można usunąć flagi USE w profilach potomnych, które to flagi USE zostały dodane w profilach rodzicielskich, dodając do flagi przedrostek '-'.

Format:

- komentarze zaczynają się #
- jedna flaga USE w jednej linii
use.mask
Niektóre flagi USE nie mają sensu na wybranych architekturach (np. altivec ma sens tylko dla ppc, a mmx dla x86) lub nie zostały jeszcze wystarczająco przetestowane, tak więc tutaj mogą być one zamaskowane.

Uwaga: W ustawieniach profili kaskadowych można usunąć flagi USE w profilach potomnych, które to flagi USE zostały dodane w profilach rodzicielskich, dodając do flagi przedrostek '-'.

Format:

- komentarze zaczynają się #
- jedna flaga USE w jednej linii
virtuals
W pliku znajdują się domyślne powiązania pomiędzy pakietem, a kategorią wirtualną, na przykład gdy pakiet do poprawnego działania wymaga możliwości wysyłania e-maili, to będzie potrzebował virtual/mta. W przypadku gdy w naszym systemie nie będzie zainstalowana odpowiednia aplikacja (jak qmail, sendmail, postfix, itd.), Portage użyje odpowiedniego wpisu znajdującego się w tym pliku, by zapewnić pożądaną funkcjonalność, w podanym przykładzie będzie to net-mail/ssmtp, jako że jest to aplikacja zapewniająca potrzebne minimum możliwości.

Format:

- komentarze zaczynają się #
- jedna para, kategoria wirtualna i atom DEPEND, w jednej linii

Przykład:

# użyj net-mail/ssmtp jako domyślnego mta
virtual/mta            net-mail/ssmtp
# app-dicts/aspell-en jest domyślnym słownikiem
virtual/aspell-dict   app-dicts/aspell-en
/etc/portage/
Każdy plik w tym katalogu, który zaczyna się od "package.", może być czymś więcej niż tylko zwykłym plikiem. Jeśli jest katalogiem, wtedy wszystkie pliki w tym katalogu będą połączone tak, jak gdyby był pojedyńczym plikiem.

Przykład:

/etc/portage/package.keywords/kde
/etc/portage/package.keywords/wspólne
/etc/portage/package.keywords/e17
bashrc
Gdy zajdzie taka potrzeba, plik ten określa środowisko, w jakim wykonywane są ebuildy, w tym przypadku nie jest używane środowisko domyślne. Składnia jest analogiczna, jak w przypadku zwykłych skryptów używających powłoki bash.

modules
Ten plik może zostać użyty w celu zmiany sposobu przechowywania informacji wewnętrznych Portage. W praktyce portdbapi.auxdbmodule jest jedyną zmienną, którą użytkownik mógłby chcieć zmieniać.

Przykład:

portdbapi.auxdbmodule = cache.metadata_overlay.database

Moduł metadata_overlay umożliwia ustawienie FEATURES="metadata-transfer" w make.conf(5). Gdy użytkownik uruchomi metadata_overlay w /etc/portage/modules, wszystkie pliki zawierające się w /var/cache/edb/dep/${PORTDIR} muszą zostać ręcznie usunięte, by uniknąć zbędnego procesu regeneracji informacji Portage. Użytkownicy korzystający z modułu metadata_overlay nie mogą modyfikować eklas w ${PORTDIR}, ponieważ Portage nie będzie w stanie stwierdzić czy regeneracja powyższych informacji jest potrzebna. Jeśli użytkownik chciałby modyfikować eklasy, można używać modułu metadata_overlay wraz z PORTDIR_OVERLAY w make.conf.

package.keywords
Ustawienia flag KEYWORD dla poszczególnych pakietów, przydatne gdy chcemy używać niestabilnych pakietów na stabilnym systemie, i na odwrót. Zawartość tego pliku pozwala dostosować wartość zmiennej ACCEPT_KEYWORDS dla pojedyńczych wersji aplikacji.

Uwaga:
Istnieją dwie specjalne flagi KEYWORD, które mogą pomóc w odpowiedniej
konfiguracji:
* dowolny stabilny KEYWORD
~* dowolny niestabilny KEYWORD

Format:
- komentarze zaczynają się #
- jeden atom DEPEND, a następnie KEYWORD, w jednej linii
- linie nie zawierające KEYWORD będą domyślnie traktowane jako żądanie pakietu
niestabilnego

Przykład:
# używaj niestabilnego libgd
media-libs/libgd ~x86
# tylko stabilny mplayer
media-video/mplayer -~x86
# używaj niestabilnego netcat
net-analyzer/netcat

Dodatkowa uwaga: W przypadku, gdy dany pakiet oznaczony jest przez KEYWORD -*, to oznacza to, że jest on uznany jako zepsuty na wszystkich architekturach, chyba, że jest inaczej we fladze KEYWORD danego ebuilda. Przykładowo, jeśli dana aplikacja jest dostępna tylko w formie binarnej dla x86, to odpowiednia część ebuilda może wyglądać następująco:

games-fps/quake3-demo-1.11.ebuild:keywords="-* x86"

Jeśli pomimo tego chcesz zainstalować dany pakiet, to dodaj flagę -* w pliku package.keywords przy odpowiednim wpisie:

games-fps/quake3-demo -*

package.mask
Lista pakietów, które powinny być zamaskowane. Bardzo przydatne, gdy dana aplikacja lub jej wersja działają nieprawidłowo na danym systemie, umożliwia także zablokowanie aktualizacji pakietu np. jądra. W przypadku, gdy chcemy używać sterowników kart graficznych Nvidia, ale tylko w wersjach starszych niż 1.0.4496, nie ma problemu, używając ten plik, można zrobić to z łatwością.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND w jeden linii

Przykład:

# zamaskuj sterowniki nvidia nowsze niż 1.0.4496
>media-video/nvidia-kernel-1.0.4496
>media-video/nvidia-glx-1.0.4496
package.unmask
Podobna funkcjonalność jak w przypadku package.mask, tylko że w tym przypadku wskazane pakiety zostaną odmaskowane. Może to zostać użyte do nadpisania globalnej konfiguracji package.mask (zobacz poniżej). Należy zauważyć, że nie ma to wpływu na aplikacje zamaskowane przez KEYWORD.
package.use
Flagi USE definiowane dla poszczególnych pakietów. Bardzo przydatna funkcjonalność umożliwiająca zmianę globalnych flag USE i ustawienie lokalnej flagi, która jest wspierana jedynie przez dany pakiet. Przykładowo deweloper GTK+ będzie prawdopodobnie zainteresowany instalacją dokumentacji dla GTK+, ale już niekoniecznie dla Qt. Używając tego pliku z łatwością można uzyskać taką konfigurację.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND, a następnie lista, oddzielonych spacjami
flag USE, w jednej linii

Przykład:

# zainstaluj dokumentację dla GTK+ 2.x
=x11-libs/gtk+-2* doc
# wyłącz wsparcie dla mysql w Qt
x11-libs/qt -mysql
mirrors
Gdy Portage napotka URL w postaci mirror://, to będzie próbował odnaleźć odpowiedni adres z pomocą tego pliku, a w przypadku niepowodzenia skorzysta z globalnej listy serwerów lustrzanych znajdujących się w pliku /usr/portage/profiles/thirdpartymirrors. Dodatkowo istnieje możliwość zdefiniowania listy specjalnych serwerów - "local", będą one zawsze przeglądane w pierwszej kolejności przed GENTOO_MIRRORS nawet w przypadku, gdy dany ebuild używa zmiennej RESTRICT="mirror" lub RESTRICT="fetch".

Format:

- komentarze zaczynają się #
- typ serwera, a następnie lista hostów

Przykład:

# lokalny, serwer lustrzany, używany tylko przez firmę
local ftp://192.168.0.3/mirrors/gentoo http://192.168.0.4/distfiles

# mieszkańcy Japonii woleliby używać japońskiego serwera lustrzanego
sourceforge http://keihanna.dl.sourceforge.net/sourceforge

# lokalny serwer gnu na Tajwanie
gnu ftp://ftp.nctu.edu.tw/unix/gnu/
categories
Lista kategorii znajdujących się w /usr/portage, w PORTDIR_OVERLAY, a także w PKGDIR (patrz make.conf(5)). Umożliwia dodanie nowych kategorii.

Format:

- jedna kategoria w jednej linii

Przykład:

app-hackers
media-other
/usr/portage/profiles/
Globalna konfiguracja Gentoo nadzorowana przez deweloperów. By nadpisać poszczególne jej ustawienia, można użyć plików znajdujących się w /etc/portage/.
arch.list
Lista poprawnych architektur (KEYWORD), nie zawiera możliwych modyfikatorów.

Format:

- jeden KEYWORD w jednej linii

Przykład:

x86
ppc
sparc
categories
Prosta lista rozpoznawanych kategorii /usr/portage, PORTDIR_OVERLAY, a także PKGDIR (patrz make.conf(5)).

Format:

- jedna kategoria w jednej linii

Przykład:

app-admin
dev-lang
games-strategy
sys-kernel
info_pkgs
Lista pakietów, których wersje będzie można zobaczyć po wykonaniu polecenia `emerge --info`.
info_vars
Lista zmiennych, które zostaną wyświetlone po wykonaniu `emerge --info`.
package.mask
Zawiera listę DEPEND dla pakietów, które nie powinny być zainstalowane w którymkolwiek z profili, przydatne w momencie dodawania wersji beta aplikacji, by mieć pewność, że w domyślnej konfiguracji nie dojdzie do przypadkowej aktualizacji. Umożliwia także zamaskowanie specyficznych wersji w przypadku wykrycia błędów bezpieczeństwa. ZAWSZE należy dodać odpowiedni komentarz, który wyjaśni, dlaczego dany pakiet został zamaskowany i KTO dodał odpowiedni wpis.

Format:

- komentarze zaczynają się #
- jeden atom DEPEND w jednej linii

Przykład:

# zamaskowane z powodów bezpieczeństwa
<sys-libs/zlib-1.1.4
# <caleb@gentoo.org> (10 sep 2003)
# nowe wersje beta KDE
=kde-base/kde-3.2.0_beta1
=kde-base/kdeaccessibility-3.2.0_beta1
profiles.desc
Lista wszystkich stabilnych i deweloperskich profili, które mają być sprawdzane przez repoman. W obecnej chwili wspierany jest tylko jeden profil na jedną konfigurację stable/dev/KEYWORD. W przypadku, gdy w pliku będzie znajdowało się więcej podobnych wpisów, tylko ostatni z nich będzie używany.

Format:

- komentarze zaczynają się #
- jeden profil w formacie: architektura katalog status, w jednej linii
- KEYWORD (architektura) musi znajdować się w pliku arch.list
- lokalizacja katalogu określona jest przez ścieżkę względną do profiles.desc
- dopuszczalne wartości słowa kluczowego status to 'stable' i 'dev'

Przykład:

alpha default-linux/alpha/2004.3 stable
m68k  default-linux/m68k         dev
x86   default-linux/x86/2004.3   stable
thirdpartymirrors
Nadzoruje aktualne powiązania pomiędzy URL-ami typu mirror:// i właściwą listą używanych hostów na których znajdują się pliki, umożliwia odciążenie poszczególnych serwerów i zmniejszenie przez to ich obciążenia.

Format:

- komentarze zaczynają się #
- typ serwera lustrzanego, a następnie lista hostów w jednej linii

Przykład:

sourceforge  http://aleron.dl.sourceforge.net/sourceforge http://unc.dl.sourceforge.net/sourceforge
gentoo       http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo/distfiles
kernel       http://www.kernel.org/pub http://www.us.kernel.org/pub
use.desc
Lista wszystkich globalnych flag USE oraz ich krótki opis.

Format:

- komentarze zaczynają się #
- flaga USE - opis

Przykład:

3dfx - Adds support for 3dfx video cards
acl  - Adds support for Access Control Lists
doc  - Adds extra documentation
use.local.desc
Lista wszystkich lokalnych flag USE wraz z używającymi ich pakietami i opisami.

Format:
- komentarze zaczynają się #
- pakiet:flaga USE - opis

Przykład:
app-editors/nano:justify - Toggles the justify option
dev-libs/DirectFB:fusion - Adds Multi Application support
games-emulation/xmess:net - Adds network support
/var/lib/portage/
world
Zawiera listę pakietów należących do specjalnego zestawu - world. Jest ona za każdym razem odświeżana po instalacji lub po odinstalowaniu aplikacji. W przypadku użycia komendy `emerge -up world` jest ona używana do określenia, które aplikacje powinny zostać zaktualizowane. Należy zauważyć, że lista ta nie zawiera pakietów zainstalowanych jako zależności, np. w przypadku polecenia `emerge mod_php` do tego pliku zostanie dodany tylko wpis "dev-php/mod_php", natomiast "net-www/apache" już nie. Dodatkowe informacje można znaleźć w podręczniku emerge(1).

Format:

- jeden atom DEPEND w jednej linii

Przykład:

games-misc/fortune-mod-gentoo-dev
dev-libs/uclibc
app-cdr/cdemu
 

ZGŁASZANIE BŁĘDÓW

Prosimy o zgłaszanie błędów przy pomocy http://bugs.gentoo.org/  

AUTORZY

Marius Mauch <genone@gentoo.org>
Mike Frysinger <vapier@gentoo.org>
Drake Wyrm <wyrm@haell.com>
 

ZOBACZ TAKŻE

emerge(1), ebuild(1), ebuild(5), make.conf(5)  

TŁUMACZENIE

Michał Kurgan <moloh@gentoo.org>
Polski projekt tłumaczenia manuali Gentoo
http://gentoo.org/~rane/tlumaczenie-manuali.html


 

Index

NAZWA
OPIS
STRESZCZENIE
TERMINOLOGIA
OPIS POSZCZEGÓLNYCH PLIKÓW
ZGŁASZANIE BŁĘDÓW
AUTORZY
ZOBACZ TAKŻE
TŁUMACZENIE

This document was created by man2html, using the manual pages.
Time: 21:24:08 GMT, January 18, 2008