Zarządzanie pakietami

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania

Spis treści

Yum

Yum to system zarządzania pakietami. Jest to w Fedorze podstawowe narzędzie do instalacji, deinstalacji oraz aktualizacji oprogramowania. Pozwala na zminimalizowanie problemu piekła zależności, które jest tak widoczne podczas ręcznej instalacji plików RPM.

Konfiguracja

Echo-bug-48px.png
Szablon się ciut zmienił. Dokumentacja tego szablonu

yum.conf


Główny plik konfiguracyjny yuma to /etc/yum.conf Domyślny w Fedorze 10 plik yum.conf ma postać:
[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

Sekcja main odpowiada za ustawienia globalne. Może istnieć tylko jedna taka sekcja w całej konfiguracji.

Opis opcji

O ile nie zostało to zaznaczone, opcje yuma przyjmują wartość 1 - prawda, oraz 0 - fałsz, co odpowiada włączeniu, bądź wyłączeniu określonej funkcji.

  • cachedir — katalog, w którym zapisywane są ściągane paczki i metadane. Należy zadbać o wystarczającą ilość wolnego miejsca na partycji, gdzie jest ulokowany dany katalog.
  • keepcache — określa, czy po instalacji yum ma usuwać pobrane pakiety (0), czy też pozostawić je w katalogu określonym w cachedir (1).
  • debuglevel — określa ilość wyświetlanych informacji w przypadku wystąpienia błędów w programie. Wartości mieszczą się w przedziale 0-10 (domyślna - 2).
  • logfile - położenie pliku yum.log, zawierającego min. informacje o pakietach, które zostały zainstalowane, zaktualizowane, bądź usunięte przez yuma.
  • exactarch — określa, czy aktualizowane będą tylko pakiety o zgodnej architekturze, np. przy włączonej funkcji yum nie zainstaluje pakietu i686 jako aktualizacji pakietu i386.
  • obsoletes — funkcja włącza przetwarzanie przestarzałych pakietów podczas aktualizacji, bądź upgradu systemu.
  • gpgcheck — sprawdzanie sygnatur GPG instalowanych paczek. Szanujące się repozytoria podpisują cyfrowo swoje RPM-y. Pozwala to na jednoznaczne określenie pochodzenia danej paczki paczki i wykluczenie możliwości instalacji programu pochodzącego z nieznajomego (niezaufanego) źródła. Ze względów bezpieczeństwa usilnie zalecane jest włączenie tej opcji. Można wtedy bez obaw korzystać z mirrorów, bo żadna fałszywa paczka (np. z trojanem) nie zostanie zainstalowana (o ewentualnym problemie z niezgodnymi podpisami zostaniemy poinformowani).
  • plugins — włącza obsługę wtyczek przez yuma.
  • installonly_limit — określa liczbę wersji jądra systemu (ang. kernel) utrzymywanych w systemie. Domyślna wartość 3 oznacza, że zainstalowane będą maksymalnie 3 jądra. Jeśli podczas aktualizacji systemu będzie instalowane kolejne, najstarsze zostanie usunięte. Zainstalowane jądra będą widoczne w menu gruba, dając możliwość uruchomienia Fedory na wybranym z nich. Zaleca się ustalenie wartości installonly_limit na minimum 2. Daje to możliwość sprawdzenia, czy na nowym jądrze cały sprzęt działa poprawnie i powrotu do poprzedniej wersji, jeśli wystąpią problemy.


yum.repos.d


Katalog /etc/yum.repos.d/ służy do przechowywania informacji o dostępnych repozytoriach. Teoretycznie można dodawać wszystkie wpisy do pliku yum.conf, ale ze względu na przejrzystość i łatwość późniejszej administracji lepiej jest to robić w omawianym katalogu.

Przetwarzane są tylko pliki z rozszerzeniem .repo. W każdym takim pliku może znajdować się opis jednego lub większej ilości repozytoriów. Rozpatrzmy dalsze pozważania na poniższym przykładzie (standardowy plik /etc/yum.repos.d/fedora-updates.repo):

[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch
  • [nazwa] — nazwa repozytorium. Nazwa ta musi byc unikalna (w naszym przykładzie jest to updates). Jest ona wyświetlana na ekranie podczas normalnej pracy z yumem.
  • name — nazwa opisowa repozytorium
  • failovermethod — określa sposób w jaki yum będzie wybierał serwery:
    • failovermethod=priority — według kolejności, zaczynając od pierwszego (wartość domyślna)
    • failovermethod=roundrobin — losowo
  • baseurl — URL do repozytorium. Ścieżka wskazująca położenie katalogu repodata. Obsługiwane są protokoły typu http://, ftp:// oraz file:// (adres lokalny). Możliwe jest podanie kilku adresów do jednego repozytorium (bardzo przydatne, gdyż niektóre mirrory czasami padają): baseurl=url://serwer1/ścieżka/do/repozytorium/ url://serwer2/ścieżka/do/repozytorium/ url://serwer3/ścieżka/do/repozytorium/
  • mirrorlist — ścieżka do pliku z listą serwerów lustrzanych dla danego repozytorium
  • enabled — włącza/wyłącza repozytorium
  • gpgcheck — opcja identyczna jak w pliku yum.conf


Inne przydatne opcje:

  • exclude — lista paczek, które nie będą brane pod uwagę w operacjach wykonywanych przez yuma. Użyteczne w przypadku korzystania z niekompatybilnych repozytoriów. Można w ten sposób nakazać yumowi wykluczenie określonych RPM-ów z danego repo. Dozwolone jest korzystanie ze znaków globalnych takich jak * lub ?. Nazwy paczek powinny być oddzielone spacjami. Przykład użycia: exclude=mplayer* libpng mutt alsa-*
  • includepkgs — lista “widzianych” przez yuma paczek w danym repozytorium. Przeciwieństwo opcji exclude. Pozwala na korzystanie z tylko określonych programów w danym repo. Przykładowo, jeśli wiemy, że w repozytorium development jest nowy kernel, który rozwiązuje wystepujący u nas problem, a jednocześnie nie chcemy aktualizować całego systemu do wersji niestabilnej, wystarczy, że w pliku /etc/yum.repos.d/fedora-devel.repo dopiszemy: includepkgs=kernel. Składnia jest taka sama jek w przypadku opcji exclude). Należy jeszcze pamiętać o włączeniu repozytorium (opcja enabled).


repozytoria


Standardowo po zainstalowaniu systemu mamy włączone dwa repozytoria:

  • fedora — pakiety, które są dostępne na płytach instalacyjnych
  • updates — wszelakie aktualizacje programów z repozytorium base

Oprócz wyżej wymienionych dostępne są również:

  • updates-testing — testowe wydania programów, które po niedługim czasie zostaną wydane w fedora-updates
  • rawhide — niestabilne, rozwojowe paczki, które znajdą się w przyszłej Fedorze. Jest to także główne repozytorium z aktualizacjami dla wszystkich testowych wydań Fedory.

Dodatkowe repozytoria.

W repozytoriach fedora i fedora-updates znajduje się wyłącznie wolne oprogramowanie. Brak jest również min. kodeków audio-wideo objętych ochroną patentową (głównie w USA), oraz binarnych sterowników o zamkniętym kodzie źródłowym. W celu dodania powyższych funkcjonalności do Fedory należ skorzystać z dodatkowych repozytoriów:

  • rpmusion — jest to główne źródło programów multimedialnych, oraz zamkniętych sterowników, takich jak sterowniki do kart graficznych Nvidia i Ati. Zawiera również wsparcie dla kart Wifi aktualnie nie wspieranych przez jądro systemu.

Instalacja rpmfusion sprowadza się do wydania polecenia:

su -c 'rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm\
 http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm'

Rpmfusion, wraz z domyślnymi repozytoriami fedory, dostarcza większość programów potrzebnych do codziennego korzystania z systemu. Zainstaluj koniecznie !

  • adobe — zawiera pakiety Adobe Flash Player, oraz Reader dla systemu Linuks. Można je zainstalować za pomocą polecenia (architektura x86):
su -c 'http://linuxdownload.adobe.com/adobe-release/adobe-release-i386-1.0-1.noarch.rpm'

Instalacja flasha dla architektury x64 jest opisana w poradniku

  • compiz-fusion — repozytorium popularnego programu compiz-fusion, zawierającego wiele ciekawych efektów pulpitu.

W celu instalacji repozytorium należy wykonać polecenie:

su -c 'rpm -Uvh http://www.linux-ati-drivers.homecall.co.uk/compiz-fusion-release-1-6.noarch.rpm'
  • google — repozytorium zawierające popularny program picasa. Picasa 3 znajduje się w repozytorium [google-testing].

Aby dodać to repozytorium należy utworzyć plik google.repo i wpisać do niego:

[google]
name=Google - i386
baseurl=http://dl.google.com/linux/rpm/stable/i386
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub 

[google-testing]
name=Google Testing - i386
baseurl=http://dl.google.com/linux/rpm/testing/i386
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Plik należy skopiować do katalogu /etc/yum.repos.d

  • kde — zawiera najnowsze wydania środowiska graficznego KDE. W celu jego instalacji należy skopiować znajdujący się na stronie projektu plik kde.repo do katalogu /etc/yum.repos.d. Najnowsze pakiety znajdują się w repozytorium [kde-testing], które jest domyślnie wyłączone.
Echo-bug-48px.png
Szablon się ciut zmienił. Dokumentacja tego szablonu

Obsługa

Echo-bug-48px.png
Szablon się ciut zmienił. Dokumentacja tego szablonu

Aktualizacja


Pierwszą czynnością po instalacji systemu, jaką wykonuje większość użytkowników Fedory jest aktualizacja systemu. Wynika to z faktu, iż po wydaniu nowej wersji zostają wypuszczane łaty naprawiające problemy bezpieczeństwa. Dodatkowo, w aktualizacjach znajduje się wiele programów z poprawioną funkcjonalnością i usuniętymi denerwującymi błędami.

Aktualizacja systemu

Do aktualizacji całego system służy poniższe polecenie:

yum update

Dostępne aktualizacje

Czasami chcemy tylko sprawdzić czy są dostępne jakieś nowe paczki. Służy do tego polecenie:

yum check-update

Aktualizacja poszczególnych programów

Czasami przydatna okazuje się możliwość aktualizacja poszczególnych programów, np. podczas upgradu dystrybucji. Nie zawsze mamy wystarczającą ilość wolnego miejsca na dysku lub chcemy podzielić cały proces aktualizacji na mniejsze części:

 yum update [nazwa_programu1] [nazwa_programu2] [...]

Tak więc, jeśli chcielibyśmy zaktualizować tylko program hexedit oraz wszystkie, których nazwa zaczyna się od słowa kde, powinniśmy wpisać jako root:

yum update hexedit kde\*

Przed znakiem * występuje znak backslash — bez niego powłoka systemowa próbowałaby zastąpić ciąg kde* nazwami plików występującymi w danym katalogu. W specyficznych sytuacjach polecenie bez backslasha wywołałoby efekt inny od zamierzonego.

Instalacja oprogramowania


Do instalacji programów służy polecenie:

yum install nazwa_programu1 [nazwa_programu2] [...]

Yum sprawdzi, czy podane przez nas programy znajdują się w repozytoriach i następnie je zainstaluje. Zainstalowane zostaną także wszystkie pakiety, które są wymagane do poprawnej pracy instalowanych programów. W związku z tym liczba instalowanych programów może być znacznie większa od ilości podanych przez nas programów.

Usuwanie zainstalowanych programów


Do usuwania zainstalowanych programów służy polecenie:

yum remove nazwa_programu1 [nazwa_programu2] [...]

Zamiast remove można użyć polecenia erase.

Zanim potwierdzi się ostatecznie chęć usunięcia programu, warto się zastanowić czy nie usuwamy ważnych, systemowych paczek, ponieważ analogicznie do instalacji, usunięte zostaną wszystkie pakiety, które do prawidłowego działania wymagały usuwanych przez nasz programów. Należy dokładnie przejrzeć wszystkie usuwane zależności.

Lista dostępnych programów


Do wyświetlania listy wszystkich dostępnych programów służy polecenie:

yum list

lub

yum list all

Wynik takiego polecenia nie będzie jednak nam zbytnio przydatny, gdyż ciężko będzie nam znaleźć określony program wśród kilku tysięcy innych aplikacji ;-) Powyższe polecenie może się raczej przydać tylko do policzenia ilości dostępnych paczek (podpowiedź: należy skorzystać z programu wc).

By zawęzić poszukiwania, należy dodać do polecenie jakiś fragment nazwy programu. Przykładowo, jeśli chcielibyśmy zobaczyć jakie są dostępne paczki z lame w nazwie, należałoby wykonać coś takiego:

[root@Ya]yum list \*lame\*
Wczytane wtyczki: refresh-packagekit
Zainstalowane pakiety
lame.i386                                        3.98.2-2.fc10                                       installed
lame-devel.i386                                  3.98.2-2.fc10                                       installed
lame-libs.i386                                   3.98.2-2.fc10                                       installed
twolame-libs.i386                                0.3.12-3.fc10                                       installed
Dostępne pakiety
lame-mp3x.i386                                   3.98.2-2.fc10                                       rpmfusion-free
msv-relames.i386                                 1:1.2-0.2.20050722.3.4.fc10                         fedora
msv-relames-javadoc.i386                         1:1.2-0.2.20050722.3.4.fc10                         fedora
twolame.i386                                     0.3.12-3.fc10                                       rpmfusion-free
twolame-devel.i386                               0.3.12-3.fc10                                       rpmfusion-free
Tak jak w przypadku innych opcji, tak i tutaj można stosować znaki globalne. Należy tylko pamiętać o backslashach.

W pewnych specyficznych sytuacjach może przydać się również poniższe polecenie

 yum list extras

Wyświetla ono zainstalowane w systemie paczki, których nie ma w dostępnych repozytoriach.

Wyszukiwanie programów po opisie


Często się zdarza, że nie znamy dokładnej nazwy programu, ale wiemy co dany program robi. Z pomocą przychodzi nam wtedy poniższe polecenie:

yum search ciąg_znaków

Yum przeszukuje wtedy wszystkie opisy programów. Zapytania należy stawiać w języku angielskim.

Jeśli chcemy przykładowo znaleźć program do wypalania płyt, możemy wpisać:

yum search burn


Wyszukiwanie paczek zawierających określone pliki


Jeśli chcemy wyszukać pakiet zawierający określony plik, bądź bibliotekę skorzystamy z opcji:
yum provides nazwa_pliku
Przykładowo, szukamy pakietów zawierających libasound.so.2:
[root@X] yum provides libasound.so.2
alsa-lib-1.0.18-6.rc3.fc10.i386 : The Advanced Linux Sound Architecture (ALSA) library
Repozytorium: fedora
Dopasowano z:
Inne        : libasound.so.2

alsa-lib-1.0.19-2.fc10.i386 : The Advanced Linux Sound Architecture (ALSA) library
Repozytorium: updates
Dopasowano z:
Inne        : libasound.so.2

alsa-lib-1.0.19-2.fc10.i386 : The Advanced Linux Sound Architecture (ALSA) library
Repozytorium: installed
Dopasowano z:
Inne        : Wyniki dostarczania: libasound.so.2

Jak widać, biblioteka libasound.so.2 jest dostarczana przez pakiet alsa-lib, jest ona dostarczana wraz z Fedorą (repozytorium fedora), dostępna jest aktualizacja pakietu (updates), która jest już zainstalowana w systemie (installed).

Zamiast provides można użyć whatprovides.

Uzyskiwanie opisu danego programu


Gdy chcemy poznać opis jakiegoś programu, np. przed jego zainstalowaniem, używamy poniższego polecenia:

yum info nazwa_programu1 [nazwa_programu2] [...]
Przykład:
[root@X]yum info k3b
Zainstalowane pakiety
Nazwa              : k3b
Architektura       : i386
Wersja             : 1.0.5
Wydanie            : 6.fc10
Rozmiar            : 25 M
Repozytorium       : installed
Podsumowanie       : CD/DVD burning application for KDE
URL                : http://www.k3b.org
Licencja           : GPLv2+
Opis               : K3b provides a comfortable user interface to perform most CD/DVD
                   : burning tasks. While the experienced user can take influence in all
                   : steps of the burning process the beginner may find comfort in the
                   : automatic settings and the reasonable k3b defaults which allow a quick
                   : start


Operacje na grupach programów


Operacje na poszczególnych paczkach są fajne, ale co zrobić, gdy chcemy zainstalować całe KDE, Gnome lub wsparcie dla danego języka? Yum pozwala operować na takich grupach paczek - należy skorzystać wtedy z poleceń takich jak grouplist, groupinfo, groupinstall, groupremove czy groupupdate.

yum grouplist

Listę dostępnych grup uzyskujemy wpisując poniższe polecenie:

yum grouplist

Możliwe jest również wyświetlenie grup ukrytych:

yum grouplist hidden

yum groupinfo

Mając już listę grup, wypadałoby sprawdzić co taka grupa dostarcza:

yum groupinfo "nazwa_grupy1" ["nazwa_grupy2"] [...]

yum groupinstall

By zainstalować jakąś grupę, w terminalu wpisujemu:

yum groupinstall "nazwa_grupy1" ["nazwa_grupy2"] [...]

Przykładowo, jeśli chcielibyśmy zainstalować programy związane z bazami danych MySQL oraz PostgreSQL, należałoby wydać poniższe polecenie:

yum groupinstall "MySQL Database" "PostgreSQL Database"

yum groupremove

Możliwe jest też usunięcie całej grupy oprogramowania:

yum groupremove "nazwa_grupy1" ["nazwa_grupy2"] [...]

Warto tylko zwrócić uwagę na odinstalowywane zależności.

yum groupupdate

Jeśli chcemy zaktualizować określoną grupę, nie przeprowadzając jednocześnie aktualizacji całego systemu wykonamy polecenie:

yum groupdate "nazwa_grupy1" ["nazwa_grupy2"] [...]

Proszę zwrócić uwagę, że nazwy grup podawane są w cudzysłowach.

Usuwanie plików tymczasowych


Jeśli w pliku yum.conf ustawiliśmy opcję keepcache=1 pobierane pakiety nie będą automatycznie usuwane.

Oczywiście można pozbyć się niepotrzebnych nam już RPM-ów:

yum clean packages

Wydanie powyższej komendy spowoduje ich usunięcie. Można też usunąć tylko dane o dostępnych paczkach:

yum clean headers

Usunięcie wszystkiego na raz też jest możliwe:

yum clean all

W wyniku powyższych operacji kasowane są pliki z katalogu /var/cache/yum (ustawienie domyślne, które można zmienić opcją cachedir).

Opcje wywołania programu


Składnia:

yum [opcje] polecenie nazwa_paczki...

Spis ważniejszcych opcji:

  • -h, –-help — wypisanie pomocy
  • -yyum nie pyta się o potwierdzenie polecenia, tylko je od razu wykonuje. Ostrożnie przy usuwaniu programów!

Odpowiadająca opcja w pliku konfiguracyjnym: assume-yes

  • -c plik_konfiguracyjny — określa położenie pliku konfiguracyjnego. Pozwala na użycie innego pliku konfiguracyjnego niż /etc/yum.conf.
  • –-version — wypisuje wersję programu i kończy jego działanie
  • –-enablerepo=nazwa — pozwala na tymczasowe włączenie repozytorium. Odpowiadająca opcja w pliku konfiguracyjnym: enabled
  • –-disablerepo=nazwa — pozwala na tymczasowe wyłączenie repozytorium. Przydatne w przypadku problemów z zależnościami. Odpowiadająca opcja w pliku konfiguracyjnym: enabled
  • –-exclude=nazwa_paczki — pozwala na tymczasowe wykluczenie danej paczki z całego procesu. Można stosować znaki globalne. Odpowiadająca opcja w pliku konfiguracyjnym: exclude
  • -C — nakazuje wykonywanie wszystkich operacji korzystając tylko z cache’a

Yum nie ściąga wtedy żadnych plików z internetu, co skraca czas operacji typu info, list, provides czy search. Wymagane jest wcześniejsze wydanie polecenia:

yum makecache

Jeśli wykonujemy wiele zapytań po rząd, to można skorzystać również z shella yuma:

yum shell
Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia