apt-ftparchive - Utilitas untuk menghasilkan file indeks
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 adalah alat baris perintah yang menghasilkan file indeks yang digunakan APT untuk mengakses sumber distribusi. File indeks harus dibuat di situs asal berdasarkan konten situs tersebut.
apt-ftparchive adalah superset dari program dpkg-scanpackages(1), menggabungkan seluruh fungsinya melalui perintah paket. Ini juga berisi generator file konten, konten, dan cara yang rumit untuk membuat skrip proses pembuatan untuk arsip lengkap.
Secara internal apt-ftparchive dapat menggunakan database biner untuk meng-cache konten file .deb dan tidak bergantung pada program eksternal apa pun selain gzip(1). Saat melakukan full generate, secara otomatis melakukan pemeriksaan perubahan file dan membuat file keluaran terkompresi yang diinginkan.
Kecuali opsi -h, atau --help diberikan, salah satu perintah di bawah ini harus ada.
Perintah paket menghasilkan file paket dari pohon direktori. Dibutuhkan direktori yang diberikan dan secara rekursif mencari file .deb, memancarkan catatan paket ke stdout untuk masing-masing. Perintah ini kira-kira setara dengan dpkg-scanpackages(1).
Opsi --db dapat digunakan untuk menentukan DB caching biner.
Perintah sources menghasilkan file indeks sumber dari pohon direktori. Dibutuhkan direktori yang diberikan dan secara rekursif mencari file .dsc, memancarkan catatan sumber ke stdout untuk masing-masing. Perintah ini kira-kira setara dengan dpkg-scansources(1).
Jika file override ditentukan maka file override sumber akan dicari dengan ekstensi .src. Opsi --source-override dapat digunakan untuk mengubah file source override yang akan digunakan.
Perintah isi menghasilkan file isi dari pohon direktori. Dibutuhkan direktori yang diberikan dan secara rekursif mencarinya untuk file .deb, dan membaca daftar file dari setiap file. Kemudian menyortir dan menulis ke stdout daftar file yang cocok dengan paket. Direktori tidak ditulis ke output. Jika beberapa paket memiliki file yang sama, maka setiap paket dipisahkan dengan koma pada keluaran.
Opsi --db dapat digunakan untuk menentukan DB caching biner.
Perintah rilis menghasilkan file Rilis dari pohon direktori. Ini secara rekursif mencari direktori yang diberikan untuk file Paket, Sumber, Konten, Komponen dan ikon yang tidak terkompresi dan terkompresi serta file Rilis, Indeks dan md5sum.txt secara default (APT::FTPArchive::Release::Default-Patterns). Pola nama file tambahan dapat ditambahkan dengan mencantumkannya di APT::FTPArchive::Release::Patterns. Itu kemudian menulis ke stdout file Rilis yang berisi (secara default) intisari MD5, SHA1, SHA256 dan SHA512 untuk setiap file.
Nilai untuk bidang metadata tambahan dalam file Rilis diambil dari variabel terkait di bawah APT::FTPArchive::Release, mis. APT::FTPArchive::Release::Origin. Bidang yang didukung adalah Origin, Label, Suite, Version, Codename, Date, NotAutomatic, ButAutomaticUpgrades, Acquire-By-Hash, Valid-Until, Signed-By, Architectures, Components dan Description.
Perintah generate dirancang agar dapat dijalankan dari skrip cron dan membangun indeks sesuai dengan file konfigurasi yang diberikan. Bahasa konfigurasi menyediakan cara yang fleksibel untuk menentukan file indeks mana yang dibangun dari direktori mana, serta menyediakan cara sederhana untuk mempertahankan pengaturan yang diperlukan.
Perintah clean merapikan database yang digunakan oleh file konfigurasi yang diberikan dengan menghapus catatan yang tidak diperlukan lagi.
Perintah generate menggunakan file konfigurasi untuk mendeskripsikan arsip yang akan dibuat. Ini mengikuti format konfigurasi khas ISC seperti yang terlihat pada alat ISC seperti bind 8 dan dhcpd. apt.conf(5) berisi deskripsi sintaks. Perhatikan bahwa konfigurasi generate diuraikan dengan cara penampang, tetapi apt.conf(5) diuraikan dengan cara hierarki. Ini hanya mempengaruhi bagaimana tag cakupan ditangani.
Konfigurasi generate memiliki empat bagian terpisah, masing-masing dijelaskan di bawah ini.
Bagian Dir menentukan direktori standar yang diperlukan untuk menemukan file yang diperlukan selama proses pembuatan. Direktori ini ditambahkan jalur relatif tertentu yang ditentukan di bagian selanjutnya untuk menghasilkan jalur absolut yang lengkap.
Menentukan root dari arsip FTP, dalam konfigurasi Debian standar ini adalah direktori yang berisi node ls-LR dan dist.
Menentukan lokasi file override.
Menentukan lokasi file cache.
Menentukan lokasi file daftar file, jika pengaturan FileList digunakan di bawah ini.
Bagian Default menentukan nilai default, dan pengaturan yang mengontrol pengoperasian generator. Bagian lain mungkin menimpa default ini dengan pengaturan per bagian.
Menetapkan skema kompresi default yang akan digunakan untuk file indeks paket. Ini adalah string yang berisi daftar yang dipisahkan spasi dari setidaknya satu kompresor yang dikonfigurasi melalui cakupan konfigurasi APT::Compressor. Default untuk semua skema kompresi adalah . gzip.
Menetapkan daftar default ekstensi file yang merupakan file paket. Ini default ke .deb.
Ini mirip dengan Paket::Kompres kecuali bahwa ini mengontrol kompresi untuk file Sumber.
Menetapkan daftar default ekstensi file yang merupakan file sumber. Ini default ke .dsc.
Ini mirip dengan Packages::Compress kecuali bahwa ini mengontrol kompresi untuk file Contents.
Ini mirip dengan Packages::Compress kecuali bahwa ini mengontrol kompresi untuk file master Translation-en.
Menentukan jumlah kilobyte yang akan dihapus tautannya (dan diganti dengan tautan keras) per proses. Ini digunakan bersama dengan pengaturan Tautan Eksternal per bagian.
Menentukan mode semua file indeks yang dibuat. Standarnya adalah 0644. Semua file indeks diatur ke mode ini tanpa memperhatikan umask.
Menentukan apakah deskripsi panjang harus disertakan dalam file Paket atau dipisahkan menjadi file Terjemahan-en master.
Menetapkan default khusus untuk bagian Pohon. Semua variabel ini adalah variabel substitusi dan string $ (DIST), $ (SECTION) dan $ (ARCH) diganti dengan nilainya masing-masing.
Menetapkan jumlah kilobyte file konten yang dihasilkan setiap hari. File konten berbentuk round-robin sehingga selama beberapa hari semuanya akan dibangun kembali.
Mengontrol jumlah hari file konten diizinkan untuk diperiksa tanpa mengubah. Jika batas ini terlewati, waktu file konten diperbarui. Kasus ini dapat terjadi jika file paket diubah sedemikian rupa sehingga tidak menghasilkan file konten baru [override edit misalnya]. Penundaan diperbolehkan dengan harapan .debs baru akan diinstal, bagaimanapun juga membutuhkan file baru. Standarnya adalah 10, satuannya dalam hari.
Mengatur bagian atas pohon direktori .deb. Default ke $ (DIST)/$ (SECTION)/binary-$ (ARCH)/
Menyetel bagian atas pohon direktori paket sumber. Default ke $ (DIST)/$ (SECTION)/sumber/
Mengatur file Paket keluaran. Default ke $ (DIST)/$ (SECTION)/binary-$ (ARCH)/Paket
Mengatur file Sumber keluaran. Default ke $ (DIST)/$ (SECTION)/sumber/Sumber
Setel file master Translation-en keluaran dengan deskripsi panjang jika seharusnya tidak disertakan dalam file Paket. Default ke $ (DIST)/$ (SECTION)/i18n/Translation-en
Menetapkan awalan jalur yang menyebabkan symlink dianggap sebagai tautan internal, bukan tautan eksternal. Default ke $ (DIST)/$ (SECTION)/
Mengatur file Konten keluaran. Default ke $ (DIST)/$ (SECTION)/Contents-$ (ARCH). Jika pengaturan ini menyebabkan beberapa file Paket dipetakan ke satu file Konten (sebagai default) maka apt-ftparchive akan mengintegrasikan file paket tersebut secara otomatis.
Setel file header untuk ditambahkan ke output konten.
Menyetel basis data cache biner yang akan digunakan untuk bagian ini. Beberapa bagian dapat berbagi database yang sama.
Menentukan bahwa alih-alih berjalan di pohon direktori, apt-ftparchive harus membaca daftar file dari file yang diberikan. Nama file relatif diawali dengan direktori arsip.
Menentukan bahwa alih-alih berjalan di pohon direktori, apt-ftparchive harus membaca daftar file dari file yang diberikan. Nama file relatif diawali dengan direktori arsip. Ini digunakan saat memproses indeks sumber.
Bagian Pohon mendefinisikan pohon file Debian standar yang terdiri dari direktori dasar, kemudian beberapa bagian dalam direktori dasar tersebut dan terakhir beberapa Arsitektur di setiap bagian. Jalur tepat yang digunakan ditentukan oleh variabel substitusi Direktori.
Bagian Pohon mengambil tag cakupan yang menyetel variabel $ (DIST) dan menentukan akar pohon (jalur diawali oleh ArchiveDir). Biasanya ini adalah pengaturan seperti dists/bookworm.
Semua pengaturan yang ditentukan di bagian TreeDefault dapat digunakan di bagian Tree serta tiga variabel baru.
Saat memproses bagian Pohon, apt-ftparchive melakukan operasi yang serupa dengan:
for i in Sections do for j in Architectures do Generate for DIST=scope SECTION=i ARCH=j
Ini adalah daftar bagian yang dipisahkan ruang yang muncul di bawah distribusi; biasanya ini seperti main contrib non-free non-free-firmware
Ini adalah daftar semua arsitektur yang dipisahkan ruang yang muncul di bagian pencarian. Sumber arsitektur khusus digunakan untuk menunjukkan bahwa pohon ini memiliki arsip sumber. Semua arsitektur memberi sinyal bahwa file khusus arsitektur seperti Paket tidak boleh menyertakan informasi tentang arsitektur semua paket di semua file karena akan tersedia dalam file khusus.
Menentukan apakah deskripsi panjang harus disertakan dalam file Paket atau dipisahkan menjadi file Terjemahan-en master.
Mengatur file penimpaan biner. File override berisi bagian, prioritas, dan informasi alamat pengelola.
Mengatur file pengganti sumber. File override berisi informasi bagian.
Menyetel file penimpaan ekstra biner.
Mengatur file override ekstra sumber.
Bagian bindirectory mendefinisikan pohon direktori biner tanpa struktur khusus. Tag lingkup menentukan lokasi direktori biner dan pengaturannya mirip dengan bagian Pohon tanpa variabel substitusi atau pengaturan SectionArchitecture.
Mengatur output file Paket.
Mengatur keluaran file Sumber. Setidaknya satu dari Paket atau Sumber diperlukan.
Mengatur keluaran file Konten (opsional).
Mengatur file penimpaan biner.
Mengatur file pengganti sumber.
Menyetel file penimpaan ekstra biner.
Mengatur file override ekstra sumber.
Mengatur DB cache.
Menambahkan jalur ke semua jalur keluaran.
Menentukan file daftar file.
File penimpaan biner sepenuhnya kompatibel dengan dpkg-scanpackages(1). Ini berisi empat bidang yang dipisahkan oleh spasi. Bidang pertama adalah nama paket, yang kedua adalah prioritas untuk memaksakan paket itu, yang ketiga adalah bagian untuk memaksa paket itu dan bidang terakhir adalah bidang permutasi pengelola.
Bentuk umum dari field maintainer adalah:
old [// oldn]* => new
atau sederhananya,
new
Formulir pertama memungkinkan daftar alamat email lama yang dipisahkan garis miring ganda untuk ditentukan. Jika ada yang ditemukan maka yang baru diganti untuk bidang pengelola. Bentuk kedua tanpa syarat menggantikan bidang pengelola.
File pengganti sumber sepenuhnya kompatibel dengan dpkg-scansources(1). Ini berisi dua bidang yang dipisahkan oleh spasi. Kolom pertama adalah nama paket sumber, kolom kedua adalah bagian untuk menetapkannya.
File override ekstra memungkinkan setiap tag arbitrer ditambahkan atau diganti dalam output. Ini memiliki tiga kolom, yang pertama adalah paket, yang kedua adalah tag dan sisa baris adalah nilai baru.
Semua opsi baris perintah dapat diatur menggunakan file konfigurasi, deskripsi menunjukkan opsi konfigurasi untuk diatur. Untuk opsi boolean, Anda dapat mengganti file konfigurasi dengan menggunakan sesuatu seperti -f-,--no-f, -f=no atau beberapa variasi lainnya.
Hasilkan checksum yang diberikan. Opsi ini secara default aktif, ketika dimatikan file indeks yang dihasilkan tidak akan memiliki bidang checksum jika memungkinkan. Item Konfigurasi: APT::FTPArchive::Checksum dan APT::FTPArchive::Index::Checksum di mana Index dapat berupa Paket, Sumber, atau Rilis dan Checksum dapat berupa MD5, SHA1, SHA256, atau SHA512.
Gunakan DB caching biner. Ini tidak berpengaruh pada perintah generate. Item Konfigurasi: APT::FTPARchive::DB.
Diam; menghasilkan output yang cocok untuk logging, menghilangkan indikator kemajuan. Lebih banyak qs akan menghasilkan lebih banyak senyap hingga maksimum 2. Anda juga dapat menggunakan -q=# untuk menyetel tingkat senyap, menggantikan file konfigurasi. Item Konfigurasi: tenang.
Lakukan Delinking. Jika pengaturan Tautan Eksternal digunakan maka opsi ini benar-benar memungkinkan penghapusan tautan file. Secara default aktif dan dapat dimatikan dengan --no-delink. Item Konfigurasi: APT::FTPArchive::DeLinkAct.
Lakukan pembuatan konten. Ketika opsi ini disetel dan indeks paket dihasilkan dengan DB cache, maka daftar file juga akan diekstraksi dan disimpan dalam DB untuk digunakan nanti. Saat menggunakan perintah generate, opsi ini juga memungkinkan pembuatan file Konten apa pun. Defaultnya aktif. Item Konfigurasi: APT::FTPArchive::Contents.
Pilih file override sumber untuk digunakan dengan perintah sources. Item Konfigurasi: APT::FTPArchive::SourceOverride.
Jadikan database caching hanya bisa dibaca. Item Konfigurasi: APT::FTPArchive::ReadOnlyDB.
Terima dalam perintah paket dan konten hanya file paket yang cocok dengan *_arch.deb atau *_all.deb alih-alih semua file paket di jalur yang diberikan. Item Konfigurasi: APT::FTPArchive::Architecture.
apt-ftparchive(1) meng-cache sebanyak mungkin metadata dalam cachedb. Jika paket dikompilasi ulang dan/atau diterbitkan ulang dengan versi yang sama lagi, ini akan menimbulkan masalah karena metadata cache yang sudah usang seperti ukuran dan checksum akan digunakan. Dengan mengaktifkan opsi ini, ini tidak akan terjadi lagi karena akan diperiksa jika file diubah. Perhatikan bahwa opsi ini disetel ke "false" secara default karena tidak disarankan untuk mengunggah banyak versi/build dari sebuah paket dengan nomor versi yang sama, jadi secara teori tidak ada yang akan mengalami masalah ini dan oleh karena itu semua pemeriksaan tambahan ini tidak berguna.
Opsi konfigurasi ini default ke "true" dan hanya boleh disetel ke "false" jika Arsip yang dibuat dengan apt-ftparchive(1) juga menyediakan file Terjemahan. Perhatikan bahwa file master Translation-en hanya dapat dibuat dalam perintah generate.
Tampilkan ringkasan penggunaan singkat.
Tampilkan versi program.
Berkas Konfigurasi; Tentukan file konfigurasi yang akan digunakan. Program akan membaca file konfigurasi default dan kemudian file konfigurasi ini. Jika setelan konfigurasi perlu disetel sebelum file konfigurasi default diuraikan, tentukan file dengan variabel lingkungan APT_CONFIG. Lihat apt.conf(5) untuk informasi sintaks.
Tetapkan Opsi Konfigurasi; Ini akan menetapkan opsi konfigurasi sewenang-wenang. Sintaksnya adalah -o Foo::Bar=bar. -o dan --option dapat digunakan berkali-kali untuk menyetel opsi yang berbeda.
Untuk membuat file Paket terkompresi untuk direktori yang berisi paket biner (.deb):
apt-ftparchive packages directory | gzip > Packages.gz
apt.conf(5)
apt-ftparchive mengembalikan nol pada operasi normal, desimal 100 pada kesalahan.
Halaman bug APT[1]. Jika Anda ingin melaporkan bug di APT, silakan lihat /usr/share/doc/debian/bug-reporting.txt atau perintah reportbug(1).
Jason Gunthorpe
Tim APT
1. Halaman bug APT: http://bugs.debian.org/src:apt