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

[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

Personal tools