deb-control(5) format głównego pliku pakietu Debiana

SKŁADNIA

control

OPIS

Każdy pakiet Debiana zawiera główny plik "control", składający się z pewnej liczby pól lub linii komentarza, czyli linii zaczynających się znakiem "#". Każde pole zaczyna się od identyfikatora, takiego jak Package lub Version (wielkość liter nie ma znaczenia), po którym następują dwukropek oraz wartość pola. Pola są rozdzielane od siebie identyfikatorami pól. Innymi słowy, tekst pola może się składać z wielu linii, jednakże narzędzia instalacyjne połączą te linie podczas przetwarzania wartości pola (z wyjątkiem pola Description, patrz niżej).

POLA WYMAGANE

Package: <nazwa pakietu>
Wartość tego pola określa nazwę pakietu i przez większość narzędzi instalacyjnych jest używana do generowania nazw plików.
Version: <oznaczenie wersji>
Zazwyczaj jest to oryginalna wersja pakietu w takiej postaci, jakiej używa autor pakietu. Może także zwierać wersję zmian pakietu Debiana (dla pakietów nienatywnych). Dokładny format i algorytm sortowania są opisane w deb-version(5).
Maintainer: <pełna-nazwa e-mail>
Powinna być w formacie "Jan Nowak <[email protected]>" i zazwyczaj oznacza osobę, która utworzyła pakiet (a nie osobę, która jest autorem programu).
Description: <krótki opis>
<długi opis>
Format opisu pakietu jest następujący: pierwsza linia (zaraz po polu "Description") zawiera krótkie podsumowanie. Kolejne linie powinny zawierać dłuższy, bardziej szczegółowy opis. Każda linia długiego opisu musi być poprzedzona znakiem spacji, a linie, które mają być puste, powinny zawierać pojedynczą kropkę (".") poprzedzoną znakiem spacji.

POLA NIEWYMAGANE

Section: <sekcja>
Jest to ogólne pole zawierające kategorię pakietu bazowaną na oprogramowaniu, które zawiera. Niektóre częściej występujące sekcje to: "utils", "net", "mail", "text", "x11" itp.
Priority: <priorytet>
Ustawia ważność pakietu w stosunku do całego systemu. Najczęściej używane priorytety to: "required" (wymagany), "standard" (standardowy) , "optional" (opcjonalny), "extra" (dodatkowy) itp.

W Debianie pola Section i Pririty mają ściśle zdefiniowany zbiór akceptowalnych wartości opisany w Zasadach polityki Debiana. Listę tych wartości można znaleźć w najnowszej wersji pakietu debian-policy.

Essential: <yes|no>
To pole jest użyteczne tylko, gdy jego wartością jest "yes". Oznacza ono, że pakiet jest niezbędny do poprawnego działania systemu. Ani dpkg, ani żadne inne narzędzie instalacyjne nie pozwolą usunąć pakietu oznaczonego jako Essential (chyba, że użyje się specjalnej opcji wymuszającej usunięcie takiego pakietu).
Architecture: <architektura|all>
Architektura określa, dla jakiego typu maszyn pakiet został skompilowany. Zwyczajowe architektury to "i386", "m68k", "sparc", "alpha", "powerpc" itp. Uwaga: opcja all oznacza, że pakiet jest niezależny od architektury - na przykład zawiera tylko skrypty powłoki lub Perla albo dokumentację.
Origin: <nazwa>
Nazwa dystrybucji, z której pochodzi pakiet.
Bugs: <url>
URL systemu zgłaszania błędów dla tego pakietu. Obecnie używanym formatem jest is <typ_bts>://<adres_bts>, na przykład: debbugs://bugs.debian.org.
Homepage: <url>
URL do strony domowej projektu.
Tag: <lista znaczników>
Lista znaczników opisujących cechy pakietu. Opis i listę obsługiwanych znaczników można znaleźć w pakiecie debtags.
Source: <nazwa źródła>
Nazwa pakietu źródłowego, na podstawie którego został utworzony dany pakiet binarny, jeżeli jest różna od nazwy tego pakietu binarnego.
Depends: <lista pakietów>
Lista pakietów potrzebnych temu pakietowi, aby mógł dostarczyć znaczącą część swojej funkcjonalności. Narzędzia do zarządzania pakietami nie pozwolą na zainstalowanie pakietu (o ile nie użyje się opcji typu --force), zanim nie zostaną zainstalowane wszystkie pakiety wymienione w polu Depends. Podczas instalacji skrypty poinstalacyjne pakietów wymienionych w polu Depends: są uruchamiane przed skryptami pakietów, które od nich zależą. Podczas usuwania, skrypty przedusuwające pakietu są uruchamiane przed skryptami pakietów wymienionych w polu Depends:.
Pre-Depends: <lista pakietów>
Lista pakietów, które muszą być zainstalowane oraz skonfigurowane zanim ten pakiet będzie mógł być zainstalowany. Zazwyczaj jest używane w przypadku gdy pakiet wymaga innego pakietu do uruchomienia swoich skryptów preinstalacyjnych.
Recommends: <lista pakietów>
Lista pakietów, które powinny się znaleźć razem we wszystkich instalacjach poza tymi bardzo niestandardowymi. Narzędzia do zarządzania pakietami ostrzegą użytkownika, podczas instalacji pakietu bez instalowania pakietów wymienionych w polu Recommends.
Suggests: <lista pakietów>
Lista pakietów powiązanych z tym pakietem, które mogą zwiększyć jego użyteczność, ale bez których pakiet może się obejść.

Wartością pól Depends, Pre-Depends, Recommends i Suggests jest lista grup alternatywnych pakietów. Każda grupa jest listą pakietów oddzielonych symbolami pionowej kreski ("|"). Grupy oddzielone są od siebie przecinkami. Przecinki mają znaczenie "I" (koniunkcja), a kreski - "LUB" (alternatywa), przy czym priorytet koniunkcji jest wyższy. Po każdej nawie pakietu może opcjonalnie występować numer wersji podany w nawiasach.

Numer wersji może zaczynać się od ">>", co oznacza, że każda późniejsza wersja pakietu będzie odpowiednia; można także podawać lub pomijać wersję zmian Debiana (po znaku myślnika). Akceptowalne relacje są następujące: ">>" - większy niż, "<<" - mniejszy niż, ">=" - większy lub równy, "<=" - mniejszy lub równy oraz "=" - równy.

Breaks: <lista pakietów>
Lista pakietów psutych przez dany pakiet, na przykład przez ujawnianie się błędów, kiedy dany pakiet zależy od tego. Narzędzia do zarządzania pakietami nie pozwolą na skonfigurowanie takich zepsutych pakietów; rozwiązaniem tego problemu jest aktualizacja pakietu wymienionego w polu Breaks.
Conflicts: <lista pakietów>
Lista pakietów, które są w konflikcie z danym pakietem, na przykład zawierają plik o tej samej nazwie, Narzędzia do zarządzania pakietami nie pozwolą na zainstalowanie pakietów będących w konflikcie w tym samym czasie. Każdy z pakietów będących w konflikcie powinien zawierać pole Conflicts wskazujące na drugi pakiet.
Replaces: <lista pakietów>
Lista pakietów, które są zastępowane przez dany pakiet. Pozwala to na to, aby pakiet mógł nadpisać pliki znajdujące się w innym pakiecie i zazwyczaj jest używane równocześnie z polem Conflicts, żeby wymusić usunięcie innego pakietu, jeżeli zawiera on pliki o takich samych nazwach.
Provides: <lista pakietów>
Jest to lista pakietów wirtualnych dostarczanych przez ten pakiet. Zazwyczaj jest to używane w przypadku, gdy kilka pakietów dostarcza tej samej usługi. Na przykład sendmail i exim są serwerami poczty, dlatego dostarczają wspólnego pakietu ("mail-transport-agent"), od którego inne pakiety mogą zależeć. Pozwala to zarówno sendmailowi, jak i eximowi spełnić tę zależność. Ponadto w ten sposób pakiety, które zależą od serwera poczty, nie muszą znać nazw wszystkich pakietów dostarczających tej usługi ani używać "|" do rozdzielenia listy takich pakietów.

The syntax of Breaks, Conflicts, Replaces and Provides is a list of package names, separated by commas (and optional whitespace). In the Breaks and Conflicts fields, the comma should be read as `OR'. An optional version can also be given with the same syntax as above for the Breaks, Conflicts and Replaces fields.

PRZYKŁAD

# Komentarz
Package: grep
Essential: yes
Priority: required
Section: base
Maintainer: Wichert Akkerman <[email protected]>
Architecture: sparc
Version: 2.4-1
Pre-Depends: libc6 (>= 2.0.105)
Provides: rgrep
Conflicts: rgrep
Description: GNU grep, egrep and fgrep.
 The GNU family of grep utilities may be the "fastest grep in the west".
 GNU grep is based on a fast lazy-state deterministic matcher (about
 twice as fast as stock Unix egrep) hybridized with a Boyer-Moore-Gosper
 search for a fixed string that eliminates impossible text from being
 considered by the full regexp matcher without necessarily having to
 look at every character. The result is typically many times faster
 than Unix grep or egrep. (Regular expressions containing backreferencing
 will run more slowly, however).

TŁUMACZE

Piotr Roszatycki <[email protected]>, 1999
Bartosz Feński <[email protected]>, 2004-2005
Robert Luberda <[email protected]>, 2006-2008
Wiktor Wandachowicz <[email protected]>, 2008