arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
476 lines (281 loc) • 18.3 kB
Markdown
## Contents
* [1 Wstęp](#Wst.C4.99p)
* [2 Instalacja pakietów](#Instalacja_pakiet.C3.B3w)
* [3 Usuwanie pakietów](#Usuwanie_pakiet.C3.B3w)
* [4 Aktualizacja systemu](#Aktualizacja_systemu)
* [5 Zapytania do bazy danych](#Zapytania_do_bazy_danych)
* [6 Inne użycie](#Inne_u.C5.BCycie)
* [7 Downgrade pakietów](#Downgrade_pakiet.C3.B3w)
* [8 Konfiguracja Pacmana](#Konfiguracja_Pacmana)
* [8.1 Podstawowe opcje](#Podstawowe_opcje)
* [8.2 Repozytoria](#Repozytoria)
* [8.3 Optymalizacja Pacmana](#Optymalizacja_Pacmana)
* [9 Pacman GUI](#Pacman_GUI)
* [10 Nakładki na Pacmana](#Nak.C5.82adki_na_Pacmana)
* [10.1 Powerpill](#Powerpill)
* [11 Narzędzia Pacmana](#Narz.C4.99dzia_Pacmana)
## 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](/index.php/Arch_Build_System_(Polski) "Arch Build System (Polski)"). 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](/index.php/Arch_User_Repository_(Polski) "Arch User Repository (Polski)"). 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](https://www.archlinux.de/?page=MirrorStatus;orderby=syncdelay;sort=1). Możesz także sprawdzić jeden z poniższych (Stan na dzień 2 czerwca 2010 roku.)
* [mirrors.sohu.com](http://mirrors.sohu.com/archlinux/)
* [archlinux.umflint.edu](http://archlinux.umflint.edu/)
* [schlunix.org](http://schlunix.org/?page_id=11)
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](http://arm.konnichi.com/) (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](http://arm.konnichi.com/search/).
Budowa nie powinna nikomu sprawić problemu:
```
Server=[http://arm.konnichi.com/rok/miesiąc/dzień/repozytorium/os/architektura-procesora](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](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](/index.php/Arch_Build_System_(Polski) "Arch Build System (Polski)") lub poszukać go [tutaj](https://www.archlinux.org/packages/).
## 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](https://www.archlinux.de/?page=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](https://www.archlinux.org/packages/?name=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](https://aur.archlinux.org/packages.php?ID=8027). Jego zalety to prostota i stabilność. W przypadku KDE zalecany jest [Shaman](https://aur.archlinux.org/packages.php?ID=15422).
## 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](http://xyne.archlinux.ca/), 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ż:
* [- Xyne's Arch Linux Stuff - Powerpill](http://xyne.archlinux.ca/projects/powerpill)
## Narzędzia Pacmana
Innymi narzędziami [nieobowiązkowymi] do obsługi Pacmana są:
* [ArchUp](https://aur.archlinux.org/packages.php?ID=35792)
* [Chase](https://aur.archlinux.org/packages.php?ID=29567)
* [Pacman Notifier](https://aur.archlinux.org/packages.php?ID=15193)