6.2. Perintah aptitude
, apt-get
, dan apt
APT merupakan proyek yang luas, yang mulanya direncanakan menyertakan antarmuka grafis. Berbasis pada pustaka yang berisi aplikasi inti, dan
apt-get
adalah front end pertama — berbasis baris-perintah — yang telah dikembangkan di dalam proyek.
apt
adalah front end berbasis baris-perintah kedua yang disediakan oleh APT yang mengatasi beberapa kesalahan desain
apt-get
.
Kedua alat dibangun di atas pustaka yang sama dan dengan demikian sangat dekat, tetapi perilaku baku apt
telah ditingkatkan untuk penggunaan interaktif dan untuk benar-benar melakukan apa yang diharapkan sebagian besar pengguna. Pengembang APT berhak untuk mengubah antarmuka publik alat ini untuk lebih meningkatkannya. Sebaliknya, antarmuka publik dari apt-get
didefinisikan dengan baik dan tidak akan berubah dengan cara yang tidak kompatibel ke belakang. Dengan demikian itu adalah alat yang ingin Anda gunakan saat Anda perlu menulis skrip instalasi paket.
Beberapa antarmuka grafis kemudian muncul sebagai proyek eksternal: synaptic
, aptitude
(yang menyertakan antarmuka mode teks dan grafis - bahkan jika belum selesai), wajig
,dll. Antarmuka yang paling direkomendasikan, apt
, adalah yang akan kita gunakan pada contoh-contoh yang diberikan pada bagian ini. Namun, perhatikan bahwa sintaks baris perintah apt-get
dan aptitude
sangat mirip. Ketika ada beberapa perbedaan utama antara ketiga perintah ini, perbedaan ini akan dirinci.
For any work with APT, the list of available packages needs to be updated; this can be done simply through apt update
. Depending on the speed of your connection and configuration, the operation can take a while, since it involves downloading a certain number of (usually compressed) files (Packages
, Sources
, Translation-language-code
), which have gradually become bigger and bigger as Debian has developed (at least 14-18 MB of data for the main
section). Of course, installing from a CD-ROM/DVD set does not require any downloading — in this case, the operation is very fast.
6.2.2. Instalasi dan Penghapusan
With APT, packages can be added or removed from the system, respectively with apt install package
and apt remove package
. In both cases, APT will automatically install the necessary dependencies or delete the packages which depend on the package that is being removed. The apt purge package
command involves a complete uninstallation by deleting the configuration and data files as well.
Jika berkas
sources.list
menyebutkan beberapa distribusi, memungkinkan untuk memberi versi paket yang diinstall. Nomor versi paket yang spesifik dapat diminta dengan
apt install paket=versi
, namun menunjuk distribusi asli (
Stable,
Testing, atau
Unstable) — dengan
apt install paket/distribusi
— biasanya lebih disukai. Dengan perintah ini, memungkinkan untuk paket kembali ke versi yang lebih tua (misalnya Anda mengetahui bahwa itu bekerja dengan baik), asal masih tersedia pada salah satu sumber yang dirujuk oleh berkas
sources.list
. Bila tidak, arsip
snapshot.debian.org
dapat hadir sebagai penyelamat (lihat bilah tepi
MELANGKAH LEBIH JAUH Versi paket lama: snapshot.debian.org
dan archive.debian.org
).
Contoh 6.4. Instalasi versi Unstable dari spamassassin
#
apt install spamassassin/unstable
If the package to install has been made available to you under the form of a simple .deb
file without any associated package repository, it is still possible to use APT to install it together with its dependencies (provided that the dependencies are available in the configured repositories) with a simple command: apt install ./path-to-the-package.deb
. The leading ./
is important to make it clear that we are referring to the name of a file and not to the name of a package available in one of the repositories.
6.2.3. Pembaharuan Sistem
Pembaharuan berkala direkomendasikan, karena mereke menyertakan pembaharuan keamanan. Untuk upgrade, gunakan apt upgrade
, apt-get upgrade
, atau aptitude safe-upgrade
(tentu saja setelah apt update
). Perintah ini mencari paket terinstall yang dapat diperbaharui tanpa menghapus paket. Dengan kata lain, tujuannya adalah untuk memastikan upgrade yang paling tidak intrusif yang mungkin. apt-get
lebih banyak persyaratannya daripada aptitude
atau apt
karena ini akan menolak menginstall paket yang tidak diinstall sebelumnya.
apt
umumnya akan memilih versi terkini (kecuali untuk paket dari Experimental dan stable-backports, yang bawaannya diabaikan berapapun nomor versinya). Jika Anda menentukan Testing atau Unstable dalam sources.list
Anda, apt upgrade
akan mengganti kebanyakan sistem Stable Anda ke Testing atau Unstable, mungkin bukan yang Anda inginkan.
Meminta apt
untuk menggunakan distribusi khusus ketika mencari paket yang diperbaharui, Anda perlu menggunakan pilihan -t
atau --target-release
, diikuti oleh nama distribusi yang Anda inginkan (sebagai contoh, apt -t stable upgrade
). Untuk menghindari penentuan pilihan ini setiap waktu Anda dapat menggunakan apt
, Anda dapat menambahkan APT::Default-Release "stable";
dalam berkas /etc/apt/apt.conf.d/local
.
Untuk kenaikan-tingkat yang lebih penting, seperti berubah dari satu versi utama Debian ke berikutnya, Anda perlu menggunakan apt full-upgrade
. Dengan instruksi ini, apt
akan melengkapi upgrade bahkan jika harus menghapus beberapa paket usang atau menginstall ketergantungan baru. Perintah ini juga digunakan pengguna yang sehari-hari bekerja dengan rilis Debian Unstable dan mengikut evolusinya setiap hari. Ini sangat sederhana yang hampir tidak memerlukan penjelasan: reputasi APT berbasis pada fungsionalitas besar ini.
Tidak seperti apt
dan aptitude
, apt-get
tidak mengenal perintah full-upgrade
. Sebagai pengganti, Anda mesti memakai perintah apt-get dist-upgrade
("peningkatan distribusi"), perintah historis dan dikenal luas yang juga diterima oleh apt
dan aptitude
untuk kenyamanan pengguna yang terbiasa memakainya.
Hasil operasi ini dicatat ke /var/log/apt/history.log
dan /var/log/apt/term.log
, sedangkan dpkg
menyimpan lognya dalam berkas bernama /var/log/dpkg.log
.
6.2.4. Pilihan Konfigurasi
Selain elemen konfigurasi yang telah disebutkan, memungkinkan unutuk mengonfigurasi beberapa aspek APT dengan menambahkan arahan dalam berkas di direktori /etc/apt/apt.conf.d/
atau /etc/apt/apt.conf
itu sendiri. Ingat misalnya bahwa ini memungkinkan APT untuk meminta dpkg
mengabaikan kesalahan konflik berkas dengan menentukan DPkg::options { "--force-overwrite"; }
.
Jika Web hanya dapat diakses melalui proksi, tambahkan baris seperti
Acquire::http::proxy "http://proksimu:3128"
. Untuk proksi FTP, tulis
Acquire::ftp::proxy "ftp://proksimu"
. Untuk menemukan opsi konfigurasi lainnya, baca halaman manual
apt.conf(5) (untuk detail pada halaman manual, lihat
Bagian 7.1.1, “Halaman Manual”).
6.2.5. Mengelola Prioritas Paket
Salah satu aspek yang paling penting dalam konfigurasi APT adalah mengelola prioritas asosiasi dengan setiap sumber paket. Misalnya, Anda mungkin ingin meluaskan satu distribusi dengan satunya atau dua paket terbaru dari Testing, Unstable atau Experimental. Ini memungkinkan untuk menetapkan prioritas setiap paket yang tersedia (paket yang sama dapat memiliki beberapa prioritas tergantung versinya atau distribusi yang menyediakannya). Prioritas ini akan memengaruhi perangai APT: untuk setiap paket, ini akan selalu memilih versi dengan prioritas tertinggi (kecuali jika versinya lebih tua dari yang terinstall dan jika prioritasnya kurang dari 1000).
APT mendefinisikan beberapa prioritas bawaan. Setiap versi paket terinstall memiliki prioritas 100. Versi tak-terinstall memiliki prioritas 500 secara bawaan, namun ini dapat melompat ke 990 jika ini merupakan rilis target (ditentukan dengan pilihan baris-perintah -t
atau arahan konfigurasi APT::Default-Release
.
Anda dapat memodifikasi prioritas dengan menambahkan entri pada dalam sebuah berkas di /etc/apt/preferences.d/
atau berkas /etc/apt/preferences
dengan nama paket terdampak, versi mereka, asal mereka, dan prioritas barunya.
APT tidak akan pernah memasang versi lebih lama sebuah paket (yaitu, sebuah paket yang nomor versinya lebih rendah dari salah satu paket yang telah terpasang) kecuali jika prioritasnya lebih besar dari 1000 (atau itu diminta secara eksplisit oleh pengguna, lihat
Bagian 6.2.2, “Instalasi dan Penghapusan”). APT akan selalu memasang paket dengan prioritas tertinggi yang mengikuti batasan ini. Jika dua paket memiliki dua prioritas yang sama, APT akan memasang yang terbaru (yang nomor versinya tertinggi). Jika dua paket versinya sama namun berbeda dalam konten mereka, APT akan memasang versi yang tidak terpasang (aturan ini telah dibuat untuk mencakupi kasus sebuah pembaruan paket tanpa peningkatan nomor revisinya, yang biasanya diperlukan).
Dalam istilah yang lebih konkret, paket yang prioritasnya
- < 0
tidak akan pernah dipasang,
- 1..99
hanya akan diinstal jika tidak ada versi lain dari paket yang sudah diinstal,
- 100..499
hanya akan dipasang jika tidak ada versi lain yang lebih baru yang dipasang atau tersedia di distribusi lain,
- 500....989
hanya akan diinstal jika tidak ada versi yang lebih baru yang diinstal atau tersedia di distribusi target,
- 990..1000
akan diinstal kecuali jika versi yang diinstal lebih baru,
- > 1000
akan selalu diinstal, bahkan jika memaksa APT untuk menurunkan ke versi yang lebih lama.
When APT checks /etc/apt/preferences
and /etc/apt/preferences.d/
, it first takes into account the most specific entries (often those specifying the concerned package), then the more generic ones (including, for example, all the packages of a distribution). If several generic entries exist, the first match is used. The available selection criteria include the package's name and the source providing it. Every package source is identified by the information contained in a Release
file that APT downloads together with the Packages
files. It specifies the origin (usually “Debian” for the packages of official mirrors, but it can also be a person's or an organization's name for third-party repositories). It also gives the name of the distribution (usually Stable, Testing, Unstable or Experimental for the standard distributions provided by Debian) together with its version (for example, 12 for Debian Bookworm). Let's have a look at its syntax through some realistic case studies of this mechanism.
Mari anggap bahwa Anda hanya ingin menggunakan paket dari versi stable Debian. Yang disediakan dalam versi lain tidak boleh diinstall kecuali jika diminta secara eksplisit. Anda dapat menulis entri berikut dalam berkas /etc/apt/preferences
:
a=stable
menentukan nama distribusi yang dipilih. o=Debian
membatasi jangkauan ke paket yang berasal dari "Debian".
Let's now assume that you have a server with several local programs depending on the version 5.32 of Perl and that you want to ensure that upgrades will not install another version of it. You could use this entry:
Untuk mendapatkan pemahaman yang lebih baik tentang mekanisme prioritas dan distribusi atau properti repositori untuk pin jangan ragu untuk melaksanakan
apt-cache policy
untuk menampilkan prioritas baku yang terkait dengan setiap sumber paket, atau
apt-cache policy paket
untuk menampilkan prioritas baku untuk setiap versi yang tersedia dan sumber paket seperti yang dijelaskan dalam
Bagian 6.3.1, “Perintah apt-cache policy
”.
Rujukan dokumentasi untuk berkas /etc/apt/preferences
dan /etc/apt/preferences.d/
tersedia pada laman manual apt_preferences(5), yang dapat Anda tampilkan dengan man apt_preferences
.
6.2.6. Bekerja dengan Beberapa Distribusi
apt
menjadi semacam alat ajaib, digoda untuk mengambil paket yang datang dari distribusi lain. Misalnya, setelah menginstall sebuah sistem Stable, anda mungkin ingin untuk mencoba sebuah paket perangkat lunak yang tersedia di Testing atau Unstable tanpa terlalu banyak berbeda dari kondisi awal sistem.
Bahkan jika Anda akan sekali-kali menemukan masalah ketika mencampur paket dari distribusi yang berbeda,
apt
mengatur kebersamaan dengan baik dan membatasi resikonya secara efektif. Cara terbaik untuk melakukannya ialah dengan mendaftar seluruh distribusi dalam
/etc/apt/sources.list
( beberapa orang selalu menaruh tiga distribusi, namun ingatlah bahwa
Unstable diambil untuk pengguna berpengalaman) dan untuk menentukan referensi distribusi Anda dengan parameter
APT::Default-Release
(lihat
Bagian 6.2.3, “Pembaharuan Sistem”).
Mari berandai-andai bahwa Stable merupakan referensi distribusi anda namun Testing dan Unstable juga terdaftar dalam berkas sources.list
Anda. Dalam kasus ini, Anda dapat menggunakan apt install paket/testing
untuk menginstall paket dari Testing. Jika instalasi gagal karena beberapa ketergantungan yang tidak dipenuhi, mari pecahkan ketergantungan tersebut dengan Testing dengan menambahkan parameter -t testing
. Biasanya hal yang sama juga berlaku untuk Unstable.
Dalam situasi ini, peningkatan (
upgrade
dan
full-upgrade
) dilakukan dalam
Stable kecuali untuk paket yang sudah ditingkatkan ke distribusi lain: mereka akan mengikuti pembaruan yang tersedia di distribusi lainnya. Kami akan menjelaskan perilaku ini dengan bantuan prioritas baku yang ditata oleh APT di bawah ini. Jangan ragu untuk menggunakan
apt-cache policy
(
Bagian 6.3.1, “Perintah apt-cache policy
”) untuk memverifikasi prioritas yang diberikan.
Semuanya berpusat pada fakta bahwa APT hanya memedulikan paket yang versinya lebih tinggi atau sama dengan yang terinstall (asumsikan bahwa /etc/apt/preferences
tidak digunakan untuk memaksa prioritas yang lebih tinggi dari 1000 untuk beberapa paket).
Mari asumsikan bahwa Anda telah menginstall versi 1 dari sebuah paket dari Stable dan versi 2 dan 3 tersedia masing-masing dalam Testing dan Unstable. Versi terinstall memiliki prioritas 100 tetapi versi tersedia dalam Stable (sangat mirip) memiliki prioritas 990 (karena merupakan bagian dari rilis target). Paket dalam Testing dan Unstable memiliki prioritas 500 (prioritas bawaan untuk versi tak-terinstall). Pemenangnya ialah versi 1 tersebut dengan prioritas 990. Paket "tetap di Stable".
Mari kita ambil contoh paket lain yang versi 2-nya telah dipasang dari Testing. Versi 1 tersedia di Stable dan versi 3 di Unstable. Versi 1 (prioritas 990 — sehingga lebih rendah dari 1000) dibuang karena lebih rendah dari versi terpasang. Ini hanya menyisakan versi 2 dan 3, keduanya prioritas 500. Dihadapkan dengan alternatif ini, APT memilih versi terbaru, yang dari Unstable. Jika Anda tidak ingin paket yang dipasang dari Testing untuk bermigrasi ke versi di Unstable, Anda harus menetapkan prioritas lebih rendah dari 500 (490 misalnya) ke paket yang berasal dari Unstable. Anda dapat memodifikasi /etc/apt/preferences
untuk efek ini:
Package: *
Pin: release a=unstable
Pin-Priority: 490
6.2.7. Pelacakan Otomatis Paket Terinstall
Salah satu fungsi esensial dari apt
adalah melacak paket terinstall hanya melalui ketergantungannya. Paket ini disebut "otomatis", dan sering menyertakan pustaka.
Dengan informasi ini, ketika paket dihapus, manajer paket dapat menghitung sebuah daftar paket otomatis yang tidak lagi diperlukan (karena tidak ada paket "terinstall manual" yang bergantung padanya). apt-get autoremove
atau apt autoremove
akan menyingkirkan paket-paket tersebut. aptitude
tidak memiliki perintah ini: karena dia menghapusnya secara otomatis segera ketika mereka teridentifikasi. Dalam semua kasus, perkakas menampilkan pesan yang jelas berisi daftar paket yang terdampak.
Ini merupakan kebiasaan yang baik untuk menandai sebagai otomatis beberapa paket yang tidak Anda perlukan secara langsung jari mereka secara otomatis terhapus ketika mereka tak lagi diperlukan.
apt-mark auto paket
akan menandai paket yang diberikan secara otomatis di mana
apt-mark manual paket
melakukan sebaliknya.
aptitude markauto
dan
aptitude unmarkauto
bekerja dengan cara yang sama walaupun mereka menawarkan fitur yang lebih untuk mendandai beberapa paket pada saat yang sama (lihat
Bagian 6.5.1, “aptitude
”). Antarmuka interaktif berbasis-konsol dari
aptitude
juga membuatnya mudah untuk meninjau "automatic flag" pada banyak paket.
Orang mungkin ingin mengetahui mengapa sebuah paket terinstall secara otomatis ada pada sistem. Untuk mendapatkan informasi ini dari baris perintah, Anda dapat menggunakan aptitude why paket
(apt
dan apt-get
tidak memiliki fitur yang serupa):
$
aptitude why python3-debian
i python3-reportbug Depends python3-debian
Pola memungkinkan Anda menentukan kueri penelusuran yang kompleks untuk memilih paket yang ingin Anda pasang atau tampilkan. Mereka pertama kali diimplementasikan untuk aptitude (lihat
Bagian 6.5, “Frontends: aptitude
, synaptic
”), tetapi sekarang APT juga dapat memanfaatkannya.
Misalnya, kita dapat menggunakan apt list ?automatic
untuk mencantumkan semua paket yang dipasang secara otomatis. Untuk menemukan paket yang dipasang secara otomatis dan tidak lagi menjadi ketergantungan dari paket yang dipasang secara manual, pola ?garbage
dapat digunakan.
Pola logika dapat dikombinasikan dengan paket lain untuk membentuk ekspresi yang lebih kompleks. Misalnya, kita bisa menggunakan pola seperti ?and(POLA, POLA)
. Lihat apt-patterns(7) dan glob(7) untuk semua pola yang dapat Anda gunakan dan ekspresi kompleks yang dapat Anda buat dengan mereka.