Pacman/Pacnew and Pacsave (Česky)

From ArchWiki
< Pacman
Revision as of 05:31, 6 July 2010 by Warriant (talk | contribs) (Present)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Na začátek

Při upgradech nebo odstraňování balíčků vás Pacman čas od času informuje o souborech (obvykle konfiguračních v Template:Codeline), jenž jsou instalovány s příponou Template:Filename nebo zálohovány s příponou Template:Filename.

Soubor Template:Filename může být vytvořen při upgradu balíčku (Template:Codeline, Template:Codeline nebo Template:Codeline), aby se zamezilo přepsání již existujícího souboru, který byl předtím změněn uživatelem. Když tato situace nastane, ve výstupu pacmanu se objeví zpráva podobná následující:

warning: /etc/pam.d/usermod installed as /etc/pam.d/usermod.pacnew

Soubor Template:Filename může být vytvořen při odstraňování balíčku (Template:Codeline) nebo jeho upgradu (balíček musí být nejdříve odstraněn). Když má databáze pacmanu záznam o tom, že by měl být jistý soubor vlastněný balíčkem zálohován, vytvoří soubor Template:Filename. Když tato situace nastane, pacman zobrazí zprávu podobnou následující:

warning: /etc/pam.d/usermod saved as /etc/pam.d/usermod.pacsave

Tyto soubory vyžadují ruční zásah uživatele a je dobrým zvykem po každém upgradu nebo odstranění balíčku tuto situaci nějak vyřešit. V opačném případě mohou nesprávné konfigurace vyústit ve špatnou funkci softwaru nebo jeho neschopnost se vůbec spustit.

backup soubory balíčků

Soubor Template:Filename balíčkům určuje, které soubory mají být při upgradu nebo odstranění dotyčného balíčku zachovány nebo zálohovány. Například Template:Filename pro Template:Codeline obsahuje následující řádek:

backup=('etc/pulse/client.conf' 'etc/pulse/daemon.conf' 'etc/pulse/default.pa')

Popis druhů

Různé druhy *.pac* souborů.

.pacnew

Pro každý Template:Codeline soubor, který je v právě upgradovaném balíčku, pacman vzájemně porovnává tři kontrolní součty MD5 generované z obsahu daného souboru: jeden součet pro verzi nainstalovanou původním balíčkem, jeden pro verzi momentálně sídlící v souborovém systému a jeden pro verzi z nového balíčku. Pokud současná verze ze souborového systému byla v minulosti ručně upravena, pacman nedokáže sloučit tyto změny s novou verzí souboru. Proto při upgradu namísto přepisování změněného souboru pacman uloží novou verzi s příponou Template:Filename a ponechá stávající změnenou verzi nedotčenou.

Pokud zajdeme více do detailů, toto trojcestné srovnání součtů MD5 může skončit s jedním z následujících výsledků:

původní = X, současný = X, nový = X 
Všechny tři verze souboru mají shodný obsah, přepsání tedy není problém. Přepsat současnou verzi novou verzí a neoznamovat nic uživateli. (I když je obsah souboru shodný, toto přepsání zaktualizuje v souborovém systému informace ohledně času instalace, změny a přístupu k souboru. Zajistí též jakoukoliv změnu přístupových práv souboru.)
původní = X, současný = X, nový = Y 
Obsah současné verze je shodný s původní, ale nová verze je rozdílná. Jelikož uživatel v minulosti neupravil současnou verzi a nová verze může obsahovat vylepšení nebo opravy, přepsat současnou verzi novou verzí a neoznamovat nic uživateli. Toto je jediné automatické slučování změn, které pacman dokáže vykonávat.
původní = X, současný = Y, nový = X 
Původní balíček a nový balíček oba obsahují shodnou verzi souboru, ale verze momentálně sídlící v souborovém systému byla změněna. Ponechat současnou verzi, jak je, a zahodit novou verzi bez oznámení uživateli.
původní = X, současný = Y, nový = Y 
Nová verze je shodná se současnou. Přepsat současnou verzi novou verzí a neoznamovat nic uživateli. (I když je obsah souboru shodný, toto přepsání zaktualizuje v souborovém systému informace ohledně času instalace, změny a přístupu k souboru. Zajistí též jakoukoliv změnu přístupových práv souboru.)
původní = X, současný = Y, nový = Z 
Všechny tři verze jsou rozdílné. Ponechat současnou verzi, nainstalovat novou verzi s příponou Template:Filename a varovat uživatele ohledně nové verze. Od uživatele se očekává, že ručně sloučí jakékoliv nutné změny z nové verze do té současné.

.pacsave

Pokud uživatel změnil některý ze souborů jmenovaných v Template:Codeline, pak bude k tomuto souboru přidána přípona Template:Filename a zůstane v souborovém systému i poté, co bude odstraněn zbytek balíčku.

Note: Použití volby -n spolu s pacman -R způsobí kompletní odstranění všech souborů v zadaném balíčku. Žádné .pacsave soubory tedy vytvořeny nebudou.

.pacorig

Když je při instalaci balíčku spatřen soubor (obvykle nějaká konfigurace v Template:Filename), který nepatří žádnému nainstalovanému balíčku, ale je vypsán v poli Template:Codeline pro momentálně zpracovávaný balíček, bude uložen s příponou Template:Filename a nahrazen verzí z balíčku. To se obvykle stává, když je konfigurační soubor přesunut z jednoho balíčku do jiného. Pokud takový soubor není součástí pole Template:Codeline, pacman oznámí konflikt souborů a ukončí svoji činnost.

Note: Jelikož .pacorig soubory vznikávají za zvláštních okolností, není pro jejich zpracování žádný jednotný postup. Pokud se o tomto případu ví, obvykle naleznete řešení tohoto konfliktu na Arch News.

Lokalizace *.pac* souborů

Arch Linux pro Template:Filename soubory neposkytuje žádné oficiální nástroje. Budete je muset řešit sami; několik pomocných nástrojů je předvedeno v následující sekci. Pro ruční řešení budete nejprve muset tyto soubory nalézt. Při upgradu nebo odstraňování velkého počtu balíčků mohou být *.pac* soubory snadno přehlédnuty. Abyste zjistili, zda byly jakékoliv *.pac* vytvořeny:

Pro jednoduché hledání v místě, kde je uložena většina globálních konfigurací:

find /etc -name "*.pac*"

nebo na celém disku:

find / -name "*.pac*"

Případně pro jejich vyhledání použijte logy z pacmana:

egrep "pac(new|orig|save)" /var/log/pacman.log

Poznámka: z logu přímo nezjistíte, které z těchto souborů jsou momentálně ještě v souborovém systému a které již byly smazány.

Nástroje pro soubory .pacnew

Jakmile máte všechny existující Template:Filename soubory lokalizovány, můžete je vyřešit ručně pomocí běžných nástrojů pro slučování, např. vimdiff (anglicky), ediff (součást emacsu), meld (grafický nástroj pro Gnome) nebo Kompare (grafický nástroj pro KDE). Poté Template:Filename soubory smažte.

V repozitáři community a uživatelském repozitáři (AUR) je dostupných několik utilit, které poskytují různou úroveň automatizace těchto úkolů:

  • Dotpac - Základní interaktivní skript s textovým rozhraním založeným na ncurses a užitečnou nápovědou. Žádné pomůcky pro ruční ani automatické slučování.
  • pacdiff - Velmi minimální a nezdokumentovaný konzolový skript. Je součástí balíčku Template:Codeline v repozitáři community.
  • pacdiffviewer - Plnohodnotný interaktivní konzolový skript se schopností automatického slučování. Je součástí balíčku yaourt.
  • diffpac - Samostatná náhražka za pacdiffviewer.

Zdroje