apt-ftparchive - Narzędzie do generowania plików indeksu
apt-ftparchive [-dsq] [--md5] [--delink] [--readonly] [--contents] [--arch architecture] [-o=config_string] [-c=config_file] {packages path [override-file [pathprefix]] | sources path [override-file [pathprefix]] | contents path | release path | generate config_file section... | clean config_file | {-v | --version} | {-h | --help}}
apt-ftparchive to narzędzie wiersza poleceń, które generuje pliki indeksu używane przez APT w celu uzyskania dostępu do źródła dystrybucji. Pliki indeksu powinny być generowane w witrynie źródłowej na podstawie zawartości tej witryny.
apt-ftparchive to nadzbiór programu dpkg-scanpackages(1), zawierający całą jego funkcjonalność za pomocą polecenia packages. Zawiera również generator plików zawartości, zawartość i rozbudowane środki skryptowania procesu generowania kompletnego archiwum.
Wewnętrznie apt-ftparchive może korzystać z binarnych baz danych do buforowania zawartości pliku .deb i nie polega na żadnych zewnętrznych programach poza gzip(1). Wykonując pełne generowanie, automatycznie sprawdza zmiany plików i buduje żądane skompresowane pliki wyjściowe.
Jeśli nie podano opcji -h lub --help, musi być obecne jedno z poniższych poleceń.
Polecenie packages generuje plik pakietu z drzewa katalogów. Bierze podany katalog i rekurencyjnie przeszukuje go w poszukiwaniu plików .deb, emitując rekord pakietu na standardowe wyjście dla każdego z nich. To polecenie jest w przybliżeniu równoważne z dpkg-scanpackages(1).
Opcji --db można użyć do określenia binarnej bazy danych buforującej.
Komenda sources generuje źródłowy plik indeksu z drzewa katalogów. Bierze podany katalog i rekurencyjnie przeszukuje go w poszukiwaniu plików .dsc, emitując dla każdego rekord źródłowy na standardowe wyjście. To polecenie jest w przybliżeniu równoważne z dpkg-scansources(1).
Jeśli określono plik nadpisania, wówczas wyszukany zostanie źródłowy plik nadpisania z rozszerzeniem .src. Opcji --source-override można użyć do zmiany źródłowego pliku zastępującego, który będzie używany.
Polecenie content generuje plik zawartości z drzewa katalogów. Pobiera podany katalog i rekurencyjnie przeszukuje go w poszukiwaniu plików .deb i odczytuje listę plików z każdego pliku. Następnie sortuje i zapisuje na standardowe wyjście listę plików pasujących do pakietów. Katalogi nie są zapisywane na wyjściu. Jeśli wiele pakietów posiada ten sam plik, każdy pakiet jest oddzielony przecinkiem w danych wyjściowych.
Opcji --db można użyć do określenia binarnej bazy danych buforującej.
Polecenie release generuje plik Release z drzewa katalogów. Rekurencyjnie przeszukuje podany katalog w poszukiwaniu nieskompresowanych i skompresowanych plików Packages, Sources, Contents, Components i icon, a także plików Release, Index i md5sum.txt domyślnie (APT::FTPArchive::Release::Default-Patterns). Dodatkowe wzorce nazw plików można dodać, wymieniając je w APT::FTPArchive::Release::Patterns. Następnie zapisuje na standardowe wyjście plik Release zawierający (domyślnie) skrót MD5, SHA1, SHA256 i SHA512 dla każdego pliku.
Wartości dla dodatkowych pól metadanych w pliku Release są pobierane z odpowiednich zmiennych w APT::FTPArchive::Release, np. APT::FTPArchive::Release::Origin. Obsługiwane pola to Origin, Label, Suite, Version, Codename, Date, NotAutomatic, ButAutomaticUpgrades, Acquire-By-Hash, Valid-Until, Signed-by, Architectures, Components i Description.
Komenda generowania została zaprojektowana tak, aby mogła być uruchamiana ze skryptu cron i buduje indeksy zgodnie z podanym plikiem konfiguracyjnym. Język konfiguracji zapewnia elastyczny sposób określania, które pliki indeksu są budowane z jakich katalogów, a także zapewnia prosty sposób utrzymywania wymaganych ustawień.
Polecenie clean porządkuje bazy danych używane przez dany plik konfiguracyjny, usuwając wszelkie rekordy, które nie są już potrzebne.
Polecenie generowania używa pliku konfiguracyjnego do opisania archiwów, które mają zostać wygenerowane. Jest zgodny z typowym formatem konfiguracji ISC, jak widać w narzędziach ISC, takich jak bind 8 i dhcpd. apt.conf(5) zawiera opis składni. Zauważ, że konfiguracja generowania jest analizowana w sposób sekcyjny, ale plik apt.conf(5) jest analizowany w sposób drzewiasty. Wpływa to tylko na sposób obsługi znacznika zakresu.
Konfiguracja generowania składa się z czterech oddzielnych sekcji, z których każda została opisana poniżej.
Sekcja Dir definiuje standardowe katalogi potrzebne do zlokalizowania plików wymaganych podczas procesu generowania. Katalogi te są poprzedzone pewnymi ścieżkami względnymi zdefiniowanymi w późniejszych sekcjach, aby utworzyć pełną ścieżkę bezwzględną.
Określa katalog główny archiwum FTP, w standardowej konfiguracji Debiana jest to katalog zawierający węzły ls-LR i dist.
Określa położenie plików nadpisań.
Określa lokalizację plików pamięci podręcznej.
Określa lokalizację plików listy plików, jeśli poniżej zastosowano ustawienie FileList.
Sekcja Domyślne określa wartości domyślne i ustawienia kontrolujące działanie generatora. Inne sekcje mogą zastąpić te ustawienia domyślne ustawieniami poszczególnych sekcji.
Ustawia domyślne schematy kompresji używane dla plików indeksu pakietów. Jest to łańcuch zawierający oddzieloną spacjami listę co najmniej jednego kompresora skonfigurowanego za pomocą zakresu konfiguracji APT::Compressor. Wartością domyślną dla wszystkich schematów kompresji jest . gzip.
Ustawia domyślną listę rozszerzeń plików, które są plikami pakietów. Domyślnie jest to .deb.
Jest to podobne do Packages::Compress, z tą różnicą, że kontroluje kompresję plików Sources.
Ustawia domyślną listę rozszerzeń plików, które są plikami źródłowymi. Domyślnie jest to .dsc.
Jest to podobne do Packages::Compress z wyjątkiem tego, że kontroluje kompresję plików zawartości.
Jest to podobne do Packages::Compress z tą różnicą, że kontroluje kompresję głównego pliku Translation-en.
Określa liczbę kilobajtów do usunięcia linków (i zastąpienia ich twardymi linkami) na przebieg. Jest to używane w połączeniu z ustawieniem Linki zewnętrzne dla poszczególnych sekcji.
Określa tryb wszystkich tworzonych plików indeksu. Domyślnie jest to 0644. Wszystkie pliki indeksu są ustawione na ten tryb bez względu na umask.
Określa, czy długie opisy powinny być zawarte w pliku Packages, czy podzielone na główny plik Translation-en.
Ustawia wartości domyślne specyficzne dla sekcji drzewa. Wszystkie te zmienne są zmiennymi zastępczymi i mają łańcuchy $ (DIST), $ (SECTION) i $ (ARCH) zastąpione odpowiednimi wartościami.
Ustawia liczbę kilobajtów plików zawartości generowanych każdego dnia. Pliki zawartości są przetwarzane cyklicznie, tak że w ciągu kilku dni wszystkie zostaną odbudowane.
Kontroluje liczbę dni, przez które plik zawartości może być sprawdzany bez wprowadzania zmian. Po przekroczeniu tego limitu aktualizowany jest mtime pliku zawartości. Ten przypadek może wystąpić, jeśli plik pakietu zostanie zmieniony w taki sposób, że nie spowoduje to powstania nowego pliku zawartości [na przykład zastąpienie edycji]. Wstrzymanie jest dozwolone w nadziei, że zostaną zainstalowane nowe pliki .debs, co i tak wymagać będzie nowego pliku. Wartość domyślna to 10, jednostkami są dni.
Ustawia początek drzewa katalogów .deb. Domyślnie $ (DIST)/$ (SECTION)/binary-$ (ARCH)/
Ustawia górę drzewa katalogów pakietu źródłowego. Domyślnie $ (DIST)/$ (SECTION)/source/
Ustawia wyjściowy plik Packages. Domyślnie $ (DIST)/$ (SECTION)/binary-$ (ARCH)/Packages
Ustawia wyjściowy plik Sources. Wartość domyślna to $ (DIST)/$ (SECTION)/source/Sources
Ustawia wyjściowy plik główny Translation-en z długimi opisami, jeśli nie powinny one być zawarte w pliku Packages. Domyślnie $ (DIST)/$ (SECTION)/i18n/Translation-en
Ustawia przedrostek ścieżki, który powoduje, że dowiązanie symboliczne jest traktowane jako łącze wewnętrzne, a nie zewnętrzne. Domyślnie $ (ODKŁ)/$ (SEKCJA)/
Ustawia wyjściowy plik zawartości. Domyślnie $ (DIST)/$ (SECTION)/Contents-$ (ARCH). Jeśli to ustawienie spowoduje mapowanie wielu plików Packages na jeden plik Contents (co jest domyślne), to apt-ftparchive automatycznie zintegruje te pliki pakietów.
Ustawia plik nagłówkowy, który ma być dodawany przed zawartością wyjściową.
Ustawia binarną bazę danych pamięci podręcznej do użycia w tej sekcji. Wiele sekcji może współdzielić tę samą bazę danych.
Określa, że zamiast chodzić po drzewie katalogów, apt-ftparchive powinien czytać listę plików z podanego pliku. Względne nazwy plików są poprzedzone katalogiem archiwum.
Określa, że zamiast chodzić po drzewie katalogów, apt-ftparchive powinien czytać listę plików z podanego pliku. Względne nazwy plików są poprzedzone katalogiem archiwum. Jest to używane podczas przetwarzania indeksów źródłowych.
Sekcja Drzewo definiuje standardowe drzewo plików Debiana, które składa się z katalogu podstawowego, następnie wielu sekcji w tym katalogu podstawowym i wreszcie wielu Architektur w każdej sekcji. Dokładna używana ścieżka jest zdefiniowana przez zmienną podstawienia katalogu.
Sekcja Tree pobiera znacznik zakresu, który ustawia zmienną $ (DIST) i definiuje korzeń drzewa (ścieżka jest poprzedzona słowem ArchiveDir). Zazwyczaj jest to ustawienie takie jak dists/bookworm.
Wszystkie ustawienia zdefiniowane w sekcji TreeDefault mogą być używane w sekcji Tree, jak również trzy nowe zmienne.
Podczas przetwarzania sekcji drzewa apt-ftparchive wykonuje operację podobną do:
for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j
To jest oddzielona spacjami lista sekcji, które pojawiają się w dystrybucji; zazwyczaj jest to coś w rodzaju main contrib non-free non-free-firmware
To jest oddzielona spacjami lista wszystkich architektur, które pojawiają się w sekcji wyszukiwania. Źródło architektury specjalnej służy do wskazania, że to drzewo ma archiwum źródłowe. Architektura wszystko sygnalizuje, że pliki specyficzne dla architektury, takie jak Pakiety, nie powinny zawierać informacji o architekturze wszystkich pakietów we wszystkich plikach, ponieważ będą one dostępne w dedykowanym pliku.
Określa, czy długie opisy powinny być zawarte w pliku Packages, czy podzielone na główny plik Translation-en.
Ustawia plik zastępowania binarnego. Plik nadpisania zawiera informacje o sekcji, priorytecie i adresie opiekuna.
Ustawia źródłowy plik zastępowania. Plik nadpisania zawiera informacje o sekcji.
Ustawia binarny dodatkowy plik zastępujący.
Ustawia źródłowy dodatkowy plik zastępujący.
Sekcja bindirectory definiuje drzewo katalogów binarnych bez specjalnej struktury. Znacznik zakresu określa lokalizację katalogu binarnego, a ustawienia są podobne do sekcji Drzewo bez zmiennych zastępczych lub ustawień SectionArchitecture.
Ustawia wyjście pliku Packages.
Ustawia wyjście pliku Sources. Wymagany jest co najmniej jeden z Pakietów lub Źródeł.
Ustawia wyjście pliku zawartości (opcjonalnie).
Ustawia plik zastępowania binarnego.
Ustawia źródłowy plik zastępowania.
Ustawia binarny dodatkowy plik zastępujący.
Ustawia źródłowy dodatkowy plik zastępujący.
Ustawia bazę danych pamięci podręcznej.
Dołącza ścieżkę do wszystkich ścieżek wyjściowych.
Określa plik listy plików.
Binarny plik zastępujący jest w pełni kompatybilny z dpkg-scanpackages(1). Zawiera cztery pola oddzielone spacjami. Pierwsze pole to nazwa pakietu, drugie to priorytet, do którego należy wymusić ten pakiet, trzecie to sekcja, do której należy wymusić ten pakiet, a ostatnie pole to pole permutacji opiekuna.
Ogólna postać pola opiekuna to:
old [// oldn]* => new
lub po prostu,
new
Pierwszy formularz umożliwia określenie listy starych adresów e-mail, oddzielonych podwójnymi ukośnikami. Jeśli którykolwiek z nich zostanie znaleziony, pole opiekuna zostanie zastąpione przez new. Druga forma bezwarunkowo zastępuje pole opiekuna.
Plik zastępowania źródła jest w pełni kompatybilny z dpkg-scansources(1). Zawiera dwa pola oddzielone spacjami. Pierwsze pole to nazwa pakietu źródłowego, drugie to sekcja do przypisania.
Dodatkowy plik zastępujący umożliwia dodanie lub zastąpienie dowolnego znacznika w danych wyjściowych. Ma trzy kolumny, pierwsza to pakiet, druga to znacznik, a pozostała część wiersza to nowa wartość.
Wszystkie opcje wiersza poleceń można ustawić za pomocą pliku konfiguracyjnego, opisy wskazują opcję konfiguracyjną do ustawienia. W przypadku opcji boolowskich możesz zastąpić plik konfiguracyjny, używając czegoś takiego jak -f-, --no-f, -f=no lub kilku inne odmiany.
Wygeneruj podaną sumę kontrolną. Te opcje są domyślnie włączone, po wyłączeniu wygenerowane pliki indeksów nie będą miały pól sumy kontrolnej tam, gdzie to możliwe. Elementy konfiguracji: APT::FTPArchive::Suma kontrolna i APT::FTPArchive::Indeks::Suma kontrolna gdzie Indeks może to być Pakiety, Źródła lub Wersja, a Suma kontrolna może być MD5, SHA1, SHA256 lub SHA512.
Użyj binarnej bazy danych buforowania. Nie ma to wpływu na polecenie generowania. Element konfiguracji: APT::FTPArchive::DB.
Cichy; generuje dane wyjściowe odpowiednie do rejestrowania, pomijając wskaźniki postępu. Więcej q spowoduje ciszej, maksymalnie do 2. Możesz także użyć -q=#, aby ustawić poziom ciszy, zastępując plik konfiguracyjny. Element konfiguracji: cichy.
Wykonaj usuwanie linków. Jeśli używane jest ustawienie External-Links, ta opcja umożliwia delinkowanie plików. Domyślnie jest włączona i można ją wyłączyć za pomocą --no-delink. Pozycja konfiguracji: APT::FTPArchive::DeLinkAct.
Wykonaj generowanie treści. Gdy ta opcja jest ustawiona i indeksy pakietów są generowane z bazą danych pamięci podręcznej, lista plików również zostanie wyodrębniona i zapisana w bazie danych do późniejszego wykorzystania. Podczas korzystania z polecenia generuj ta opcja umożliwia również tworzenie dowolnych plików zawartości. Ustawienie domyślne jest włączone. Element konfiguracji: APT::FTPArchive::Contents.
Wybierz źródłowy plik nadpisania, który ma być używany z poleceniem sources. Element konfiguracji: APT::FTPArchive::SourceOverride.
Ustaw buforujące bazy danych jako tylko do odczytu. Element konfiguracji: APT::FTPArchive::ReadOnlyDB.
Akceptuj w poleceniach packages and content tylko pliki pakietów pasujące do *_arch.deb lub *_all.deb zamiast wszystkich plików pakietów w podanej ścieżce. Pozycja konfiguracji: APT::FTPArchive::Architecture.
apt-ftparchive(1) buforuje jak najwięcej metadanych w pliku cachedb. Jeśli pakiety zostaną ponownie skompilowane i/lub ponownie opublikowane z tą samą wersją, doprowadzi to do problemów, ponieważ zostaną użyte przestarzałe metadane z pamięci podręcznej, takie jak rozmiar i sumy kontrolne. Po włączeniu tej opcji nie będzie to już miało miejsca, ponieważ zostanie sprawdzone, czy plik został zmieniony. Zauważ, że ta opcja jest domyślnie ustawiona na „false”, ponieważ nie zaleca się przesyłania wielu wersji/kompilacji pakietu z tym samym numerem wersji, więc teoretycznie nikt nie będzie miał takich problemów i dlatego wszystkie te dodatkowe kontrole są bezużyteczne.
Ta opcja konfiguracji ma domyślnie wartość „true” i powinna być ustawiona na „false” tylko wtedy, gdy Archiwum wygenerowane za pomocą apt-ftparchive(1) zawiera również pliki tłumaczeń. Należy zauważyć, że plik główny Translation-en można utworzyć tylko w poleceniu generowania.
Pokaż krótkie podsumowanie użytkowania.
Pokaż wersję programu.
Plik konfiguracyjny; Określ plik konfiguracyjny do użycia. Program odczyta domyślny plik konfiguracyjny, a następnie ten plik konfiguracyjny. Jeśli ustawienia konfiguracyjne muszą zostać ustawione przed przeanalizowaniem domyślnych plików konfiguracyjnych, określ plik ze zmienną środowiskową APT_CONFIG. Zobacz apt.conf(5), aby uzyskać informacje o składni.
Ustaw opcję konfiguracji; Spowoduje to ustawienie dowolnej opcji konfiguracji. Składnia to -o Foo::Bar=bar. -o i --option można użyć wielokrotnie, aby ustawić różne opcje.
Aby utworzyć skompresowany plik Packages dla katalogu zawierającego pakiety binarne (.deb):
apt-ftparchive packages directory | gzip > Packages.gz
apt.conf(5)
apt-ftparchive zwraca zero przy normalnej pracy, dziesiętne 100 w przypadku błędu.
Strona błędu APT[1]. Jeśli chcesz zgłosić błąd w APT, zobacz /usr/share/doc/debian/bug-reporting.txt lub polecenie reportbug(1).
Jasona Gunthorpe'a
zespół APT
1. Strona błędu APT: http://bugs.debian.org/src:apt