Pacman (Česky)

From ArchWiki

Jump to: navigation, search


i18n
Česky
Deutsch
English
Español
Français
Italiano
Nederlands
Polski
Português de Portugal
Romanian
Русский
简体中文
한국어

Contents

Přehled

Správce balíčků Pacman je jedna z nejlepších věcí na Arch Linuxu. Kombinuje binární formát balíčku a easy-to-use system (více ABS). Pacman umožnuje snadno spravovat a případně upravovat balíčky, které můžou být buď z oficiálních Arch repozitářů nebo si je uživatel vytvořil sám. Systém repozitářů umožnuje uživatelům vytvořit a udržovat jejich vlastní balíčky v repozitářích, což povzbuzuje komunitu k přispívání (více AUR).

Pacman umí udržovat systém stále aktuální pomocí synchronizace seznamu balíčků s hlavním serverem, díky tomu máte vždy aktuální a bezpečný software. Tento server/client model vám také umožnuje stahovat/instalovat balíčky jediným příkazem, kompletně se všemi závistlostmi (podobně jako apt-get u Debianu).

NB: Pacman napsal a začal udržovat Judd Vinet, tvůrce Arch Linuxu. Je ale také používán jako správce balíčků v jiných distribucích FrugalWare (více [[1]]), Rubix, UfficioZero a samozřejmě Arch Linux-odvozeniny jako Archie a AEGIS.

Použití

Pacman je jak binární tak zdrojový správce balíčků. To kombinuje mnoho nápadů z FreeBSD, Debianu a Slackwaru do skupiny rozsáhlých a snadno použitelných správců balíčků dostupných pro GNU/Linux. Pacman umožnuje stáhnout, instalovat a upgradovat balíčky jak z lokálního tak vzdáleného repozitáře s plnou podporou řešení závislostí a snadnými nástroji pro tvorbu vlastních balíčků.

Instalování a odebírání balíčků

Před instalováním nebo upgradováním balíčků, není špatný nápad synchronizovat lokální seznam balíčků se vzdálenými repozitáři.

pacman -Sy

Pro instalaci nebo upgrade balíčku nebo seznamu balíčků (včetně závislostí), zadejte následující příkaz:

pacman -S jméno_balíčku1 jméno_balíčku2

Někdy najdete různé verze balíčků v jiných depozitářích (např. extra a testing). Můžete provést specifikaci následujícím způsobem:

pacman -S extra/jméno_balíčku
pacman -S testing/jméno_balíčku

Můžete kombinovat parametry do jediného příkazu. Napříkald pro synchronizaci a následnou instalaci napište:

pacman -Sy jméno_balíčku

Pro odstranění jediného balíčku napište následující (všechny závislosti zůstanou nainstalovány):

pacman -R jméno_balíčku

Pro odinstalování nějakého balíčku společně se závistlostmi které jiný program nepoužívá použijte:

pacman -Rs jméno_balíčky

Upgrade systému

Pacman umí upgradovat všechny nainstalované balíčky jedním příkazem. Díky tomu můžete mít vždy aktuální systém rychle a jednoduše.

pacman -Su

Pozn: můžete synchronizovat databázi balíčků a provést upgrade jediným příkazem:

pacman -Syu

Databáze balíčků

Pacman může prohledat databázi pro seznam balíčků, můžete zadat část názvu pokud nevíte přesný název.

pacman -Ss balíček

Takto můžete prohledat již nainstalované balíčky:

pacman -Qs balíčky

Pokud si nejste jisti že vyhledaný balíček je přesně to co chcete můžete si o něm zobrazit podrobnější informace.

pacman -Si balíček  
pacman -Qi balíček

Pro seznam souborů obsažených v balíčku napište jen:

pacman -Ql balíček

Zpětně můžete i zjistit jaký soubor náleží k jakému balíčku.

pacman -Qo /cesta/k/souboru

Souběžné prohledávání repozitářů a instalovaných balíčků

Můžete použít následující bashový script pro tvorbu ekvivalentu současného hledání pacman -Ss foo a pacman -Qs foo, pro zjištění zda je balíček aktuálně nainstalován na vašem počítači. Poslední bude označen pomocí Asterisk.

#!/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

Uložte si script někde v počítači (např. ~/bin/) a pojmenujte ho pacsearch. Udělejte ho spustitelným pomocí chmod a+x pacsearch.

Nyní pokud například napíšete:

pacsearch ^qt

výstup bude vypadat takto:

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

Takto můžete snadno vidět které balíčky jsou na vašem počítači instalovány a které nikoliv.

Pozn: můžete modifikovat bashový script tak aby byl výstup barevný pomocí tohoto návodu a získat tak větší přehlednost.

Ostatní použití

Pacman je perfektní na správu balíčků ale umí i jiné věci.

  • Stáhnutí balíčku bez instalace:
pacman -Sw jméno_balíčku
  • Instalace lokálního balíčku (ne z repozitáře):
pacman -A /cesta/k/balíčku/jméno_balíčku-verze.pkg.tar.gz
  • Vyčistění cache Pacmana (/var/cache/pacman/pkg):
pacman -Scc

Více detailů získáte napsáním pacman --help nebo man pacman.

Konfigurace

Konfigurační soubor Pacmana je /etc/pacman.conf. V tomto souboru naleznete dvě základní sekce:

Hlavní nastavení (General options)

Hlavní nastavení je v sekci [options]. Můžete zde snadno nastavit jaké balíčku nebudete chtít upgradovat. To je důležité např. pro souborové systémy. Syntaxe je velice jednoduchá:

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

Další důležitý parametr je IgnorePkg. Pro příklad pokud máte nastavený a opatchovaný určitý balíček, přidáním do řádky IgnorePkg zabrání pacmanovy aby ho upgradoval i když bude k dispozici novější verze. Pacman vás upozorní že existuje novější verze ale k žádným zásahům nedojde. Tento parametr je dobrý např pro velké balíčky jako je Openoffice pokud jej nechcete stahovat a upgradovat pokaždé co vyjde nějaká změna. Pacman vás na to jen upozorní a můžete kdykoliv upgradovat ručně budete-li chtít.

Repozitáře (Repositories)

V této sekci specifikujete jaké depozitáře chcete používat. Můžete je definovat rychle nebo přidat z jiného souboru. Druhý zmíněný je použitelnější pro oficiální repozitáře které mají mnoho mirrorů.

[repository-name]
Server = ftp://server.net/repo
[current]
# Zde vložte vaše oblíbené servery, budou preferovány
Include = /etc/pacman.d/current

Pro více informací zadejte man pacman.

Viz také

Personal tools