Bab 2. Manajemen paket Debian

Daftar Isi

2.1. Prasyarat manajemen paket Debian
2.1.1. Sistem manajemen paket Debian
2.1.2. Konfigurasi paket
2.1.3. Tindakan pencegahan dasar
2.1.4. Hidup dengan peningkatan abadi
2.1.5. Dasar-dasar arsip Debian
2.1.6. Debian adalah perangkat lunak 100% bebas
2.1.7. Dependensi paket
2.1.8. Alur kejadian manajemen paket
2.1.9. Tanggapan pertama terhadap masalah manajemen paket
2.1.10. Cara memilih paket Debian
2.1.11. Bagaimana menghadapi persyaratan yang bertentangan
2.2. Operasi manajemen paket dasar
2.2.1. apt vs. apt-get / apt-cache vs. aptitude
2.2.2. Operasi manajemen paket dasar dengan barus perintah
2.2.3. Penggunaan aptitude interaktif
2.2.4. Pengikatan tombol dari aptitude
2.2.5. Tampilan paket di bawah aptitude
2.2.6. Opsi metode pencarian dengan aptitude
2.2.7. Rumus regex aptitude
2.2.8. Resolusi ketergantungan aptitude
2.2.9. Log aktivitas paket
2.3. Contoh operasi aptitude
2.3.1. Seeking interesting packages
2.3.2. Menampilkan daftar paket dengan pencocokan regex pada nama paket
2.3.3. Meramban dengan pencocokan regex
2.3.4. Membersihkan paket yang dihapus untuk selamanya
2.3.5. Merapikan status pemasangan otomatis/manual
2.3.6. Peningkatan seluruh sistem
2.4. Operasi manajemen paket tingkat lanjut
2.4.1. Operasi manajemen paket tingkat lanjut dengan baris perintah
2.4.2. Verifikasi berkas-berkas paket yang terpasang
2.4.3. Menjaga masalah paket
2.4.4. Mencari pada data meta paket
2.5. Internal manajemen paket Debian
2.5.1. Meta data arsip
2.5.2. Berkas "Release" tingkat puncak dan keaslian
2.5.3. Berkas "Release" tingkat arsip
2.5.4. Pengambilan data meta untuk paket
2.5.5. Keadaan paket untuk APT
2.5.6. Keadaan paket untuk aptitude
2.5.7. Salinan lokal dari paket yang diambil
2.5.8. Nama berkas paket Debian
2.5.9. Perintah dpkg
2.5.10. Perintah update-alternatives
2.5.11. Perintah dpkg-statoverride
2.5.12. Perintah dpkg-divert
2.6. Pemulihan dari sistem yang rusak
2.6.1. Instalasi gagal karena dependensi yang kurang
2.6.2. Kesalahan penyinggahan atas data paket
2.6.3. Ketidakcocokan dengan konfigurasi pengguna lama
2.6.4. Paket yang berbeda dengan berkas-berkas yang tumpang tindih
2.6.5. Memperbaiki skrip paket yang rusak
2.6.6. Penyelamatan dengan perintah dpkg
2.6.7. Memulihkan data pemilihan paket
2.7. Tips untuk manajemen paket
2.7.1. Siapa yang mengunggah paket tersebut?
2.7.2. Membatasi bandwidth unduhan untuk APT
2.7.3. Pengunduhan dan peningkatan paket secara otomatis
2.7.4. Pembaruan dan Backport
2.7.5. External package archives
2.7.6. Berikut adalah penjelasan sederhana tentang teknik apt-pinning.
2.7.7. Berikut adalah penjelasan sederhana tentang teknik apt-pinning.
2.7.8. Memblokir paket yang dipasang oleh "Recommends"
2.7.9. Melacak testing dengan beberapa paket dari unstable
2.7.10. Pelacakan unstable dengan beberapa paket dari experimental
2.7.11. Penurunan tingkat darurat
2.7.12. Paket equivs
2.7.13. Mem-port paket ke sistem stable
2.7.14. Server proksi untuk APT
2.7.15. Lebih banyak bacaan untuk manajemen paket
[Catatan] Catatan

Bab ini ditulis dengan asumsi rilis stabil terbaru adalah nama kode: bookworm.

Sumber data dari sistem APT secara kolektif diacu sebagai daftar sumber dalam dokumen ini. Ini dapat didefinisikan di mana saja dalam berkas "/etc/apt/sources.list", berkas-berkas "/etc/apt/sources.list.d/*.list", atau berkas-berkas "/etc/apt/sources.list.d/*.source".

Debian adalah organisasi sukarelawan yang membangun distribusi yang konsisten dari paket biner perangkat lunak bebas yang diprakompilasi dan mendistribusikan mereka dari arsipnya.

Arsip Debian ditawarkan oleh banyak situs cermin jarak jauh untuk akses melalui metode HTTP dan FTP. Ini juga tersedia sebagai CD-ROM/DVD.

Sistem manajemen paket Debian saat ini yang dapat memanfaatkan semua sumber daya ini adalah Advanced Packaging Tool (APT).

Sistem manajemen paket Debian, bila digunakan dengan benar, menawarkan pengguna untuk memasang set paket biner yang konsisten ke sistem dari arsip. Saat ini, ada 74165 paket yang tersedia untuk arsitektur amd64.

Sistem manajemen paket Debian memiliki sejarah yang kaya dan banyak pilihan untuk front end program pengguna dan metode akses arsip back end yang akan digunakan. Saat ini, kami merekomendasikan hal-hal berikut.

  • apt(8) untuk semua operasi baris perintah interaktif, termasuk instalasi paket, penghapusan, dan dist-upgrade.

  • apt-get(8) untuk memanggil sistem manajemen paket Debian dari skrip. Ini juga merupakan pilihan fallback ketika apt tidak tersedia (sering dengan sistem Debian yang lebih tua).

  • aptitude(8) bagi antarmuka teks interaktif untuk mengelola paket yang dipasang dan untuk mencari paket yang tersedia.


[Awas] Awas

Jangan menginstal paket dari campuran acak keluarga. Ini mungkin merusak konsistensi paket yang membutuhkan pengetahuan manajemen sistem yang mendalam, seperti ABI kompiler, versi pustaka, fitur interpreter, dll.

Administrator sistem Debian pemula harus tetap memakai rilis Debian stable sambil hanya menerapkan pembaruan keamanan. Sampai Anda memahami sistem Debian dengan sangat baik, Anda mesti mengikuti pencegahan berikut.

  • Jangan sertakan testing atau unstable dalam daftar sumber.

  • Jangan mencampur Debian standar dengan arsip non-Debian lainnya seperti Ubuntu di daftar sumber.

  • Jangan membuat "/etc/apt/preferences".

  • Jangan mengubah perilaku baku alat manajemen paket melalui berkas konfigurasi tanpa mengetahui dampak penuhnya.

  • Jangan memasang paket acak dengan "dpkg -i paket_acak".

  • Jangan pernah memasang paket acak dengan "dpkg --force-all -i random_package".

  • Jangan menghapus atau mengubah berkas di "/var/lib/dpkg/".

  • Jangan menimpa sistem berkas dengan memasang program perangkat lunak yang langsung dikompilasi dari sumber.

    • Pasang mereka ke dalam "/usr/local" atau "opt", jika diperlukan.

Efek tidak kompatibel yang disebabkan oleh tindakan pencegahan di atas pada sistem manajemen paket Debian dapat menyebabkan sistem Anda tidak bisa dipakai.

Administrator sistem Debian yang serius yang menjalankan server-server dengan misi penting, harus menerapkan tindakan pencegahan ekstra.

  • Jangan memasang paket apa pun termasuk pembaruan keamanan dari Debian tanpa mengujinya secara menyeluruh dengan konfigurasi khusus Anda dalam kondisi aman.

    • Anda sebagai administrator sistem bertanggung jawab atas sistem Anda pada akhirnya.

    • Sejarah stabilitas panjang sistem Debian bukanlah jaminan dengan sendirinya.

[Perhatian] Perhatian

Untuk server produksi Anda, disarankan keluarga stable dengan pembaruan keamanan. Hal yang sama dapat dikatakan untuk PC desktop di mana Anda dapat menghabiskan upaya administrasi yang terbatas.

Terlepas dari peringatan saya di atas, saya tahu banyak pembaca dokumen ini mungkin ingin menjalankan keluarga testing atau unstable yang lebih baru.

Enlightenment dengan yang berikut menyelamatkan seseorang dari perjuangan karma abadi atas neraka peningkatan dan membiarkan dia mencapai sorga Debian.

Daftar ini ditargetkan untuk lingkungan Desktop yang dikelola sendiri.

  • Gunakan keluarga testing karena praktis itu adalah rilis bergulir yang secara otomatis dikelola oleh infrastruktur QA arsip Debian seperti integrasi berkelanjutan Debian, praktik hanya mengunggah sumber, dan pelacakan transisi pustaka. Paket-paket di keluarga testing diperbarui cukup sering untuk menawarkan semua fitur terbaru.

  • Mengatur nama kode yang sesuai dengan keluarga testing ("trixie" selama bookworm sebagai siklus rilis stable) dalam daftar sumber.

  • Perbarui nama kode ini secara manual di "daftar sumber" ke yang baru hanya setelah menilai situasi sendiri selama sekitar satu bulan setelah rilis keluarga mayor. Milis pengguna Debian dan pengembang adalah sumber informasi yang baik untuk ini juga.

Penggunaan keluarga unstable tidak dianjurkan. Keluarga unstable baik untuk debugging paket sebagai pengembang tetapi cenderung mengekspos Anda untuk risiko yang tidak perlu untuk penggunaan Desktop normal. Meskipun keluarga sistem Debian unstable terlihat sangat stabil untuk sebagian besar waktu, ada beberapa masalah paket dan beberapa di antaranya tidak begitu sepele untuk diselesaikan.

Berikut adalah beberapa ide tindakan pencegahan dasar untuk memastikan pemulihan cepat dan mudah dari bug dalam paket Debian.

  • Buat sistem boot ganda dengan memasang sistem Debian keluarga stable ke partisi lain

  • Buat CD instalasi tersedia untuk boot penyelamatan

  • Pertimbangkan untuk memasang apt-listbugs untuk memeriksa informasi Debian Bug Tracking System (BTS) sebelum peningkatan

  • Pelajari infrastruktur sistem paket yang cukup untuk mengatasi masalah

[Perhatian] Perhatian

Jika Anda tidak dapat melakukan salah satu dari tindakan pencegahan ini, Anda mungkin tidak siap untuk keluarga testing dan unstable.

[Tip] Tip

Kebijakan resmi arsip Debian didefinisikan di Manual Kebijakan Debian, Bab 2 - Arsip Debian.

Mari kita lihat arsip Debian dari perspektif pengguna sistem.

Untuk pengguna sistem, arsip Debian diakses menggunakan sistem APT.

Sistem APT menentukan sumber datanya sebagai daftar sumber dan itu dijelaskan dalam sources.list(5).

Untuk sistem bookworm dengan akses HTTP yang biasa, daftar sumber dalam gaya satu baris sebagai berikut:

deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free

deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free

Atau, daftar sumber ekuivalen dalam gaya deb822 sebagai berikut.

Types: deb deb-src
URIs: http://deb.debian.org/debian/
Suites: bookworm
Components: main non-free-firmware contrib non-free

Types: deb deb-src
URIs: http://security.debian.org/debian-security/
Suites: bookworm-security
Components: main non-free-firmware contrib non-free

Poin penting dari daftar sumber adalah sebagai berikut.

  • Format gaya satu baris

    • Berkas definisinya ada dalam "/etc/apt/sources.list" dan berkas-berkas "/etc/apt/sources.list.d/*.list".

    • Setiap baris mendefinisikan sumber data untuk sistem APT.

    • Baris "deb" mendefinisikan paket biner.

    • Baris "deb-src" mendefinisikan paket sumber.

    • Argumen pertama adalah URL root dari arsip Debian.

    • Argumen kedua adalah nama distribusi yang memakai nama keluarga atau nama kode.

    • Argumen ke-3 dan yang mengikutinya adalah daftar nama area arsip yang valid dari arsip Debian.

  • Format gaya Deb822

    • Berkas definisinya ada dalam berkas-berkas "/etc/apt/sources.list.d/*.source".

    • Setiap blok baris dipisahkan oleh satu baris kosong mendefinisikan sumber data untuk sistem APT.

    • Bait "Types:" mendefinisikan daftar jenis seperti "deb" dan "deb-src".

    • Bait "URIs:" mendefinisikan daftar akar URIs dari arsip Debian.

    • Bait "Suites:" mendefinisikan daftar nama distribusi menggunakan nama keluarga atau nama kode.

    • Bait "Components:" mendefinisikan daftar nama wilayah arsip yang valid dari arsip Debian.

Definisi untuk "deb-src" dapat dengan aman dihilangkan jika itu hanya untuk aptitude yang tidak mengakses sumber data meta terkait. Ini mempercepat pembaruan data meta arsip.

URL bisa berupa "https://", "http://", "ftp://", "file://", ....

Baris yang diawali dengan "#" adalah komentar dan diabaikan.

Di sini, saya cenderung menggunakan nama kode "bookworm" atau "trixie" bukan nama keluarga "stable" atau "testing" untuk menghindari kejutan ketika stable dirilis.

[Tip] Tip

Jika "sid" digunakan dalam contoh di atas, bukan "bookworm", baris "deb: http://security.debian.org/ ... " atau konten deb822 yang setara untuk pembaruan keamanan dalam daftar sumber tidak diperlukan. Ini karena tidak ada arsip pembaruan keamanan untuk "sid" (unstable).

Berikut adalah daftar URL situs arsip Debian dan nama keluarga atau nama kode yang digunakan dalam berkas konfigurasi setelah rilis bookworm.


[Perhatian] Perhatian

Only pure stable release with security updates provides the best stability. Running mostly stable release mixed with some packages from testing or unstable release is riskier than running pure unstable release for library version mismatch etc. If you really need the latest version of some programs under stable release, please use packages from stable-updates and backports (see Bagian 2.7.4, “Pembaruan dan Backport”) services. These services must be used with extra care.

[Perhatian] Perhatian

Anda pada dasarnya harus mencantumkan hanya satu keluarga stable, testing, atau unstable di baris "deb". Jika Anda mencantumkan kombinasi keluarga stable, testing, dan unstable di baris "deb", program APT melambat sementara hanya arsip terbaru yang efektif. Beberapa daftar masuk akal untuk ini ketika berkas "/etc/apt/preferences" digunakan dengan tujuan yang jelas (lihat Bagian 2.7.7, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”).

[Tip] Tip

Untuk sistem Debian dengan keluarga stable, adalah ide yang baik untuk memasukkan baris dengan "http://security.debian.org/" dalam "daftar sumber" untuk mengaktifkan pembaruan keamanan seperti pada contoh di atas.

[Catatan] Catatan

Bug keamanan untuk arsip stable diperbaiki oleh tim keamanan Debian. Kegiatan ini cukup ketat dan dapat diandalkan. Untuk arsip testing mungkin diperbaiki oleh tim keamanan testing Debian. Untuk beberapa alasan, kegiatan ini tidak seketat itu untuk stable dan Anda mungkin perlu menunggu migrasi paket unstable yang diperbaiki. Untuk arsip unstable diperbaiki oleh pengelola individu. Paket-paket unstable yang dipelihara secara aktif biasanya dalam kondisi yang cukup baik dengan memanfaatkan perbaikan keamanan hulu terbaru. Lihat FAQ keamanan Debian untuk cara Debian menangani bug-bug keamanan.


Di sini jumlah paket di atas adalah untuk arsitektur amd64. Area main menyediakan sistem Debian (lihat Bagian 2.1.6, “Debian adalah perangkat lunak 100% bebas”).

Organisasi arsip Debian dapat dipelajari paling baik dengan mengarahkan peramban Anda ke setiap URL arsip ditambah dengan dists atau pool.

Distribusi disebut dengan dua cara, keluarga atau nama kode. Kata distribusi secara alternatif digunakan sebagai sinonim untuk keluarga dalam banyak dokumentasi. Hubungan antara keluarga dan nama kode dapat diringkas sebagai berikut.


Riwayat nama kode dijelaskan dalam DEBIAN FAQ: 6.2.1 Nama kode lain mana yang telah digunakan di masa lalu?

Dalam terminologi arsip Debian yang lebih ketat, kata "section" secara khusus digunakan untuk kategorisasi paket oleh area aplikasi. (Meskipun, kata "main section" kadang-kadang dapat digunakan untuk menggambarkan area arsip Debian bernama "main".)

Setiap kali pengunggahan baru, dilakukan oleh pengembang Debian (DD) ke arsip unstable (melalui pemrosesan incoming), DD perlu memastikan paket yang diunggah kompatibel dengan set paket terbaru dalam arsip unstable terakhir.

Jika DD merusak kompatibilitas ini dengan sengaja untuk peningkatan pustaka penting dll, biasanya ada pengumuman ke milis debian-devel dll.

Before a set of packages are moved by the Debian archive maintenance script from the unstable archive to the testing archive, the archive maintenance script not only checks the maturity (about 2-10 days old) and the status of the RC bug reports for the packages but also tries to ensure them to be compatible with the latest set of packages in the testing archive. This process makes the testing archive very current and usable.

Melalui proses pembekuan arsip bertahap yang dipimpin oleh tim rilis, arsip testing matang untuk membuatnya benar-benar konsisten dan bebas bug dengan beberapa intervensi manual. Kemudian rilis stable baru dibuat dengan menetapkan nama kode untuk arsip testing lama ke arsip stable baru dan membuat nama kode baru untuk arsip testing baru. Isi awal dari arsip testing baru persis sama dengan arsip stable yang baru saja dirilis.

Baik arsip unstable dan testing mungkin menderita gangguan sementara karena beberapa faktor.

  • Pengunggahan paket rusak ke arsip (kebanyakan untuk unstable)

  • Penundaan menerima paket baru ke arsip (sebagian besar untuk unstable)

  • Masalah waktu sinkronisasi arsip (baik untuk testing dan unstable)

  • Intervensi manual ke arsip seperti penghapusan paket (lebih untuk testing) dll.

Jadi jika Anda pernah memutuskan untuk menggunakan arsip ini, Anda harus dapat memperbaiki atau mengatasi gangguan semacam ini.

[Perhatian] Perhatian

For about few months after a new stable release, most desktop users should use the stable archive with its security updates even if they usually use unstable or testing archives. For this transition period, both unstable and testing archives are not good for most people. Your system is difficult to keep in good working condition with the unstable archive since it suffers surges of major upgrades for core packages. The testing archive is not useful either since it contains mostly the same content as the stable archive without its security support (Debian testing-security-announce 2008-12). After a month or so, unstable or testing archives may become useful if you are careful.

[Tip] Tip

Saat melacak arsip testing, masalah yang disebabkan oleh paket yang dihapus biasanya diatasi dengan memasang paket yang sesuai dari arsip unstable yang diunggah untuk perbaikan bug.

Lihat Manual Kebijakan Debian untuk definisi arsip.

Debian adalah perangkat lunak 100% bebas karena yang berikut ini:

  • Debian hanya memasang perangkat lunak bebas secara baku untuk menghormati kebebasan pengguna.

  • Debian hanya menyediakan perangkat lunak bebas di main.

  • Debian merekomendasikan untuk hanya menjalankan perangkat lunak bebas dari main.

  • Tidak ada paket main yang bergantung atau merekomendasikan paket dalam non-free, non-free-firmware, maupun contrib.

Beberapa orang bertanya-tanya apakah 2 fakta berikut bertentangan atau tidak.

Ini tidak bertentangan, karena hal-hal berikut.

  • Sistem Debian adalah 100% bebas dan paketnya diwadahi oleh server Debian di area main.

  • Paket di luar sistem Debian diwadahi oleh server Debian di area non-free, non-free-firmware, dan contrib.

Ini dijelaskan secara tepat dalam ketentuan ke-4 dan ke-5 dari Kontrak Sosial Debian:

  • Prioritas kami adalah pengguna kami dan perangkat lunak bebas

    • Kami akan dipandu oleh kebutuhan pengguna kami dan komunitas perangkat lunak bebas. Kami akan menempatkan kepentingan mereka terlebih dahulu dalam prioritas kami. Kami akan mendukung kebutuhan pengguna kami untuk beroperasi di berbagai jenis lingkungan komputasi. Kami tidak akan keberatan dengan karya non-bebas yang dimaksudkan untuk digunakan pada sistem Debian, atau mencoba untuk membebankan biaya kepada orang-orang yang membuat atau menggunakan karya tersebut. Kami akan mengizinkan orang lain untuk membuat distribusi yang berisi sistem Debian dan karya lainnya, tanpa biaya apa pun dari kami. Sebagai kelanjutan dari tujuan ini, kami akan menyediakan sistem terpadu dengan bahan-bahan berkualitas tinggi tanpa batasan hukum yang akan mencegah penggunaan sistem tersebut.

  • Karya yang tidak memenuhi standar perangkat lunak bebas kami

    • Kami mengakui bahwa beberapa pengguna kami memerlukan penggunaan karya yang tidak sesuai dengan Pedoman Perangkat Lunak Bebas Debian. Kami telah menciptakan area "non-free", "non-free-firmware", dan "contrib" dalam arsip kami untuk karya-karya ini. Paket-paket di area ini bukan bagian dari sistem Debian, meskipun telah dikonfigurasi untuk digunakan dengan Debian. Kami mendorong produsen CD untuk membaca lisensi paket di area ini dan menentukan apakah mereka dapat mendistribusikan paket pada CD mereka. Jadi, meskipun karya non-free bukan bagian dari Debian, kami mendukung penggunaannya dan menyediakan infrastruktur untuk paket-paket non-free (seperti sistem pelacakan bug dan milis kami). Media resmi Debian dapat menyertakan firmware yang sebenarnya bukan dari sistem Debian untuk memfungsikan penggunaan Debian dengan perangkat keras yang memerlukan firmware seperti itu.

[Catatan] Catatan

Teks sebenarnya dari syarat ke-5 dalam Kontrak Sosial Debian 1.2 saat ini sedikit berbeda dari teks di atas. Deviasi editorial ini disengaja untuk membuat dokumen pengguna ini konsisten tanpa mengubah konten sebenarnya dari Kontrak Sosial.

Pengguna harus menyadari risiko menggunakan paket-paket di area non-free, non-free-firmware, dan contrib:

  • ketiadaan kebebasan untuk paket perangkat lunak tersebut

  • ketiadaan dukungan dari Debian pada paket perangkat lunak tersebut (Debian tidak dapat mendukung perangkat lunak dengan benar tanpa memiliki akses ke kode sumbernya.)

  • kontaminasi sistem Debian 100% bebas Anda

Debian Free Software Guidelines (Panduan Perangkat Lunak Bebas Debian) adalah standar perangkat lunak bebas untuk Debian. Debian menafsirkan "perangkat lunak" dalam lingkup terluas termasuk dokumen, firmware, logo, dan data karya seni dalam paket. Hal ini membuat standar perangkat lunak bebas Debian sangat ketat.

Paket non-free, non-free-firmware, dan contrib umumnya termasuk paket yang dapat didistribusikan secara bebas dari jenis berikut:

  • Paket dokumen di bawah GNU Free Documentation License (Lisensi Dokumentasi Bebas GNU) dengan bagian invarian seperti yang untuk GCC dan Make. (sebagian besar ditemukan di bagian non-free/doc.)

  • Paket-paket firmware yang berisi data biner tanpa sumber seperti yang terdaftar dalam Bagian 9.10.5, “Driver perangkat keras dan firmware” sebagai non-free-firmware. (sebagian besar ditemukan di bagian non-free-firmware/kernel.)

  • Paket=paket permainan dan fonta dengan pembatasan penggunaan komersial dan/atau modifikasi konten.

Harap dicatat bahwa cacah paket non-free, non-free-firmware, dan contrib kurang dari 2% dari paket-paket main. Memfungsikan akses ke area non-free, non-free-firmware, dan contrib tidak mengaburkan sumber paket. Penggunaan aptitude(8) layar penuh interaktif memberi Anda visibilitas penuh dan kontrol atas paket apa yang dipasang dari area mana untuk menjaga sistem Anda sebebas yang Anda inginkan.

Sistem Debian menawarkan serangkaian paket biner yang konsisten melalui mekanisme deklarasi ketergantungan biner versinya di ruas berkas control. Berikut adalah sedikit definisi yang disederhanakan untuk mereka.

  • "Depends"

    • Ini menyatakan ketergantungan mutlak dan semua paket yang tercantum dalam ruas ini harus dipasang pada saat yang sama atau sebelumnya.

  • "Pre-Depends"

    • Ini seperti Depends, kecuali bahwa itu memerlukan instalasi lengkap dari paket yang terdaftar sebelumnya.

  • "Recommends"

    • Ini menyatakan ketergantungan yang kuat, tetapi tidak mutlak. Sebagian besar pengguna tidak menginginkan paket kecuali semua paket yang tercantum di ruas ini dipasang.

  • "Suggests"

    • Ini menyatakan ketergantungan yang lemah. Banyak pengguna paket ini mungkin mendapat manfaat dari memasang paket yang tercantum di ruas ini tetapi dapat memiliki fungsi yang wajar tanpa mereka.

  • "Enhances"

    • Ini menyatakan ketergantungan lemah seperti Suggests tetapi bekerja ke arah yang berlawanan.

  • "Breaks"

    • Ini menyatakan ketidakcocokan paket biasanya dengan beberapa spesifikasi versi. Umumnya resolusinya adalah untuk meningkatkan semua paket yang tercantum dalam ruas ini.

  • "Conflicts"

    • Ini menyatakan ketidakcocokan mutlak. Semua paket yang tercantum di ruas ini harus dihapus untuk memasang paket ini.

  • "Replaces"

    • Ini dinyatakan ketika berkas yang dipasang oleh paket ini menggantikan berkas dalam paket yang terdaftar.

  • "Provides"

    • Ini dinyatakan ketika paket ini menyediakan semua berkas dan fungsionalitas dalam paket yang terdaftar.

[Catatan] Catatan

Harap dicatat bahwa mendefinisikan "Provides", "Conflicts", dan "Replaces" secara bersamaan ke paket virtual adalah konfigurasi yang waras. Ini memastikan bahwa hanya satu paket nyata yang menyediakan paket virtual ini yang dapat dipasang pada satu waktu.

Definisi resmi termasuk ketergantungan sumber dapat ditemukan dalam Manual Kebijakan: Bab 7 - Mendeklarasikan hubungan antar paket.

Berikut adalah ringkasan dari alur kejadian yang disederhanakan dari manajemen paket oleh APT.

Di sini, saya sengaja melewatkan detail teknis demi gambaran besar.

Apa pun keluarga sistem Debian yang mungkin Anda putuskan untuk digunakan, Anda mungkin masih ingin menjalankan versi program yang tidak tersedia di keluarga tersebut. Bahkan jika Anda menemukan paket biner program tersebut di keluarga Debian lain atau dalam sumber non-Debian lainnya, persyaratan mereka dapat bertentangan dengan sistem Debian saat ini.

Walaupun Anda bisa men-tweak sistem manajemen paket dengan teknik apt-pinning dsb. seperti yang diuraikan dalam Bagian 2.7.7, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.” untuk memasang paket biner tak selaras seperti itu, pendekatan tweaking seperti itu hanya memiliki use case terbatas karena mereka mungkin merusak program itu dan sistem Anda.

Sebelum secara brutal memasang paket tak selaras seperti itu, Anda harus mencari semua alternatif solusi teknis yang lebih aman yang kompatibel dengan sistem Debian Anda saat ini.

Operasi manajemen paket berbasis repositori pada sistem Debian dapat dilakukan oleh banyak alat manajemen paket berbasis APT yang tersedia pada sistem Debian. Di sini, kami menjelaskan 3 alat manajemen paket dasar: apt, apt-get / apt-cache, dan aptitude.

Untuk operasi manajemen paket yang melibatkan instalasi paket atau pembaruan metadata paket, Anda harus memiliki hak istimewa root.

Meskipun aptitude adalah alat interaktif yang sangat bagus yang terutama digunakan penulis, Anda harus mengetahui beberapa fakta peringatan:

Perintah apt-get dan apt-cache adalah alat manajemen paket berbasis APT yang paling dasar.

  • apt-get dan apt-cache hanya menawarkan antarmuka pengguna baris perintah.

  • apt-get paling cocok untuk peningkatan sistem mayor antara rilis, dll.

  • apt-get menawarkan pengurai ketergantungan paket yang kuat.

  • apt-get kurang menuntut sumber daya perangkat keras. Ini mengkonsumsi lebih sedikit memori dan berjalan lebih cepat.

  • apt-cache menawarkan pencarian berbasis regex standar pada nama dan deskripsi paket.

  • apt-get dan apt-cache dapat mengelola beberapa versi paket menggunakan /etc/apt/preferences tetapi cukup rumit.

Perintah apt adalah antarmuka baris perintah tingkat tinggi untuk manajemen paket. Ini pada dasarnya adalah pembungkus apt-get, apt-cache, dan perintah-perintah serupa, awalnya dimaksudkan sebagai antarmuka pengguna akhir dan memungkinkan beberapa opsi yang lebih cocok untuk penggunaan interaktif secara default.

  • apt menyediakan bilah kemajuan yang ramah saat memasang paket menggunakan apt install.

  • apt akan menghapus paket .deb yang disinggahkan secara baku setelah instalasi paket yang diunduh dengan sukses.

[Tip] Tip

Pengguna disarankan untuk menggunakan perintah apt(8) baru untuk penggunaan interaktif dan menggunakan perintah apt-get(8) dan apt-cache(8) dalam skrip shell.

Perintah aptitude adalah alat manajemen paket berbasis APT yang paling serbaguna.

  • aptitude menawarkan antarmuka pengguna teks interaktif layar penuh.

  • aptitude menawarkan antarmuka pengguna baris perintah juga.

  • aptitude paling cocok untuk manajemen paket interaktif harian seperti memeriksa paket yang dipasang dan mencari paket yang tersedia.

  • aptitude lebih menuntut pada sumber daya perangkat keras. Ini mengkonsumsi lebih banyak memori dan berjalan lebih lambat.

  • aptitude menawarkan pencarian berbasis regex yang disempurnakan pada semua metadata paket.

  • aptitude dapat mengelola beberapa versi paket tanpa menggunakan /etc/apt/preferences dan itu cukup intuitif.

Berikut adalah operasi manajemen paket dasar dengan baris perintah menggunakan apt(8), aptitude(8), dan apt-get(8) /apt-cache(8).

Tabel 2.6. Operasi manajemen paket dasar dengan baris perintah menggunakan apt(8), aptitude(8), dan apt-get(8) /apt-cache(8)

sintaks apt aptitude syntax sintaks apt-get/apt-cache deskripsi
apt update aptitude update apt-get update memperbarui metadata arsip paket
apt install anu aptitude install foo apt-get install foo memasang versi kandidat paket "foo" dengan dependensinya
apt upgrade aptitude safe-upgrade apt-get upgrade memasang versi kandidat dari paket yang terpasang tanpa menghapus paket lain
apt full-upgrade aptitude full-upgrade apt-get dist-upgrade memasang versi kandidat paket yang terpasang sambil menghapus paket lain jika diperlukan
apt remove anu aptitude remove foo apt-get remove foo menghapus paket "foo" sambil membiarkan berkas konfigurasinya
apt autoremove T/T apt-get autoremove menghapus paket yang terpasang secara otomatis yang tidak lagi diperlukan
apt purge anu aptitude purge foo apt-get purge foo membersihkan paket "foo" dengan berkas-berkas konfigurasinya
apt clean aptitude clean apt-get clean membersihkan sepenuhnya repositori lokal dari berkas-berkas paket yang diambil
apt autoclean aptitude autoclean apt-get autoclean membersihkan repositori lokal dari berkas-berkas paket yang diambil untuk paket-paket usang
apt show anu aptitude show foo apt-cache show foo menampilkan informasi terperinci tentang paket "foo"
apt search regex aptitude search regex apt-cache search regex mencari paket-paket yang cocok dengan regex
T/T aptitude why regex T/T menjelaskan alasan mengapa paket-paket yang cocok regex harus dipasang
T/T aptitude why-not regex T/T menjelaskan alasan mengapa paket-paket yang cocok regex tidak dapat dipasang
apt list --manual-installed aptitude search '~i!~M' apt-mark showmanual menampilkan daftar paket yang dipasang secara manual

apt / apt-get dan aptitude dapat dicampur tanpa masalah besar.

"aptitude why regex" dapat mencantumkan lebih banyak informasi dengan ""aptitude -v why regex". Informasi serupa dapat diperoleh dengan "apt rdepends paket" atau "apt-cache rdepends paket".

Ketika perintah aptitude dimulai dalam mode baris perintah dan menghadapi beberapa masalah seperti konflik paket, Anda dapat beralih ke mode interaktif layar penuh dengan menekan tombol "e" nanti di prompt.

[Catatan] Catatan

Meskipun perintah aptitude dilengkapi dengan fitur yang kaya seperti resolver paket yang disempurnakan, kompleksitas ini telah menyebabkan (atau mungkin masih menyebabkan) beberapa regresi seperti Bug # 411123, Bug # 514930, dan Bug # 570377. Jika terjadi keraguan, silakan gunakan perintah apt, apt-get, dan apt-cache atas perintah aptitude.

Anda dapat memberikan opsi perintah tepat setelah "aptitude".


Lihat aptitude(8) dan "manual pengguna aptitude" di "/usr/share/doc/aptitude/README" untuk lebih lanjut.

Ketukan kunci penting untuk menelusuri status paket dan untuk mengatur "tindakan yang direncanakan" pada mereka dalam mode layar penuh ini adalah sebagai berikut.


Spesifikasi nama berkas dari baris perintah dan prompt menu setelah menekan "l" dan "//" menerima regex aptitude seperti yang dijelaskan di bawah ini. Regex aptitude dapat secara eksplisit mencocokkan nama paket menggunakan string yang dimulai dengan "~n" dan diikuti dengan nama paket.

[Tip] Tip

Anda perlu menekan "U" agar semua paket yang terpasang ditingkatkan ke versi kandidat di antarmuka visual. Jika tidak, hanya paket yang dipilih dan paket tertentu dengan ketergantungan versi kepada mereka yang ditingkatkan ke versi kandidat.

Dalam mode aptitude(8) layar penuh interaktif, paket-paket dalam daftar paket ditampilkan seperti contoh berikutnya.

idA   libsmbclient                             -2220kB 3.0.25a-1  3.0.25a-2

Di sini, baris ini berarti dari kiri sebagai berikut.

  • Bendera "keadaan saat ini" (huruf pertama)

  • Bendera "tindakan yang direncanakan" (huruf kedua)

  • Bendera "otomatis" (huruf ketiga)

  • Nama paket

  • Perubahan penggunaan ruang disk yang dikaitkan dengan "tindakan yang direncanakan"

  • Versi paket saat ini

  • Versi kandidat dari paket

[Tip] Tip

Daftar lengkap bendera diberikan di bagian bawah layar Bantuan yang ditampilkan dengan menekan "?".

Versi kandidat dipilih sesuai dengan preferensi lokal saat ini (lihat apt_preferences(5) dan Bagian 2.7.7, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”).

Beberapa jenis tampilan paket tersedia di bawah menu "Tampilan".


"Tampilan Paket" standar mengkategorikan paket kurang lebih seperti dselect dengan beberapa fitur tambahan.


[Tip] Tip

Tampilan Tugas dapat digunakan untuk memilih paket untuk tugas Anda.

Rumus regex aptitude adalah ERE diperluas mirip mutt (lihat Bagian 1.6.2, “Ekspresi reguler”) dan arti dari ekstensi aturan kecocokan khusus spesifik aptitude adalah sebagai berikut.

Tabel 2.11. Daftar rumus regex aptitude

deskripsi aturan pencocokan yang diperluas rumus regex
cocok pada nama paket ~nregex_nama
cocok pada deskripsi ~dregex_deskripsi
cocokkan pada nama task ~tregex_tugas
cocok dengan debtag ~Gregex_debtag
cocok pada maintainer ~mregex_pemelihara
cocok pada bagian paket ~sregex_seksi
cocok pada versi paket ~Vregex_versi
cocok arsip ~A{bookworm,trixie,sid}
cocok asal ~O{debian,…}
cocok prioritas ~p{extra,important,optional,required,standard}
cocok paket esensial ~E
cocok paket virtual ~v
cocok paket baru ~N
cocok dengan tindakan yang tertunda ~a{install,upgrade,downgrade,remove,purge,hold,keep}
cocok paket terpasang ~i
cocok dengan paket yang dipasang dengan tanda A (paket yang dipasang otomatis) ~M
cocok dengan paket terpasang tanpa tanda M (paket yang dipilih administrator) ~i!~M
cocok dengan paket-paket yang dipasang dan dapat ditingkatkan ~U
cocok dengan paket-paket yang dihapus tetapi belum dibersihkan ~c
cocok dengan paket-paket yang dihapus, dibersihkan, atau dapat-dihapus ~g
cocok dengan paket-paket yang menyatakan ketergantungan yang rusak ~b
cocok dengan paket yang menyatakan ketergantungan tipe yang rusak ~Btipe
cocok dengan pola paket yang menyatakan ketergantungan tipe ~D[tipe:]pola
cocok dengan pola paket yang menyatakan ketergantungan tipe yang rusak ~DB[tipe:]pola
cocok dengan paket yang memiliki pola sesuai dengan paket yang menyatakan ketergantungan tipe ~R[tipe:]pola
cocok dengan paket yang memiliki pola sesuai dengan paket yang menyatakan ketergantungan tipe yang rusak ~RB[tipe:]pola
cocok dengan paket yang beberapa paket terpasang lainnya bergantung pada mereka ~R~i
cocok dengan paket yang tidak bergantung pada paket terpasang lainnya !~R~i
cocok dengan paket yang beberapa paket terpasang lainnya bergantung atau direkomendasikan pada mereka ~R~i|~Rrecommends:~i
cocok dengan pola paket dengan versi yang difilter ~S penyaring pola
cocok dengan semua paket (benar) ~T
tidak cocok dengan paket apa pun (salah) ~F

  • Bagian regex adalah ERE yang sama dengan yang biasa digunakan dalam alat teks mirip Unix memakai "^", ".*", "$" dll. seperti pada egrep(1), awk(1), dan perl(1).

  • Tipe ketergantungan adalah satu dari (depends, predepends, recommends, suggests, conflicts, replaces, provides) yang menyatakan keterkaitan paket.

  • Tipe kebergantungan baku adalah "depends".

[Tip] Tip

Ketika pola_regex adalah string null, tempatkan "~T" segera setelah perintah.

Berikut adalah beberapa pintasan.

  • "~Pistilah" == "~Dprovides:istilah"

  • "~Cistilah" == "~Dconflicts:istilah"

  • "…~W istilah" == "(…|istilah)"

Pengguna yang akrab dengan mutt belajar dengan cepat, karena mutt adalah inspirasi untuk sintaks ekspresi. Lihat "MENCARI, MEMBATASI, DAN EKSPRESI" di "Manual Pengguna" "/usr/share/doc/aptitude/README".

[Catatan] Catatan

Dengan versi lenny aptitude(8), sintaks bentuk panjang baru seperti "?broken" dapat digunakan untuk pencocokan regex di tempat untuk bentuk pendek lama yang setara "~ b". Sekarang karakter spasi " " dianggap sebagai salah satu karakter regex pengakhiran selain karakter tilde "~". Lihat "Manual Pengguna" untuk sintaks bentuk panjang yang baru.

Berikut adalah beberapa contoh operasi aptitude(8).

Berikut adalah cara saya merapikan status pemasangan otomatis/manual untuk paket (setelah menggunakan pemasang paket non-aptitude dll.).

  1. Mulai aptitude dalam mode interaktif sebagai root.

  2. Ketik "u", "U", "f", dan "g" untuk memperbarui dan meningkatkan daftar paket dan paket-paket.

  3. Ketik "l" untuk memasukkan batas tampilan paket sebagai "~i(~R~i|~Rrecommends:~i)" dan ketik "M" di atas "Paket Terpasang" sebagai terpasang otomatis.

  4. Ketik "l" untuk memasukkan batas tampilan paket sebagai "~prequired|~pimportant|~pstandard|~E" dan ketik "m" di atas "Paket Terpasang" sebagai terpasang manual.

  5. Ketik "l" untuk memasukkan batas tampilan paket sebagai "~i!~M" dan hapus paket yang tidak terpakai dengan mengetik "-" di atas masing-masing setelah mengekspos mereka dengan mengetik "[" di atas "Paket Terpasang".

  6. Ketik "l", untuk memasukkan batas tampilan paket sebagai "~i"; kemudian ketik "m" di atas "Tugas" untuk menandai paket itu sebagai terpasang manual.

  7. Keluar dari aptitude.

  8. Mulai "apt-get -s autoremove|less" sebagai root untuk memeriksa apa yang tidak digunakan.

  9. Mulai ulang aptitude dalam mode interaktif dan tandai paket yang dibutuhkan sebagai "m".

  10. Jalankan ulang "apt-get -s autoremove|less" sebagai root untuk memeriksa ulang bahwa DIHAPUS hanya berisi paket yang diharapkan.

  11. Mulai "apt-get autoremove|less" sebagai root untuk menghapus otomatis paket yang tidak terpakai.

Tindakan "m" atas "Tugas" adalah tindakan opsional untuk mencegah situasi penghapusan paket massal di masa depan.

[Catatan] Catatan

Saat pindah ke rilis baru dll, Anda harus mempertimbangkan untuk melakukan instalasi yang bersih dari sistem baru meskipun Debian dapat ditingkatkan seperti yang dijelaskan di bawah ini. Ini memberi Anda kesempatan untuk membuang sampah yang dikumpulkan dan menghadapkan Anda ke kombinasi terbaik dari paket terbaru. Tentu saja, Anda harus membuat cadangan penuh sistem ke tempat yang aman (lihat Bagian 10.2, “Pencadangan dan pemulihan”) sebelum melakukan ini. Saya sarankan untuk membuat konfigurasi boot ganda menggunakan partisi yang berbeda untuk mendapatkan transisi yang paling mulus.

You can perform system wide upgrade to a newer release by changing contents of the source list pointing to a new release and running the "apt update; apt dist-upgrade" command.

To upgrade from stable to testing or unstable during the bookworm-as-stable release cycle, you replace "bookworm" in the source list example of Bagian 2.1.5, “Dasar-dasar arsip Debian” with "trixie" or "sid".

Kenyataannya, Anda mungkin menghadapi beberapa komplikasi karena beberapa masalah transisi paket, sebagian besar karena ketergantungan paket. Semakin besar perbedaan peningkatan, semakin besar kemungkinan Anda menghadapi masalah yang lebih besar. Untuk transisi dari stable lama ke stable baru setelah rilis, Anda dapat membaca Catatan Rilis baru dan mengikuti prosedur yang tepat dijelaskan di dalamnya untuk meminimalkan masalah.

Ketika Anda memutuskan untuk berpindah dari stable ke testing sebelum rilis resminya, tidak ada Catatan Rilis untuk membantu Anda. Perbedaan antara stable dan testing bisa tumbuh cukup besar setelah rilis stable sebelumnya dan membuat situasi peningkatan rumit.

Anda harus membuat langkah pencegahan untuk peningkatan penuh sambil mengumpulkan informasi terbaru dari milis dan menggunakan akal sehat.

  1. Membaca "Catatan Rilis" sebelumnya.

  2. Cadangkan seluruh sistem (terutama data dan informasi konfigurasi).

  3. Memiliki media yang dapat di-boot yang siap untuk bootloader rusak.

  4. Informasikan ke para pengguna sistem jauh sebelumnya.

  5. Rekam aktivitas peningkatan dengan script(1).

  6. Terapkan "unmarkauto" ke paket yang diperlukan, mis., "aptitude unmarkauto vim", untuk mencegah penghapusan.

  7. Minimalkan paket yang dipasang untuk mengurangi kemungkinan konflik paket, mis., menghapus paket tugas desktop.

  8. Hapus berkas "/etc/apt/preferences" (nonaktifkan apt-pinning).

  9. Cobalah untuk meningkatkan secara bertahap: oldstablestabletestingunstable.

  10. Update the source list to point to new archive only and run "aptitude update".

  11. Pasang terlebih dahulu, secara opsional, paket-paket inti baru, mis.,"aptitude install perl".

  12. Jalankan perintah "apt-get -s dist-upgrade" untuk menilai dampak.

  13. Pada akhirknya jalankan perintah "apt-get dist-upgrade".

[Perhatian] Perhatian

Tidak bijaksana untuk melewatkan rilis Debian mayor ketika meningkatkan antar rilis stable.

[Perhatian] Perhatian

Dalam "Catatan Rilis" sebelumnya, GCC, Kernel Linux, initrd-tools, Glibc, Perl, rantai alat APT, dll. membutuhkan perhatian khusus untuk peningkatan seluruh sistem.

Untuk peningkatan harian dalam unstable, lihat Bagian 2.4.3, “Menjaga masalah paket”.

Berikut adalah daftar operasi manajemen paket lain dimana aptitude tingkatnya terlalu tinggi atau tidak memiliki fungsi yang diperlukan.

Tabel 2.13. Daftar operasi manajemen paket tingkat lanjut

perintah aksi
COLUMNS=120 dpkg -l pola_nama_paket menampilkan daftar status paket yang dipasang untuk laporan bug
dpkg -L nama_paket menampilkan daftar isi paket yang dipasang
dpkg -L nama_paket | egrep '/usr/share/man/man.*/.+' menampilkan daftar halaman man untuk paket yang dipasang
dpkg -S pola_nama_berkas daftar paket terpasang yang memiliki nama berkas yang cocok
apt-file search pola_nama_berkas tampilkan daftar paket dalam arsip yang memiliki nama berkas yang cocok
apt-file list pola_nama_paket menampilkan daftar isi paket yang cocok dalam arsip
dpkg-reconfigure nama_paket mengonfigurasi ulang paket yang tepat
dpkg-reconfigure -plow nama_paket mengonfigurasi ulang paket yang tepat dengan pertanyaan paling rinci
configure-debian mengonfigurasi ulang paket dari menu layar penuh
dpkg --audit mengaudit sistem untuk paket-paket yang terpasang sebagian
dpkg --configure -a mengonfigurasi semua paket yang terpasang sebagian
apt-cache policy nama_paket_biner menampilkan versi yang tersedia, prioritas, dan informasi arsip dari suatu paket biner
apt-cache madison nama_paket menampilkan versi yang tersedia, informasi arsip paket
apt-cache showsrc nama_paket_biner menampilkan informasi paket sumber dari suatu paket biner
apt-get build-dep nama_paket memasang paket-paket yang diperlukan untuk membangun paket
aptitude build-dep nama_paket memasang paket-paket yang diperlukan untuk membangun paket
apt-get source nama_paket mengunduh suatu sumber (dari arsip standar)
dget URL untuk berkas dsc mengunduh suatu paket sumber (dari arsip lainnya)
dpkg-source -x nama_paket_versi-revisi.debian.dsc membangun pohon sumber dari satu set paket sumber ("*.orig.tar.gz" dan "*.debian.tar.gz"/"*.diff.gz")
debuild binary membangun paket dari pohon sumber lokal
make-kpkg kernel_image membangun paket kernel dari pohon sumber kernel
make-kpkg --initrd kernel_image membangun paket kernel dari pohon sumber kernel dengan initramfs diaktifkan
dpkg -i nama_paket_versi-revisi.debian_arch.deb memasang sebuah paket lokal ke sistem
apt install /path/ke/namaberkas_paket.deb memasang paket lokal ke sistem, sambil mencoba untuk menyelesaikan ketergantungan secara otomatis
debi nama_paket_versi-revisi.debian_arch.dsc memasang paket lokal ke sistem
dpkg --get-selections '*' >pilihan.txt menyimpan informasi keadaan pemilihan paket tingkat dpkg
dpkg --set-selections <pilihan.txt mengatur informasi keadaan pemilihan paket tingkat dpkg
echo nama_paket hold | dpkg --set-selections menata status pemilihan paket tingkat dpkg untuk paket yang akan ditahan (setara dengan "aptitude hold nama_paket")

[Catatan] Catatan

Untuk paket dengan fitur multi-arch, Anda mungkin perlu menyatakan nama arsitektur untuk beberapa perintah. Misalnya, gunakan "dpkg -L libglib2.0-0:amd64" untuk mencantumkan isi paket libglib2.0-0 bagi arsitektur amd64.

[Perhatian] Perhatian

Alat paket tingkat rendah seperti "dpkg -i …" dan"debi …" harus hati-hati digunakan oleh administrator sistem. Itu tidak secara otomatis mengurus dependensi paket yang diperlukan. Opsi baris perintah dpkg "--force-all" dan yang serupa (lihat dpkg(1)) dimaksudkan untuk digunakan oleh para ahli saja. Menggunakannya tanpa sepenuhnya memahami efeknya dapat merusak seluruh sistem Anda.

Harap catat hal-hal berikut.

Pemasangan debsum memungkinkan verifikasi berkas paket yang terpasang terhadap nilai MD5sum dalam berkas "/var/lib/dpkg/info/*.md5sums" dengan debsum(1). Lihat Bagian 10.3.5, “Sidikjari MD5” untuk cara kerja MD5sum.

[Catatan] Catatan

Karena database MD5sum dapat dirusak oleh penyusup, penggunaan debsum(1) terbatas sebagai alat keamanan. Ini hanya baik untuk memeriksa modifikasi lokal oleh administrator atau kerusakan karena kesalahan media.

Meskipun mengunjungi situs Debian https://packages.debian.org/ memfasilitasi cara mudah untuk mencari data meta paket akhir-akhir ini, mari kita lihat cara yang lebih tradisional.

Perintah grep-dctrl(1), grep-status(1), dan grep-available(1) dapat digunakan untuk mencari berkas apa pun yang memiliki format umum berkas kontrol paket Debian.

"dpkg -S pola_nama_berkas" dapat digunakan untuk mencari nama paket yang berisi berkas dengan nama yang cocok yang dipasang oleh dpkg. Tapi ini mengabaikan berkas-berkas yang dibuat oleh skrip pengelola.

Jika Anda perlu melakukan pencarian yang lebih rumit pada data meta dpkg, Anda perlu menjalankan perintah "grep -e pola_regex *" di direktori "/var/lib/dpkg/info/". Hal ini membuat Anda mencari kata-kata yang disebutkan dalam skrip paket dan teks kueri instalasi.

Jika Anda ingin mencari ketergantungan paket secara rekursif, Anda harus menggunakan apt-rdepends(8).

Mari kita pelajari cara kerja sistem manajemen paket Debian secara internal. Ini akan membantu Anda membuat solusi sendiri untuk beberapa masalah paket.

[Tip] Tip

Berkas "Release" tingkat puncak digunakan untuk menandatangani arsip di bawah sistem APT yang aman.

Setiap keluarga arsip Debian memiliki berkas "Release" tingkat puncak, mis., "http://deb.debian.org/debian/dists/unstable/Release", sebagai berikut.

Origin: Debian
Label: Debian
Suite: unstable
Codename: sid
Date: Sat, 14 May 2011 08:20:50 UTC
Valid-Until: Sat, 21 May 2011 08:20:50 UTC
Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc
Components: main contrib non-free
Description: Debian x.y Unstable - Not Released
MD5Sum:
 bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz
 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz
 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz
...
[Catatan] Catatan

Di sini, Anda dapat menemukan alasan saya untuk menggunakan "keluarga", dan "nama kode" di Bagian 2.1.5, “Dasar-dasar arsip Debian”. "Distribusi" digunakan ketika mengacu pada "keluarga" dan "nama kode". Semua nama "area" arsip yang ditawarkan oleh arsip tercantum di bawah "Komponen".

The integrity of the top level "Release" file is verified by cryptographic infrastructure called the secure apt as described in apt-secure(8).

  • Berkas tanda tangan kriptografis "Release.gpg" dibuat dari berkas "Release" tingkat puncak yang otentik dan kunci arsip Debian rahasia.

  • The public Debian archive keys are locally installed by the latest debian-archive-keyring package.

  • The secure APT system automatically verifies the integrity of the downloaded top level "Release" file cryptographically by this "Release.gpg" file and the locally installed public Debian archive keys.

  • Integritas semua berkas "Packages" dan "Sources" diverifikasi dengan menggunakan nilai MD5sum dalam berkas "Release" tingkat puncak. Integritas semua berkas paket diverifikasi dengan menggunakan nilai MD5sum dalam berkas "Packages" dan "Sources". Lihat debsum(1) dan Bagian 2.4.2, “Verifikasi berkas-berkas paket yang terpasang”.

  • Karena verifikasi tanda tangan kriptografis adalah proses yang jauh lebih intensif CPU daripada perhitungan nilai MD5sum, penggunaan nilai MD5sum untuk setiap paket saat menggunakan tanda tangan kriptografis untuk berkas "Releases" tingkat puncak memberikan keamanan yang baik dengan kinerja (lihat Bagian 10.3, “Infrastruktur keamanan data”).

Bila entri daftar sumber menyatakan opsi "signed-by", integritas berkas "Release" tingkat puncaknya yang diunduh diverifikasi memakai kunci publik yang dinyatakan. Ini berguna ketika daftar sumber menmuat arsip-arsip non-Debian.

[Tip] Tip

The use of apt-key(8) command for APT key management is deprecated.

Also, you can manually verify the integrity of the "Release" file with the "Release.gpg" file and the public Debian archive key posted on ftp-master.debian.org using gpg.

When APT tools, such as aptitude, apt-get, synaptic, apt-file, auto-apt, … are used, we need to update the local copies of the meta data containing the Debian archive information. These local copies have following file names corresponding to the specified distribution, area, and architecture names in the source list (see Bagian 2.1.5, “Dasar-dasar arsip Debian”).

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribusi_Release"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribusi_Release.gpg"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribusi_area_binary-arsitektur_Packages"

  • "/var/lib/apt/lists/deb.debian.org_debian_dists_distribusi_area_source_Sources"

  • "/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribusi_Contents-arsitektur.gz" (untuk apt-file)

First 4 types of files are shared by all the pertinent APT commands and updated from command line by "apt-get update" or "aptitude update". The "Packages" meta data are updated if the "deb" is specified in the source list. The "Sources" meta data are updated if the "deb-src" is specified in the source list.

Data meta "Packages" dan "Sources" berisi stanza ""Filename:" yang menunjuk ke lokasi berkas paket biner dan sumber. Saat ini, paket-paket ini terletak di bawah pohon direktori "pool/" untuk transisi antar rilis yang lebih baik.

Salinan lokal dari meta data "Packages" dapat secara interaktif dicari dengan bantuan aptitude. Perintah pencarian khusus grep-dctrl(1) dapat mencari salinan lokal dari meta data "Packages" dan "Sources".

Salinan lokal dari data meta "Contents-arsitektur" dapat diperbarui dengan "apt-file update" dan lokasinya berbeda dari 4 yang lainnya. Lihat apt-file(1). auto-apt menggunakan lokasi yang berbeda untuk salinan lokal "Contents-arsitektur.gz" sebagai baku.)

Berkas-berkas paket Debian memiliki struktur nama tertentu.


[Tip] Tip

Di sini hanya format paket sumber dasar yang dijelaskan. Lihat selengkapnya di dpkg-source(1).


[Catatan] Catatan

Anda dapat memeriksa urutan versi paket dengan dpkg(1), misalnya, "dpkg --compare-versions 7.0 gt 7.~pre1 ; echo $?" .

[Catatan] Catatan

debian-installer (d-i) menggunakan udeb sebagai ekstensi berkas untuk paket binernya, bukan debnormal. Paket udeb adalah paket deb yang dirampingkan dengan menghilangkan beberapa konten yang tidak penting seperti dokumentasi untuk menghemat ruang sambil melonggarkan persyaratan kebijakan paket. Paket deb dan Udeb berbagi struktur paket yang sama. "u" singkatan dari mikro.

dpkg(1) adalah alat tingkat terendah untuk manajemen paket Debian. Ini sangat kuat dan perlu digunakan dengan hati-hati.

Saat memasang paket yang disebut "nama_paket", dpkg mengolahnya dalam urutan berikut.

  1. Membuka kemasan berkas deb ("setara ar -x")

  2. Menjalankan "nama_paket.preinst" menggunakan debconf(1)

  3. Memasang konten paket ke sistem ("setara tar -x"")

  4. Menjalankan "nama_paket.postinst" menggunakan debconf(1)

Sistem debconf menyediakan interaksi pengguna standar dengan dukungan I18N dan L10N (Bab 8, I18N dan L10N).


Berkas "status" juga digunakan oleh alat-alat seperti dpkg(1), "dselect update", dan "apt-get -u dselect-upgrade".

Perintah pencarian khusus grep-dctrl(1) dapat mencari salinan lokal dari meta data "status" dan "available".

[Tip] Tip

Di lingkungan debian-installer, perintah udpkg digunakan untuk membuka paket udeb. Perintah udpkg adalah versi ramping dari perintah dpkg.

Ketika menjalankan sistem testing atau unstable, administrator diharapkan memulihkan dari situasi manajemen paket yang rusak.

[Perhatian] Perhatian

Beberapa metode yang dijelaskan di sini adalah tindakan berisiko tinggi. Anda telah diperingatkan!

Kesalahan penyinggahan data paket menyebabkan kesalahan yang menarik, seperti "Kesalahan GPG: ... tidak valid: BADSIG ..." dengan APT.

Anda harus menghapus semua data yang disinggahkan dengan "sudo rm -rf /var/lib/apt/* " dan coba lagi. (Jika apt-cacher-ng digunakan, Anda juga harus menjalankan "sudo rm -rf /var/cache/apt-cacher-ng/* ".)

Sistem manajemen paket tingkat arsip, seperti aptitude(8) atau apt-get(1), bahkan tidak mencoba memasang paket dengan berkas yang tumpang tindih menggunakan dependensi paket (lihat Bagian 2.1.7, “Dependensi paket”).

Kesalahan oleh pengelola paket atau penyebaran sumber arsip campuran yang tidak konsisten (lihat Bagian 2.7.6, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”) oleh administrator sistem dapat menciptakan situasi dengan dependensi paket yang salah didefinisikan. Ketika Anda memasang paket dengan berkas yang tumpang tindih menggunakan aptitude(8) atau apt-get(1) dalam situasi seperti itu, dpkg(1) yang membuka kemasan paket memastikan untuk mengembalikan kesalahan ke program pemanggil tanpa menimpa berkas yang ada.

[Perhatian] Perhatian

Penggunaan paket pihak ketiga memperkenalkan risiko sistem yang signifikan melalui skrip pengelola yang dijalankan dengan hak istimewa root dan dapat melakukan apa saja pada sistem Anda. Perintah dpkg(1) hanya melindungi terhadap penimpaan oleh pembukaan kemasan.

Anda dapat mengatasi instalasi yang rusak tersebut dengan pertama kali menghapus paket lama yang bermasalah, paket-lama.

$ sudo dpkg -P old-package

Karena dpkg adalah alat paket tingkat yang sangat rendah, ia dapat berfungsi di bawah situasi yang sangat buruk seperti sistem yang tidak dapat di-boot tanpa koneksi jaringan. Mari kita asumsikan paket foo rusak dan perlu diganti.

Anda mungkin masih menemukan salinan singgahan dari versi bebas bug yang lebih lama dari paket foo di direktori singgahan paket: "/var/cache/apt/archives/". (Jika tidak, Anda dapat mengunduhnya dari arsip https://snapshot.debian.org/ atau menyalinnya dari singgahan paket mesin yang berfungsi.)

Jika Anda dapat mem-boot sistem, Anda dapat memasangnya dengan perintah berikut.

# dpkg -i /path/to/foo_old_version_arch.deb
[Tip] Tip

Jika kerusakan sistem kecil, Anda dapat menuruntingkatkan seluruh sistem seperyi dalam Bagian 2.7.11, “Penurunan tingkat darurat” menggunakan sistem APT tingkat yang lebih tinggi.

Jika sistem Anda tidak dapat di-boot dari hard disk, Anda harus mencari cara lain untuk mem-bootnya.

  1. Mem-boot sistem menggunakan CD debian-installer dalam mode penyelamatan.

  2. Kait sistem yang tidak dapat di-boot pada hard disk ke "/target".

  3. Pasang versi paket foo yang lebih lama dengan yang berikut ini.

# dpkg --root /target -i /path/to/foo_old_version_arch.deb

Contoh ini bekerja bahkan jika perintah dpkg pada hard disk rusak.

[Tip] Tip

Setiap sistem GNU/Linux dimulai oleh sistem lain pada hard disk, CD GNU/Linux live, flash disk USB yang dapat di-boot, atau netboot dapat digunakan secara serupa untuk menyelamatkan sistem yang rusak.

Jika mencoba memasang paket dengan cara ini gagal karena beberapa pelanggaran ketergantungan dan Anda benar-benar perlu melakukan ini sebagai upaya terakhir, Anda dapat mengesampingkan ketergantungan menggunakan "--ignore-depends", "--force-depends", dan opsi dpkg lainnya. Jika Anda melakukan ini, Anda perlu melakukan upaya serius untuk mengembalikan ketergantungan yang tepat nanti. Lihat dpkg(8) untuk detailnya.

[Catatan] Catatan

Jika sistem Anda rusak parah, Anda harus membuat cadangan penuh sistem ke tempat yang aman (lihat Bagian 10.2, “Pencadangan dan pemulihan”) dan harus melakukan instalasi bersih. Ini lebih singkat dan memberikan hasil yang lebih baik pada akhirnya.

For simplicity, the source list examples in this section are presented as "/etc/apt/sources.list" in one-line-style after the bookworm release.

There are stable-updates ("bookworm-updates" during the bookworm-as-stable release cycle) and backports.debian.org archives which provide upgrade packages for stable.

Untuk menggunakan arsip ini, Anda mencantumkan semua arsip yang diperlukan dalam berkas "/etc/apt/sources.list" seperti berikut ini.

deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free
deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free
deb http://deb.debian.org/debian/ bookworm-backports main non-free-firmware contrib non-free

Tidak perlu mengatur nilai Pin-Priority secara eksplisit dalam berkas "/etc/apt/preferences". Ketika paket yang lebih baru tersedia, konfigurasi baku menyediakan peningkatan yang paling masuk akal (lihat Bagian 2.5.3, “Berkas "Release" tingkat arsip”).

  • Semua paket lama yang terpasang ditingkatkan ke yang lebih baru dari bookworm-updates.

  • Hanya paket lama yang dipasang secara manual dari bookworm-backports yang ditingkatkan ke yang lebih baru dari bookworm-backports.

Setiap kali Anda ingin memasang paket bernama "nama-paket" dengan ketergantungannya dari arsip bookworm-backports secara manual, Anda menggunakan perintah berikut saat beralih rilis target dengan opsi "-t".

$ sudo apt-get install -t bookworm-backports package-name
[Awas] Awas

Jangan memasang terlalu banyak paket dari arsip backports.debian.org. Itu bisa menyebabkan komplikasi kebergantungan paket. Lihat Bagian 2.1.11, “Bagaimana menghadapi persyaratan yang bertentangan” untuk solusi-solusi alternatif.

[Perhatian] Perhatian

Installing packages from mixed source of archives is not supported by the official Debian distribution except for officially supported particular combinations of archives such as stable with security updates and stable-updates.

Berikut adalah contoh operasi untuk memasukkan paket versi hulu baru tertentu yang ditemukan di unstable sambil melacak testing untuk satu kesempatan.

  1. Ubah berkas "/etc/apt/sources.list" untuk sementara menjadi entri tunggal "unstable".

  2. Jalankan "aptitude update".

  3. Jalankan "aptitude install nama-paket".

  4. Pulihkan berkas asli "/etc/apt/sources.list" untuk testing.

  5. Jalankan "aptitude update".

Anda tidak membuat berkas "/etc/apt/preferences" atau khawatir tentang apt-pinning dengan pendekatan manual ini. Tapi ini sangat rumit.

[Perhatian] Perhatian

Saat menggunakan sumber arsip campuran, Anda harus memastikan sendiri kompatibilitas paket karena Debian tidak menjaminnya. Jika ketidakcocokan paket ada, Anda dapat merusak sistem. Anda harus dapat menilai persyaratan teknis ini. Penggunaan sumber campuran arsip acak benar-benar merupakan operasi opsional dan penggunaannya bukan sesuatu yang saya dorong Anda untuk lakukan.

Aturan umum untuk memasang paket dari arsip yang berbeda adalah sebagai berikut.

[Catatan] Catatan

Untuk membuat paket menjadi lebih aman untuk dipasang, beberapa paket program biner komersial non-free dapat disediakan dengan pustaka yang sepenuhnya di-link secara statis. Anda masih harus memeriksa masalah kompatibilitas ABI dsb. untuk mereka.

[Catatan] Catatan

Kecuali untuk menghindari paket rusak dalam jangka pendek, memasang paket biner dari arsip non-Debian umumnya ide buruk. Anda harus mencari semua alternatif solusi teknis yang lebih aman yang kompatibel dengan sistem Debian Anda saat ini (lihat Bagian 2.1.11, “Bagaimana menghadapi persyaratan yang bertentangan”).

[Awas] Awas

Penggunaan apt-pinning oleh pengguna pemula itu mengundang masalah besar. Anda harus menghindari menggunakan apt-pinning kecuali ketika Anda benar-benar membutuhkannya.

Tanpa berkas "/etc/apt/preferences", sistem APT memilih versi terbaru yang tersedia sebagai versi kandidat menggunakan string versi. Ini adalah keadaan normal dan penggunaan sistem APT yang paling direkomendasikan. Semua kombinasi arsip yang didukung secara resmi tidak memerlukan berkas "/etc/apt/preferences" karena beberapa arsip yang tidak boleh digunakan sebagai sumber otomatis peningkatan ditandai sebagai NotAutomatic dan ditangani dengan benar.

[Tip] Tip

Aturan perbandingan string versi dapat diverifikasi dengan, misalnya, "dpkg --compare-versions ver1.1 gt ver1.1~1; echo $?" (lihat dpkg(1)).

Ketika Anda memasang paket dari sumber campuran arsip (lihat Bagian 2.7.6, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”) secara teratur, Anda dapat mengotomatisasi operasi rumit ini dengan membuat berkas "/etc/apt/preferences" dengan entri yang tepat dan mengutak-atik aturan pemilihan paket untuk versi kandidat seperti yang dijelaskan dalam apt_preferences(5). Ini disebut apt-pinning.

Saat menggunakan apt-pinning, Anda harus memastikan kompatibilitas paket sendiri karena Debian tidak menjaminnya. Apt-pinning adalah operasi yang benar-benar opsional dan penggunaannya bukanlah sesuatu yang saya anjurkan untuk Anda gunakan.

Archive level Release files (see Bagian 2.5.3, “Berkas "Release" tingkat arsip”) are used for the rule of apt_preferences(5). Thus apt-pinning works only with "suite" name for normal Debian archives and security Debian archives. (This is different from Ubuntu archives.) For example, you can do "Pin: release a=unstable" but can not do "Pin: release a=sid" in the "/etc/apt/preferences" file.

Ketika Anda menggunakan arsip non-Debian sebagai bagian dari apt-pinning, Anda harus memeriksa apa yang mereka maksudkan untuk dan juga memeriksa kredibilitas mereka. Misalnya, Ubuntu dan Debian tidak dimaksudkan untuk dicampur.

[Catatan] Catatan

Bahkan jika Anda tidak membuat berkas "/etc/apt/preferences", Anda dapat melakukan operasi sistem yang cukup kompleks (lihat Bagian 2.6.6, “Penyelamatan dengan perintah dpkg” dan Bagian 2.7.6, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”) tanpa apt-pinning.

Berikut adalah penjelasan sederhana tentang teknik apt-pinning.

Sistem APT memilih paket peningkatan dengan Pin-Priority tertinggi dari sumber paket yang tersedia yang didefinisikan dalam berkas "/etc/apt/sources.list" sebagai paket versi kandidat. Jika Pin-Priority paket lebih besar dari 1000, pembatasan versi ini untuk peningkatan dihapus untuk mengaktifkan penurunan tingkat (lihat Bagian 2.7.11, “Penurunan tingkat darurat”).

Nilai Pin-Priority dari setiap paket didefinisikan oleh entri "Pin-Priority" dalam berkas "/etc/apt/preferences" atau menggunakan nilai defaultnya.


The target release archive can be set by the command line option, e.g., "apt-get install -t testing some-package"

Arsip NotAutomatic dan ButAutomaticUpgrades diatur oleh server arsip yang memiliki berkas Release tingkat arsip (lihat Bagian 2.5.3, “Berkas "Release" tingkat arsip”) yang berisi "NotAutomatic: yes" dan "ButAutomaticUpgrades: yes". Arsip NotAutomatic diatur oleh server arsip yang memiliki berkas Release tingkat arsip yang hanya berisi "NotAutomatic: yes".

Situasi apt-pinning paket dari beberapa sumber arsip ditampilkan oleh "apt-cache policy paket".

  • Baris yang diawali dengan ""Package pin:" mencantumkan daftar versi paket pin jika asosiasi hanya dengan paket didefinisikan, mis., "Package pin: 0.190".

  • Tidak ada baris dengan "Package pin:" yang ada jika tidak ada asosiasi hanya dengan paket yang didefinisikan.

  • Nilai Pin-Priority yang terkait hanya dengan paket tercantum di sisi kanan semua string versi, mis., "0.181 700".

  • "0" terdaftar di sisi kanan semua string versi jika tidak ada asosiasi hanya dengan paket yang didefinisikan, mis., "0.181 0".

  • Nilai Pin-Priority arsip (didefinisikan sebagai "Package: *" dalam berkas "/etc/apt/preferences") terdaftar di sisi kiri semua jalur arsip, mis., "100 http://deb.debian.org/debian/ bookworm-backports/main Packages".

[Awas] Awas

Penggunaan apt-pinning oleh pengguna pemula itu mengundang masalah besar. Anda harus menghindari menggunakan apt-pinning kecuali ketika Anda benar-benar membutuhkannya.

Berikut adalah contoh teknik apt-pinning untuk menyertakan paket versi hulu baru tertentu yang ditemukan dalam unstable secara teratur ditingkatkan saat melacak testing. Anda mencantumkan semua arsip yang diperlukan dalam berkas "/etc/apt/sources.list" dengan cara berikut ini.

deb http://deb.debian.org/debian/ testing main contrib non-free
deb http://deb.debian.org/debian/ unstable main contrib non-free
deb http://security.debian.org/debian-security testing-security main contrib

Atur berkas "/etc/apt/preferences" dengan cara berikut ini.

Package: *
Pin: release a=unstable
Pin-Priority: 100

Ketika Anda ingin memasang paket bernama "nama-paket" dengan dependensinya dari arsip unstable di bawah konfigurasi ini, Anda mengeluarkan perintah berikut yang mengalihkan rilis target dengan opsi "-t" (Pin-Priority unstable menjadi 990).

$ sudo apt-get install -t unstable package-name

Dengan konfigurasi ini, eksekusi biasa "apt-get upgrade" dan "apt-get dist-upgrade" (atau "aptitude safe-upgrade" dan "aptitude full-upgrade") meningkatkan paket-paket yang dipasang dari arsip testing menggunakan arsip testing saat ini dan paket-paket yang dipasang dari arsip unstable menggunakan arsip unstable saat ini.

[Perhatian] Perhatian

Berhati-hatilah untuk tidak menghapus entri "testing" entri dari "/etc/apt/sources.list". Tanpa entri "testing di dalamnya, sistem APT meningkatkan paket menggunakan arsip unstable yang lebih baru.

[Tip] Tip

Saya biasanya menyunting berkas "/etc/apt/sources.list" untuk mengomentari entri arsip "unstabil" tepat setelah operasi di atas. Ini menghindari proses pembaruan yang lambat karena memiliki terlalu banyak entri dalam berkas "/etc/apt/sources.list" meskipun ini mencegah peningkatan paket yang dipasang dari arsip unstable menggunakan arsip unstable saat ini.

[Tip] Tip

Jika "Pin-Priority: 1" digunakan sebagai pengganti "Pin-Priority: 100" dalam berkas "/etc/apt/preferences", paket yang sudah diinstal dengan nilai Pin-Priority 100 tidak ditingkatkan oleh arsip unstable bahkan jika entri "testing" di "/etc/apt/sources.list" dihapus.

Jika Anda ingin melacak paket tertentu dalam unstable secara otomatis tanpa instalasi awal "-t unstable", Anda harus membuat berkas "/etc/apt/preferences" dan secara eksplisit mencantumkan semua paket tersebut di bagian atasnya sebagai berikut.

Package: package-1
Pin: release a=unstable
Pin-Priority: 700

Package: package-2
Pin: release a=unstable
Pin-Priority: 700

Ini menetapkan nilai Pin-Priority untuk setiap paket tertentu. Misalnya, untuk melacak versi unstable terbaru dari "Referensi Debian" ini dalam bahasa Inggris, Anda harus memiliki entri berikut dalam berkas "/etc/apt/preferences".

Package: debian-reference-en
Pin: release a=unstable
Pin-Priority: 700

Package: debian-reference-common
Pin: release a=unstable
Pin-Priority: 700
[Tip] Tip

Teknik apt-pinning ini berlaku bahkan ketika Anda melacak arsip stable. Sejauh ini, paket dokumentasi selalu aman untuk dipasang dari arsip unstable dalam pengalaman saya.

[Awas] Awas

Penggunaan apt-pinning oleh pengguna pemula itu mengundang masalah besar. Anda harus menghindari menggunakan apt-pinning kecuali ketika Anda benar-benar membutuhkannya.

[Perhatian] Perhatian

Penurunan tingkat tidak secara resmi didukung oleh Debian secara desain. Ini harus dilakukan hanya sebagai bagian dari proses pemulihan darurat. Terlepas dari situasi ini, telah diketahui bekerja dengan baik dalam banyak insiden. Untuk sistem kritis, Anda harus mencadangkan semua data penting pada sistem setelah operasi pemulihan dan memasang ulang sistem baru dari awal.

Anda mungkin beruntung untuk menurun-tingkatkan dari arsip yang lebih baru ke arsip lama untuk memulihkan dari peningkatan sistem yang rusak dengan memanipulasi versi kandidat (lihat Bagian 2.7.7, “Berikut adalah penjelasan sederhana tentang teknik apt-pinning.”). Ini adalah alternatif malas untuk tindakan membosankan dari banyak perintah "dpkg -i paket-rusak_versi-lama.deb" perintah (lihat Bagian 2.6.6, “Penyelamatan dengan perintah dpkg”).

Cari baris-baris di berkas "/etc/apt/sources.list" yang melacak unstable sebagai berikut.

deb http://deb.debian.org/debian/ sid main contrib non-free

Ganti dengan yang berikut untuk melacak testing.

deb http://deb.debian.org/debian/ trixie main contrib non-free

Atur berkas "/etc/apt/preferences" dengan cara berikut ini.

Package: *
Pin: release a=testing
Pin-Priority: 1010

Jalankan "apt-get update; apt-get dist-upgrade" untuk memaksa penurunan tingkat paket di seluruh sistem.

Hapus berkas khusus "/etc/apt/preferences" ini setelah penurunan tingkat darurat ini.

[Tip] Tip

Ide yang baik untuk menghapus (tidak membersihkan!) sebanyak mungkin paket untuk meminimalkan masalah ketergantungan. Anda mungkin perlu menghapus dan memasang beberapa paket secara manual untuk menurun-tingkatkan sistem secara manual. Kernel Linux, bootloader, udev, PAM, APT, dan paket terkait jaringan serta berkas-berkas konfigurasi mereka membutuhkan perhatian khusus.