Pacman (Polski)
From ArchWiki
| i18n |
|---|
| Česky |
| Deutsch |
| English |
| Español |
| Français |
| Italiano |
| Nederlands |
| Polski |
| Português de Portugal |
| Romanian |
| Русский |
| 简体中文 |
| 한국어 |
Contents |
[edit] Ogólne
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żywaniu ABS. Pacman umożliwia łatwe zarządzanie i dostosowywanie pakietów, a pakiety te brane są z oficjalnego repozytorium Archa oraz repozytorium tworzonego przez użytkowników. Repozytorium użytkowników pozwala na budowanie i opiekowanie się własnymi pakietami (zobacz AUR).
Pacman pozwala na utrzymanie aktualności systemu przez synchronizację listy pakietów z głównym serwerem, tym samym powodując, że utrzymanie systemu dla znającego się na bezpieczeństwie administratora jest trywialne. Poza tym pozwala ci na ściągnięcie/zainstalowanie kompletnego pakietu z zależnościami prostym poleceniem (podobnie do debianowego apt-get).
Menedżer został napisany i jest rozwijany przez Judda Vineta - autora Arch Linuksa, ale jest używany z powodzeniem także w innych dystrybucjach, takich jak FrugalWare (zobacz także [1]), Rubix, UfficioZero i oczywiście w dystrybucjach archopochodnych - Archie oraz AEGIS.
[edit] Używanie
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. Ponadto ma łatwe do opanowania narzędzia do tworzenia własnych pakietów.
[edit] Instalowanie i usuwanie pakietów
Przed instalacją i aktualizacją pakietów dobrze jest zsynchronizować lokalną bazę pakietów z repozytorium.
pacman -Sy
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
Możesz także łączyć parametry, dla przykładu to spowoduje zarówno synchronizację bazy, jak i zainstalowanie pakietu:
pacman -Sy nazwa_pakietu
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
[edit] Aktualizowanie systemu
Pacman potrafi uaktualnić wszystkie pakiety w systemie zaledwie jedną komendą. To może zająć chwilę, w zależności od tego jak bardzo stary masz system:
pacman -Su
Możesz zsynchronizować bazę pakietów ORAZ zaktualizować swój system wykorzystując łączenie parametrów:
pacman -Syu
Dobrym nawykiem jest uruchamianie tej komendy co kilka dni.
[edit] Zapytania do bazy danych
Pacman potrafi przeszukiwać bazę pakietów dla podanego słowa kluczowego. Możesz wpisać część nazwy pakietu, a pacman wyświetli wszystkie pakiety, które zawierają podany ciąg znaków.
pacman -Ss pakiet
Aby przeszukać tylko zainstalowane pakiety:
pacman -Qs pakiet
Jeśli znasz nazwę pakietu, którego szukasz, możesz wyświetlić o nim informacje:
pacman -Si pakiet pacman -Qi pakiet
Aby wylistować pliki, które są częścią pakietu:
pacman -Ql pakiet
Możesz także dowiedzieć się z jakiego pakietu pochodzi interesujący cię plik:
pacman -Qo /ścieżka/do/pliku
[edit] Równoczesne szukanie w repozytoriach oraz zainstalowanych pakietach
Możesz używać poniższego bashowego skryptu do porównywania wyników komend pacman -Ss foo i pacman -Qs foo, aby zobaczyć które z wylistowanych pakietów już są zainstalowane. Będą one oznaczone gwiazdką.
#!/bin/bash if [ -z "$1" ]; then echo "usage: pacsearch [regex pattern]" echo "usage: pacsearch -h|--help" exit 0 fi if [ "$1" = "-h" -o "$1" = "--help" ]; then echo "usage: pacsearch [regex pattern]" echo " Like pacman -Ss [regex pattern] but installed packages are flagged with a *" echo "usage: pacsearch -h|--help" echo " Prints this message. No other options allowed" exit 0 fi firstchar=`echo "$1" | cut -c1` if [ $firstchar = "-" ]; then echo "Sorry, $1 is not a valid option!" echo "usage: pacsearch [regex pattern]" echo "usage: pacsearch -h|--help" exit 0 fi instpkg=`pacman -Qs $1 | egrep '^[^ ]' | sed 's|^local/||' | sed 's/ .\+$//'` syncdump=`mktemp` pacman -Ss $1 > $syncdump for pkg in $instpkg; do sed -i "s@^\(.\+/$pkg\) @\*\1 @" $syncdump done cat $syncdump
Zapisz skrypt gdziekolwiek w miejscu do tego przeznaczonym (np. ~/bin/) i nazwij go pacsearch. Nadaj mu prawa wykonywalności:
chmod a+x pacsearch
Teraz gdy wpiszesz:
pacsearch ^qt
powinieneś ujrzeć coś w rodzaju:
extra/qca 1.0-1 QT Cryptography Architecture extra/qsynth 0.2.5-1 Qt GUI for fluidsynth *extra/qt 3.3.5-8 The QT gui toolkit. extra/qt-doc 3.3.5-1 The QT gui toolkit documentation. extra/qtella 0.6.5-1 Qtella is a Gnutella client for Linux using QT extra/qtiplot 0.7.7-1 Data analysis and scientific plotting - free clone of Origin extra/qtparted 0.4.5-3 A Partition Magic clone written in C++ using the Qt toolkit extra/qwt 4.2.0-3 Qt Widgets for Technical Applications extra/qwtplot3d 0.2.6-2 Qt/OpenGL-based C++ programming library containing 3d-widgets
Zatem dowiedziałeś się, że żaden z szukanych przez ciebie pakietów poza qt nie jest zainstalowany.
Możesz zmodyfikować powyższy skrypt wzorując się na tym dokumencie, aby wyróżniać zainstalowane pakiety kolorami.
[edit] Inne użycie
Pacman jest rozbudowanym narzędziem, dlatego daje ci jeszcze inne możliwości.
- Pobranie pakietu bez instalowania go:
pacman -Sw package_name
- Instalowanie pakietu, który jest na dysku (już pobrany):
pacman -A /path/to/package/package_name-version.pkg.tar.gz
- Czyszczenie pamięci podręcznej pacmana (/var/cache/pacman/pkg):
pacman -Scc
Jeśli chcesz dowiedzieć się więcej, wpisz w swoim terminalu man pacman.
[edit] Konfiguracja
Plik konfiguracyjny pacmana to /etc/pacman.conf. Są tam dwie główne sekcje:
[edit] Podstawowe opcje
Podstawowe opcje są w sekcji [options]. Możesz określić, które pliki nie powinny być aktualizowane. Bardzo przydatne dla ważnych plików systemowych. Składnia jest bardzo prosta:
NoUpgrade = etc/passwd etc/group etc/shadow etc/sudoers NoUpgrade = etc/fstab etc/raidtab etc/ld.so.conf NoUpgrade = etc/rc.conf etc/rc.local NoUpgrade = etc/modprobe.conf etc/modules.conf NoUpgrade = etc/lilo.conf boot/grub/menu.lst
Inną przydatną opcją jest IgnorePkg. Dla przykładu - jeśli zmodyfikowałeś lub załatałeś pewny pakiet, dodajesz go do linijki IgnorePkg, aby pacman nie zaktualizował go, gdy wyjdzie nowa wersja ów pakietu. Mimo to pacman będzie informował cię o najnowszej wersji, dlatego będziesz mógł zdecydować, czy aktualizować przerobiony przez Ciebie pakiet.
Oprócz tego, ta opcja przydaje się przy WIELKICH pakietach, jak openoffice-base, gdy chcesz unikać ściągania i aktualizowania tego pakietu za każdym razem, gdy w repozytorium pojawi się jego nowa wersja.
[edit] Repozytoria
W tej sekcji decydujesz, których repozytoriów chcesz używać. Ich konfiguracja może być zawarta w samym pacman.conf albo dołączana z odrębnych plików. To drugie rozwiązanie jest dobre dla oficjalnych repozytoriów, gdzie serwerów lustrzanych jest dużo.
[repository-name] Server = ftp://server.net/repo
[current] # Tutaj dodaj swoje ulubione serwery, będą używane jako pierwsze Include = /etc/pacman.d/current
Po więcej informacji odsyłam do man pacman.
[edit] Powiązane linki
Boost Pacman
Colored Pacman output
Downgrade packages
Redownloading all installed packages
Server configuration in pacman.conf
ArchLinux User-community Repository (AUR)
Local repository HOW-TO
Custom local repository with ABS and gensync
Howto Upgrade via Home Network
Pacman GUI Frontends