Pacman (Polski)

From ArchWiki

Jump to: navigation, search
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
Uwaga: Zanim użyjesz tego polecenia, przeczytaj Downgrade packages. Lepszym rozwiązaniem może być Clean Cache

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

Personal tools