Pl:HOWTO: Instalacja oprogramowania w Sabayon / Kompletny przewodnik po portage

From Sabayon Wiki
Jump to: navigation, search
i18n: ca de en es fr pl tr
Stop.png
Artykuł w trakcie tworzenia.

Wstęp

Q: Jak zainstalować oprogramowanie w Sabayon Linux??

A: Sposobów instalacji programów jest kilka. Poniżej opiszemy wszystkie znane metody instalacji programów, przy czym dwie pierwsze metody są niezalecane.

Instalacja programów napisanych pod Windows

Dzięki istnieniu narzędzia o nazwie WINE możemy spróbować zainstalować lub uruchomić oprogramowanie napisane pod system Windows.

WINE nie jest emulatorem Windowsa, lecz narzędziem typu API. Zwykle można znaleźć odpowiednik danego programu pod system Linux, ale bywa, że tak nie jest (patrz - Gry). Jednak nie wszystkie programy prawidłowo się uruchamiają pod WINE. Które ?? To już trzeba sprawdzić samodzielnie wykonując następujące polecenie:

$ wine /sciezka/do/pliki

Instalacja oprogramowania ze źródeł

Mimo tego, że w Gentoo instalacja odbywa się ze źródeł to jednak do tego wykorzystuje skrypty ebuild. Dlatego instalacja bezpośrednio ze źródeł jest niezalecana (choćby z tego powodu, że nie rozwiązuje zależności), chociaż możliwa. Jak to zatem zrobić??

1. Pobieramy źródła interesującego nas programu na dysk, czy to za pomocą wget czy przy wykorzystaniu menadżerów pobierania zawartych w każdej przeglądarce; źródła zwykle są zarchiwizowane i skompresowane, zatem ich najczęstsze to: nazwaarchiwum.tar.gz, nazwaarchiwum.tar.bz2, a czasem nazwaarchiwum.zip.

2. Rozpakowujemy źródła w następujący sposób: Przechodzimy do katalogu, do którego pobraliśmy archwium:

$ cd /sciezka/do/katalogu

i rozpakowujemy: - jeśli archiwum ma rozszerzenie .tar.gz to:

$ nazwaarchiwum.tar.gz

- jeśli archiwum ma rozszerzenie .tar.bz2 to:

$ nazwaarchiwum.tar.bz2

3. Żeby utrzymać jakiś porządek warto skopiować rozpakowane archiwa w jedno miejsce:

$ cp -R katalogzarchiwum /usr/local/src

4. Przechodzimy do katalogu rozpakowanego archwium:

$ cd /usr/local/src/katalogzarchiwum

5. W tym katalogu często istnieją pliki opisujące proces instalacji, najczęściej to README lub INSTALL, warto przeczytać.

6. Najczęściej najpierw należy wykonać proces konfiguracji, który sprawdza m.in. czy istnieją wymagane pliki lub narzędzia. Odbywa się poprzez wpisanie polecenia:

$ ./configure (ewentualnie z dodatkowymi opcjami, które opisane są często w pliku README lubi INSTALL)

który wyświetli nam ewentualne braki lub błędy, które mogą się zdarzyć.

7. Następnie wykonujemy kompilację źródeł (często proces konfiguracji nie jest wymagany, wówczas pomijamy pkt. 6)"

$ make

8. Jeśli wszystko przebiegnie pomyślnie (nie pojawią się błedy) instalujemy skompilowane programy:

$ make install

Tą czynność wykonujemy jako root (poprzednie niekoniecznie)

I właściwie wszystko gotowe. Pliki binarne umieszczone są najczęściej w /usr/local/bin (chyba ze ustawimy inaczej w procesie konfiguracji).

Powyższe dwie metody są jednak bardzo niezalecane, wykonujemy je jeśli poniższe dwie metody okażą się nieskuteczne.

Instalacja przy pomocy środowiska Entropia

O systemie plików piszemy tutaj.

Instalacja przy pomocy pomocy środowiska Portage

Ponieważ Sabayon Linux zbudowany jest na Gentoo, twórcy tej dystrybucji dołączyli system zarządzania pakietami Portage do Sabayona, dzięki czemu mamy dostęp do ogromnej ilości pakietów, zarówno w standardowym drzewie Portage jak i dzięki istnieniu tzw. overlay'ów, czyli skryptów tworzonych przez uzytkowników.

Poniżej spróbujemy wyjaśnić na czym polega praca z Portage.

Portage

Portage to system zarządzania pakietami, który używany jest w Gentoo no i oczywiście w Sabayon Linux, żeby instalować, odinstalowywać oraz zarządzać oprogramowaniem w systemie. System Portage zawiera drzewo Portage, który jest kolekcją tzw. ebuildów, narzędzie emerge, dzięki któremu instalujemy ebuildy, pliki konfiguracyjne Portage oraz inne narzędzia.

Drzewo Portage posiada lokalną kopię (umieszczoną w /usr/portage) głównego repozytorium Portage. Jeśli chcesz zainstalować program za pomocą emerge, najpierw przeszukiwane jest drzewo pakietów. Jeżeli pasujący pakiet zostanie znaleziony, są wyliczane zależności (poszukiwane są pakiety konieczne do prawidłowego funkcjonowania pakietu, który chcemy zainstalować), źródła programu oraz zależności są pobierane, kompilowane i instalowane w Twoim systemie.

Ebuild

Ebuildy to specjalne skrypty napisane w języku powłoki 'bash' używane przez Gentoo (no i oczywiście Sabayon Linux) zawierające wszystkie potrzebne informacje do zarządzania oprogramowaniem. Ebuildy automatyzują proces kompilacji, instalacji, a także wyszukiwania potrzebnych pakietów.

Każda wersja dowolnej aplikacji lub pakietu ma swoją wersję ebuildu w drzewie pakietu Portage.

Skrypty używane są przez narzędzie emerge. Narzędzie to korzystając z ebuildu wyliczy zależności, pobierze wymagane pakiety (ewentualnie patche jeśli są dostępne), odczyta konfigurację pakietów (na podstawie flag USE), skompiluje oraz umieści skompilowane pakiety w /var/portage/[ebuild], a następnie zainstaluje je w systemie w odpowiednich katalogach.

Emerge

Konsolowe narzędzie emerge jest sercem systemu Portage. Komenda jest dosyć złożona z dużą ilością opcji i modyfikacji. Jest najważniejszą funkcją do obsługi systemu Portage.

Program określa i zarządza zależnościami, uruchamia ebuildy, zarządza lokalnym drzewem Portage oraz utrzymuje bazę zainstalowanych pakietów. Ustawienia kompilacji mogą być zmieniane przez zmienną środowiskową CFLAGS, która określa indywidualne ustawienia dla danego sprzętu w celu zwiększenia optymalizacji. Emerge uruchamia ebuild'y we własnym środowisku. Chroni to system przed uruchomieniem oprogramowania przez ebuild'y. Dopiero po prawidłowo zakończonej kompilacji programy w postaci binarnej są instalowane.

To co emerge kompiluje i instaluje jako zależności zależy od ustawień flagi USE. One decydują o tym, która opcjonalna funkcja (lub program) zostanie dołączony podczas instalacji lub upgrade'u systemu.

Emerge potrafi także pobierać i instalować pakiety w postaci binarnej, pomimo iż niektórzy twierdzą, że korzystanie z takich pakietów nie wykorzystuje ogromnych możliwości optymalizacji programów dzięki kompilacji.


Jak posługiwać się narzędziem emerge

Narzędziem emerge najlepiej posługiwać się jako root. Niżej opisywane opcje można łączyć ze sobą w jednym procesie kompilacji. W razie trudno warto zajrzeć do 'man emerge'.

Synchronizacja i aktualizacja drzewa Portage

Synchronizację głównego drzewa Portage znajdującego się w repozytorium z lokalnym drzewem systemu wykonujemy następujące polecenie:

$ emerge --sync

Czynność tą powinno się wykonać przed każdą instalacją i aktualizacją dowolnego pakietu, gdyż drzewo Portage jest dosyć często aktualizowane.

Ponieważ wykonując synchronizację pakietów emerge korzysta z protokołu rsync może się zdarzyć, że z jakichś przyczyn port obsługujący ten protokół jest zablokowany w naszej sieci (np. przez firewall). Wówczas korzystamy z innego narzędzia, które pobierze drzewo z generowanych codziennie snapshotów drzewa Portage:

$ emerge-webrsync

Często należy wykonać także polecenie:

$ layman -S

żeby zaktualizować wszystkie tzw. overlay'e (o których więcej w #Overlay'e i layman

Instalacja pakietów

Aby zainstalować pakiety wykonujemy:

$ emerge <nazwapakietu>

lub

$ emerge =nazwakategorii/nazwapakietu-wersja

której używamy gdy chcemy zainstalować konkretną wersję danego pakietu.

Może się zdarzyć, że dany pakiet znajduje się w kilku różnych kategoriach, np.:

   dev-libs/aterm
   x11-terms/aterm

wówczas musimy wskazać kategorię z której pakiet ma zostać zainstalowany:

$ emerge nazwakategorii/nazwapakietu

Żeby zaktualizować pakiet wykonujemy:

$ emerge -u <nazwapakietu>

lub

$ emerge =nazwakategorii/nazwapakietu-wersja

gdy chcemy zaktualizować konkretną wersję pakietu.

Usuwanie pakietów

Usuwanie pakietu możemy wykonać następującą instrukcją:

$ emerge --unmerge <nazwapakietu>

lub

$ emerge -C <nazwapakietu>

Jeśli chcemy usunąć konkretną wersję pakietu wykonujemy:

$ emerge -C =kategoriapakietu/nazwapakietu-wersja
Question.png
Portage nie sprawdza czy dany pakiet jest zależnością innego pakietu, należy zatem usuwać go bardzo świadomie

Poniższa opcja usuwa pakiet oraz jego niewymagane - przez inne oprogramowanie - pakiety:

$ emerge -c <nazwapakietu> 

lub

$ emerge -c =kategoriapakietu/nazwapakietu-wersja

jeśli chcemy usunąć konkretną wersję pakietu i niewymagane zależności.

Natomiast opcja:

$ emerge --depclean 

czyści system ze wszystkich zainstalowanych pakietów, które nie są wpisane do listy zainstalowanych pakietów Portage (listę ta nazywa się world).

Wyszukiwanie pakietów

Aby znaleźć interesujący nas pakiet wykonujemy:

$ emerge --search <nazwapakietu> 

lub po prostu:

$ emerge -s <nazwapakietu> 

Można także poszerzyć wyszukiwanie pakietów również po ich opisach:

$ emerge --searchdesc <nazwapakietu> 

lub

$ emerge -S <nazwapakietu> 

Ilość wyświetlanych informacji

Poniższa opcja zwiększa ilość wyświetlanych informacji w trakcie instalacji:

$ emerge -v <nazwapakietu> 

a ta minimalizuje:

$ emerge -q <nazwapakietu> 

Potwierdzanie wykonywanych czynności oraz symulacja wykonania zadania

Dzięki opcji:

$ emerge -a <nazwapakietu> 

będziemy mieli możliwość potwierdzania każdej wykonywanej czynności.

Natomiast:

$ emerge -p <nazwapakietu> 

symuluje wykonanie zadania. Bardzo użyteczna z opcją -v. Dzięki temu możemy uzyskać informację na temat instalowanych pakietów i zależności.

Poniżej przedstawiamy jakie informacje możemy w ten sposób uzyskać o instalowanych pakietach:

N = nowy pakiety (jeszcze nie zainstalowany)
S = nowy SLOT (system Portage umożliwia zainstalowanie jednocześnie różnych wersji pakietów, np.KDE3 i KDE4)
U = pakiet aktualizowany
D = pakiet deaktualizowany (niższa wersja wydaję się być lepsza niż zainstalowana)
R = przeinstalowanie (ponowna instalacja istniejącej wersji pakietu))
F = ograniczone pobieranie (pakiet musi zostać pobrany ręcznie)
f = ograniczone pobierane  (pakiet jest właśnie pobierany)
B = zablokowany przez zainstalowany już inny pakiet

Inne istotne opcje

Jeżeli nie chcemy aby instalowane pakiety został dodany do plików 'world' (lista zainstalowanych pakietów) wykonujemy:

$ emerge -1 <nazwapakietu> 

Poniższa instrukcja nie instaluje wskazanego pakietu, ale tylko jego zależności:

$ emerge -o <nazwapakietu> 

Można także tylko pobrać źródła lub pakiety binarne bez ich instalacji:

$ emerge -f <nazwapakietu> 

a także wznowić przerwaną wcześniej instalację:

$ emerge --resume 

Globalna aktualizacja i rekompilacja

Aby zaktualizować cały system (wszystkie do tej pory zainstalowane pakiety jednak bez ich zależności):

$ emerge --update world

a jeśli chcemy zaktualizować system wraz z zależnościami:

$ emerge --deep --update world

Blokowanie, maskowanie pakietów, /etc/portage/package.mask i /etc/portage/package.unmask

Może się zdarzyć, że niektóre pakiety są maskowane lub blokowane z różnych powodów co uniemożliwia ich instalację.

Kiedy może powstać blokada ?? Otóż w ebuild'ach deklarowane są zmienne DEPEND, określające pakiety, które są wymagane do zbudowania danego pakietu oraz RDEPEND, które określa zależności niezbędne do jego uruchomienia. Może się zdarzyć, że któraś zależność jest niekompatybilna z pakietem, wtedy następuje blokowanie pliku (zdarza się to często przy pakietach związanych z Pythonem, który posiada ciągle aktywnych wersji - 2.5, 2.6 itp).

Jak rozwiązać problem?? Niczego nie zmieniać lub usunąć blokowany pakiet. Bywa, że czasem aktualizacja pakietu do najnowszej wersji rozwiązuje problem.

Informacja o tym, że pakiet jest zamaskowany oznacza, że istnieją ku temu jakieś przyczyny. Emerge wyświetli nam także przyczynę zamaskowania pakietu. Możemy się spotkać z następującymi informacjami o maskowaniu:

  1. masked by: ~x86 - oznacza, że program (pakiet) jest w fazie niestabilnej, nie został jeszcze dostatecznie sprawdzony przez jego developerów na podanej architekturze (w tym przypadku x86), po przeprowadzeniu testów zostanie odmaskowany
  2. masked by: -x86 - oznacza, że aplikacja nie działa na podanej architekturze
  3. masked by: -* - podobnie jak wyżej
  4. masked by: missing keyword - oznacza, że program nie został przetestowany na naszej architekturze, można spróbować skompilować go samodzielnie
  5. masked by: package.maks - oznacza, że pakiet jest uszkodzony lub z innych przyczyn nie nadaje się do kompilacji
  6. masked by: profile - oznacza, że pakiet może uszkodzić nasz system po jego zainstalowaniu

Możemy także samodzielnie maskować pakiety, jeżeli nie chcemy, aby z jakichś przyczyn się nam instalował. Jakie to przyczyny ?? Na przykład nowsza wersja oprogramowania nie działa stabilnie na naszym systemie i chcemy pozostać przy wersji poprzedniej.

Możemy tego dokonać modyfikując plik /etc/portage/portage.mask dopisując do niego aplikację, która ma zostać zamaskowana, przy czym można korzystać ze znaków funkcyjnych, np:

=app-cdr/k3b-1.0.5 - maskujemy konkretną wersję aplikacji

<=app-cdr/k3b-1.05 - maskujemy wszystkie wersje poniżej podanej (łącznie z podaną wersją)

>=app-cdr/k3b-1.05 - maskujemy wszystkie wyższe wersje pakietu (łącznie z podaną)

Postępujemy podobnie jeśli chcemy odmaskować jakiś pakiet dopisując podobne wartości do pliku /etc/portage/portage.unmask.

Overlay'e i layman

Overlay to niestandardowe drzewo pakietów Portage, które nie istnieją lub są różne niż te zawarte głównym drzewie Portage.

Overlaye można dodawać ręcznie przez zmianę PORTDIR_OVERLAY="" in /etc/make.conf , ale znacznie lepśza metodą jest korzystanie z narzędzia zarządzania overlayami o nazwie layman.

Możemy wyświetlić dostępną listę overlayów:

$ layman -l

a także dokonać synchronizacji z lokalnym drzewem overlay'ów:

$ layman -S

Można sychronizować także poszczególne overlay'e:

$ layman -s <nazwaoverlaya> 

Żeby dodać overlay z listy dostępnych do drzewa Portage wykonujemy:

$ layman -a <nazwaoverlaya> 

Aby usunąć overlay'a z drzewa Portage wykonujemy:

$ layman -d <nazwaoverlaya> 

Jeśli chcesz zsynchronizować overlay'a Sabayona, wpisz:

$ layman -s sabayon 

Jak wyszukiwać pakietów zawartych w overlayach opiszemy później.