Pacman (Polski)
From ArchWiki
i18n |
---|
Česky |
Deutsch |
English |
Español |
Français |
Italiano |
Nederlands |
Polski |
Português de Portugal |
Romanian |
Русский |
简体中文 |
한국어 |
Contents |
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życiu 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.
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.
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
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.
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
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.
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 -U /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.
Konfiguracja
Plik konfiguracyjny pacmana to /etc/pacman.conf
. Są tam dwie główne sekcje:
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.
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.
Powiązane linki
Boost Pacman
Colored Pacman output
Downgrade packages
Redownloading all installed packages
ArchLinux User-community Repository (AUR)
Local repository HOW-TO
Custom local repository with ABS and gensync
Howto Upgrade via Home Network
Pacman GUI Frontends