Pacman (Polski)

From ArchWiki
Jump to: navigation, search

Tango-preferences-desktop-locale-modified.pngThe translation of this article or section does not reflect the original text.Tango-preferences-desktop-locale-modified.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Pacman (Polski)#)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Artykuł wymaga rozszerzenia i sprawdzenia poprawności istniejących już informacji. (Discuss in Talk:Pacman (Polski)#)

Wstęp

Menedżer pakietów Pacman to jedna z głównych atrakcji Arch Linuksa. Łączy w sobie prosty format pakietów binarnych z łatwym w użyciu ABS. Pacman umożliwia łatwe zarządzanie i dostosowywanie pakietów, które są brane z oficjalnego repozytorium Archa oraz repozytorium tworzonego przez użytkowników - AUR. Pacman pozwala na utrzymanie aktualności systemu przez synchronizację listy pakietów z głównym serwerem, powodując tym samym, że utrzymanie systemu dla znającego się na bezpieczeństwie administratora jest trywialne. Poza tym pozwala na ściągnięcie/zainstalowanie kompletnego pakietu z zależnościami prostym poleceniem.

Pacman jest zarówno menedżerem pakietów binarnych, jak i źródłowych. To połączenie pomysłów z Gentoo, Debiana i Slackware, stworzone, by być jednym z najbardziej rozbudowanych menedżerów pakietów, który jednocześnie pozostaje łatwy w użyciu. Pacman potrafi pobierać, instalować i uaktualniać pakiety ze zdalnych oraz lokalnych repozytoriów, z pełną obsługą zależności. Ponad to ma łatwe do opanowania narzędzia do tworzenia własnych pakietów.

Instalacja pakietów

Przed instalacją i aktualizacją pakietów dobrze jest zsynchronizować lokalną bazę pakietów z repozytorium:

# pacman -Syu

Aby zainstalować/zaktualizować jeden bądź kilka pakietów (razem z zależnościami), użyj następującej komendy:

# pacman -S nazwa_pakietu1 nazwa_pakietu2

Czasem jest więcej niż jedna wersja pakietu w różnych repozytoriach (np. extra i testing). Możesz określić, którą chcesz zainstalować:

# pacman -S extra/nazwa_pakietu
# pacman -S testing/nazwa_pakietu

Usuwanie pakietów

Aby usunąć pojedynczy pakiet, zostawiając wszystkie jego zależności:

# pacman -R nazwa_pakietu

Żeby usunąć pakiet wraz z wszystkimi zależnościami, które nie są wymagane przez inne pakiety:

# pacman -Rs nazwa_pakietu

Żeby usunąć pakiet wraz z wszystkimi zależnościami i konfiguracją:

# pacman -Rns nazwa_pakietu

Aktualizacja systemu

Możesz zsynchronizować bazę pakietów oraz zaktualizować swój system wykorzystując łączenie parametrów:

# pacman -Syu

Zapytania do bazy danych

Pacman potrafi przeszukiwać bazę pakietów dla podanego słowa kluczowego. Możesz wpisać część nazwy pakietu, a wyświetlą się wszystkie pakiety, które zawierają podany ciąg znaków. Aby odszukac pakiet w repozytoriach:

# pacman -Ss nazwa_pakietu

Jeśli znasz nazwę pakietu, którego szukasz, możesz wyświetlić o nim informacje:

# pacman -Si nazwa_pakietu

Możesz wyświetlić listę pakietów w danym repozytorium:

# pacman -Sl nazwa_repozytorium

Tak wyświetlisz grupy pakietów (np. gnome):

# pacman -Sg

Tak zaś wyświetlisz pakiety należące do danej grupy:

# pacman -Sg nazwa_grupy

Aby odszukac pakiet tylko wśród zainstalowanych:

# pacman -Qs nazwa_pakietu

Jeśli znasz nazwę zainstalowanego pakietu, możesz wyświetlić o nim informacje:

# pacman -Qi nazwa_pakietu

Aby sprawdzić, które pakiety przestały być zależnościami innych:

# pacman -Qdt

Inne użycie

Pacman jest rozbudowanym narzędziem, dlatego daje ci jeszcze inne możliwości.

Pobranie pakietu bez instalowania go:

# pacman -Sw nazwa_pakietu

Instalowanie pakietu, który jest na dysku (już pobrany):

# pacman -U /ścieżka/do/pakietu/nazwa_pakietu.pkg.tar.gz

Czyszczenie pamięci podręcznej pacmana (/var/cache/pacman/pkg):

# pacman -Scc

Downgrade pakietów

Powodami do dezaktualizacji (wśród wielu innych) okazać się mogą błędy w aktualnej wersji pakietu czy brak funkcjonalności, a także gdy pakiet został zainstalowany eksperymentalnie. Niezależnie od przyczyny, użytkownik zazwyczaj woli wrócić do starszej wersji niż czekać na nową, poprawioną - zajmuje to mniej czasu i jest teoretycznie mniej kłopotliwe.

Dezaktualizacja jednego pakietu w myśl zależności może "pociągnąć" ich więcej. Przykładowo, gdy zainstalowałeś dużą ilość eksperymentalnych i testowych paczek i wyedytowałeś sporą część plików konfiguracyjnych, może być prościej zainstalować system od nowa niż próbować dezaktualizację.

Tak czy inaczej, musisz pamiętać o kilku sprawach:

  • Po pierwsze, możliwe, że będziesz musiał zdezaktualizować więcej niż 1 lub 2 pakiety. Wymagane biblioteki często zmieniają się z wersją programu i ich funkcjonalność może różnić się w stosunku do poprzedniej wersji.
  • Po drugie, musisz sprawdzić, czy potrzebne pliki zostały usunięte z systemu i jeśli tak, czy możesz je pobrać z innego źródła. Repozytoria Archa są aktualizowane bez pozostawiania poprzednich wersji.
  • Po trzecie, musisz być ostrożny ze zmianami w plikach konfiguracyjnych oraz skryptami. Na chwilę obecną będziemy polegać na Pacmanie, dopóki nie będziemy musieli ominąć pewnych zabezpieczeń, włącznie z nadpisywaniem plików.

Wiedz, że te problemy są jednymi z najważniejszych punktów na liście do zrobienia Deweloperów Pacmana. Koncepcja Arch Rolback Machine będzie rozwijana i wciąż czekamy na włączenie tego mechanizmu do menedżera pakietów. Kiedy to nastąpi, całość będzie zautomatyzowana, lecz do tej pory, kieruj się poniższymi instrukcjami.

Pierwsze miejsce, do którego powinieneś się udać w poszukiwaniu poprzedniej wersji pakietu jest /var/cache/pacman/pkg na Twoim komputerze i sprawdzenie, czy został tam zachowany. Warunek jest tylko jeden - jeżeli nie wyczyściłeś pamięci podręcznej Pacmana (pacman -Scc). Jeśli go znalazłeś, zainstaluj go za pomocąpolecenia:

# pacman -U nazwa_pakietu.pkg.tar.xz

Upewnij się, że jest to starsza wersja, a nie ta obecna w systemie. Polecenie usunie zainstalowany pakiet i zastąpi go tym wskazanym przez Ciebie. Nie przywróci automatycznie starych wersji zależności - musisz to zrobić ręcznie przed samym programem. Możesz także zignorować wymagane wersje bibliotek za pomocą przełącznika d. Na przykład:

# pacman -Ud nazwa_pakietu-starsza_wersja.pkg.tar.xz

Jednak, prawdopodobnie wpłynie to negatywnie na stabilność systemu.

Jeśli nie znalazłeś starszej wersji w swoim systemie, sprawdź nieaktualne serwery. Możesz sprawdzić konkretnie które to są ze strony monitorującej stan serwerów. Możesz także sprawdzić jeden z poniższych (Stan na dzień 2 czerwca 2010 roku.)

Gdy już poosiadasz wybraną wersję pakietu, możesz już usunąć najnowszą wersję pakietu X za pomocą polecenia

# pacman -Rd nazwa_pakietu

a następnie zainstalać starszą paczkę używając polecenia:

# pacman -U nazwa_pakietu.pkg.tar.xz

ARM

Arch Rollback Machine (ARM) przechowuje stare wersje pakietów na bieżąco od listopada 2009 roku. Działa również na zasadzie repozytorium, lecz z podawaniem konkretnej daty. Jeśli jesteś ciekaw, czy znajdziesz tam odpowiednią wersję programów, możesz użyć wyszukiwarki.

Budowa nie powinna nikomu sprawić problemu:

Server=http://arm.konnichi.com/rok/miesiąc/dzień/repozytorium/os/architektura-procesora
  • repozytorium - core/extra/community/testing/community-testing
  • architektura-procesora - i686/x86_64

Kiedy już przygotujesz odpowiedni wpis, umieść go w odpowiedniej sekcji pliku /etc/pacman.conf, na przykład:

/etc/pacman.conf
[core]
Server=http://arm.konnichi.com/2010/04/28/core/os/x86_64
Include = /etc/pacman.d/mirrorlist

Wpis musi być koniecznie umiejscowiony między nazwą repozytorium, a zewnętrzną listą serwerów lustrzanych. Następnie zsynchronizuj bazę dostępnych pakietów za pomocą ponizszego polecenia i zdezaktualizuj wybrany pakiet.

# pacman -Syyu

Rekompilacja pakietu

W najgorszym przypadku, jeśli nie znajdziesz nigdzie swojego pakietu, będziesz musiał skompilować starszą wersję samodzielnie. Będziesz potrzebował pliku PKGBUILD pakietu. Możesz go stworzyć samodzielnie, edytować dostarczony przez ABS lub poszukać go tutaj.

Konfiguracja Pacmana

Plik konfiguracyjny pacmana to /etc/pacman.conf. Są tam dwie główne sekcje:

Podstawowe opcje

Podstawowe opcje Pacmana są w sekcji [options].

/etc/pacman.conf
[options]
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
LogFile     = /var/log/pacman.log                                 # Ściezka do pliku z logami Pacmana.
HoldPkg     = pacman glibc
SyncFirst   = pacman                                              # Określasz, jakie pakiety sa najpierw aktualizowane.
XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u             # Określasz, z jakiego menedżera pobierania plików będzie korzystał Pacman
IgnorePkg   = nazwa_pakietu                                       # Określasz, które pakiety nie powinny być aktualizowane.
IgnoreGroup = nazwa_grupy                                         # Określasz, które grupy pakietów nie powinny być aktualizowane.
#NoUpgrade   =
#NoExtract   =
#NoPassiveFtp
#UseSyslog
ShowSize                                                          # Opcja pokazuje sumę MB do ściągnięcia.
#UseDelta
#TotalDownload

Repozytoria

Repozytorium to umieszczony na dowolnym serwerze zbiór pakietów, które można pobrać i zainstalować za pomocą Pacmana. Twórcy dystrybucji utrzymują zbiór oficjalnych repozytoriów skopiowanych dodatkowo w szeregu mirrorów (także w Polsce), jednak każdy może utworzyć własne.

Aby zacząć korzystać z repozytorium, należy dodać odpowiedni wpis do pliku /etc/pacman.conf. Natomiast lista serwerów, wykorzystywanych przy oficjalnych repozytoriach, znajduje się w /etc/pacman.d/mirrorlist. Spis wszystkich serwerów można znaleźć na stronie MirrorStatus. Dodatkowo możliwe jest posegregowanie listy serwerów od najszybszego do najwolniejszego. Wpierw wchodzimy do /etc/pacman.d, a następnie wybieramy plik z listą serwerów:

# rankmirrors mirrorlist

W tym wypadku posegreguje nam listę mirrorów. Po zakończeniu całego procesu program pokaże nam w konsoli posegregowaną listę repozytoriów, którą na przykład możemy zapisać do pliku /etc/pacman.d/mirrorlist-rankmirrors. Zostaje nam tylko zmiana w /etc/pacman.conf wierszy:

Include = /etc/pacman.d/mirrorlist

na

Include = /etc/pacman.d/mirrorlist-rankmirrors

i możemy cieszyć się szybkimi (albo i nie) mirrorami.

Lista mirrorów znajduje się w pakiecie pacman-mirrorlist.

# pacman -S --force pacman-mirrorlist

Oficjalne repozytoria:

  • [core]

Repozytorium [core] można znaleźć w .../core/os/i686 lub .../core/os/x86_64 na dowolnym mirrorze Archa. Zawiera ono podstawowe paczki Archa i kilka dodatkowych niezbędnych programów, jak edytor tekstu czy program ładujący.

  • [extra]

Repozytorium [extra] można znaleźć w .../extra/os/i686 bądź .../extra/os/x86_64 na dowolnym mirrorze Archa. Zawiera ono wszystkie paczki nie znajdujące się w core, gdyż nie są potrzebne do podstawowego uruchomienia systemu. Przykładowo można tutaj znaleźć paczki z GNOME i KDE.

  • [community]

Repozytorium [community] można znaleźć w .../community/os/i686 lub .../community/os/x86_64 na dowolnym mirrorze Archa. Jest ono zarządzane przez TU - Zaufanych użytkowników i jest częścią AUR. Zawiera paczki będące częścią AUR, które mają dużą ilość głosów i zostały zaakceptowane przez TU.

  • [community-testing]

Repozytorium [community-testing] można znaleźć w .../community-testing/os/i686 lub .../community-testing/os/x86_64 na dowolnym mirrorze Archa. Tu znajdują się testowe pakiety, które po pewnym czasie powinny trafić do repozytorium [community]. Niezalecane początkującym.

  • [testing]

Repozytorium [testing] można znaleźć w .../testing/os/i686 lub .../testing/os/x86_64 na dowolnym mirrorze Archa. Zawiera ono paczki które kandydują do repozytoriów [core] bądź [extra]. Używając [testing] można napotkać się z konfliktami nazw pakietów. Jeśli zamierzasz je uaktywnić, musi być ono jako pierwsze repozytorium w /etc/pacman.conf. Bądź ostrożny. Twój system może ulec awarii po aktualizacji systemu z włączonym tym właśnie repozytorium. Tylko doświadczeni użytkownicy powinni go używać.

  • [gnome-unstable]

Testowe, teoretycznie niestabilne pakiety dla środowiska GNOME. Niezalecane początkującym.

  • [kde-unstable]

Testowe, teoretycznie niestabilne pakiety dla środowiska KDE. Niezalecane początkującym.

Optymalizacja Pacmana

Baza danych

Pacman trzyma wszystkie informacje o pakietach w małych plikach, po jednym na pakiet. Przyśpieszenie bazy danych znacznie redukuje czas - przykładowo przeszukiwania lub rozwiązywania zależności. Najbezpieczniejszą i najprostszą metodą jest wykonanie poleceniea:

# pacman-optimize && sync

Prędkość pobierania pakietów

Prędkość pobierania pakietów może być większa dzięki używaniu niestandardowych menedżerów pobierania. Domyślnie Pacman korzysta z własnego i wbudowanego, jednak nic nie stoi na przeszkodzie, by go zastąpić innym programem.

  • wget
# pacman -S wget

Następnie dodajemy do sekcji [options] w pliku /etc/pacman.conf:

/etc/pacman.conf
XferCommand = /usr/bin/wget -c --passive-ftp -c %u
  • aria2

Jest to menedżer pobierania obsługujący wstrzymywanie i pobieranie segmentowe. Segmentowe znaczy, że tworzy kilka połączeń z serwerem (lub kilkoma) w tym samym czasie,czego efektem jest krótszy czas pobrania pakietu.

# pacman -S aria2

Następnie dodajemy do sekcji [options] w pliku /etc/pacman.conf:

/etc/pacman.conf
XferCommand = /usr/bin/aria2c –no-conf -c -s 2 -m 2 -d / -o %o %u
  • snarf
# pacman -S snarf

Następnie dodajemy do sekcji [options] w pliku /etc/pacman.conf:

/etc/pacman.conf
XferCommand = /usr/bin/snarf -N %u
  • lftp
# pacman -S lftp

Następnie dodajemy do sekcji [options] w pliku /etc/pacman.conf:

/etc/pacman.conf
XferCommand = /usr/bin/lftp -c pget %u
  • axel
# pacman -S axel

Następnie dodajemy do sekcji [options] w pliku /etc/pacman.conf:

/etc/pacman.conf
XferCommand = /usr/bin/axel -n 2 -v -a -o %o %u

Pacman GUI

Najpopularniejszym GUI dla Pacmana w przypadku GNOME jest GtkPacman. Jego zalety to prostota i stabilność. W przypadku KDE zalecany jest Shaman.

Nakładki na Pacmana

Note: Za nakładki na Pacmana z innych źródeł, niż oficjalne repozytoria, deweloperzy nie ponoszą odpowiedzialności.

Powerpill

Powerpill jest nakładką na Pacmana, napisaną przez Xyne, która przyspiesza jego działanie przy użyciu pakietu aria2c.

Przykład działania: Podczas aktualizacji systemu [pacman-Syu] wynik zawiera 20 pakietów ważących łącznie 200 MB. W przypadku Pacmana może być pobierany tylko jeden plik w danej chwili. Natomiast dzięki Powerpill będą one pobierane równocześnie, nierzadko z większą prędkością (w zależności od posiadanego łącza, dostępności pakietów na serwerach, a także obciążenia serwera).

Pakiet znajduje się w [community], zatem wystarczy wydać w konsoli poniższe polecenie:

# pacman -S powerpill

Konfiguracja Powerpill znajduje się w pliku /etc/powerpill.conf.

Składnia poleceń Powerpill jest bardzo podobna do tych w Pacmanie, np.:

  • Aby zaktualizować system, wystarczy wpisać:
# powerpill -Syu
  • Aby zainstalować pakiet:
# powerpill -S nazwa_pakietu

Domyślnie Powerpill jest skonfigurowany do używania narzędzia Reflector, które pomaga ustawić najszybsze mirrory. Zalecane jest zrobienie kopii zapasowej:

# mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

Poniższe polecenie wybierze 5 najszybszych mirrorów i umieści odpowiednie wpisy w /etc/pacman.d/mirrorlist nadpisując wcześniejszą zawartość:

# reflector -f 5 -r -o /etc/pacman.d/mirrorlist

Zobacz również:

Narzędzia Pacmana

Innymi narzędziami [nieobowiązkowymi] do obsługi Pacmana są: