Product SiteDocumentation Site

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.
Both tools are built on top of the same library and are thus very close, but the default behavior of apt has been improved for interactive use and to actually do what most users expect. The APT developers reserve the right to change the public interface of this tool to further improve it. Conversely, the public interface of apt-get is well defined and will not change in any backwards incompatible way. It is thus the tool that you want to use when you need to script package installation requests.
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.

6.2.1. Inisialisasi

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 10-16 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

Dengan APT, paket dapat ditambahkan atau dihapus dari sistem, masing-masing dengan apt install paket dan apt remove paket. Dalam dua kasus tersebut, APT akan menginstall ketergantungan atau menghapus paket yang bergantung pada paket yang sedang dihapus secara otomatis. Perintah apt purge paket melibatkan pembongkaran penuh dengan juga menghapus berkas konfigurasi.
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 GOING FURTHER Old package versions: snapshot.debian.org and archive.debian.org).

Contoh 6.4. Instalasi versi Unstable dari spamassassin

# apt install spamassassin/unstable
Jika paket yang akan dipasang telah tersedia untuk Anda dalam bentuk bekas sederhana .deb tanpa repositori paket terkait, masih mungkin untuk menggunakan APT untuk memasangnya bersama dengan dependensinya (asalkan dependensi tersedia di repositori yang dikonfigurasi) dengan perintah sederhana: apt install ./path-ke-paket.deb. ./ di awal penting untuk memperjelas bahwa kita mengacu pada nama berkas dan bukan nama paket yang tersedia di salah satu repositori.

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"; }.
If the Web can only be accessed through a proxy, add a line like Acquire::http::proxy "http://yourproxy:3128". For an FTP proxy, write Acquire::ftp::proxy "ftp://yourproxy". To discover more configuration options, read the apt.conf(5) manual page (for details on manual pages, see 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 will never install an older version of a package (that is, a package whose version number is lower than the one of the currently installed package) except if its priority is higher than 1000 (or it is explicitly requested by the user, see Bagian 6.2.2, “Instalasi dan Penghapusan”). APT will always install the highest priority package which follows this constraint. If two packages have the same priority, APT installs the newest one (whose version number is the highest). If two packages of same version have the same priority but differ in their content, APT installs the version that is not installed (this rule has been created to cover the case of a package update without the increment of the revision number, which is usually required).
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, 11 for Debian Bullseye). 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:
Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
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.28 of Perl and that you want to ensure that upgrades will not install another version of it. You could use this entry:
Package: perl
Pin: version 5.28*
Pin-Priority: 1001
To gain a better understanding of the mechanisms of priority and distribution or repository properties to pin do not hesitate to execute apt-cache policy to display the default priority associated with each package source, or apt-cache policy package to display the default priority for each available version and source of a package as explained in Bagian 6.3.1, “The apt-cache policy Command”.
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.
In this situation, upgrades (upgrade and full-upgrade) are done within Stable except for packages already upgraded to another distribution: those will follow updates available in the other distributions. We will explain this behavior with the help of the default priorities set by APT below. Do not hesitate to use apt-cache policy (Bagian 6.3.1, “The apt-cache policy Command”) to verify the given priorities.
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”.
Let's take the example of another package whose version 2 has been installed from Testing. Version 1 is available in Stable and version 3 in Unstable. Version 1 (of priority 990 — thus lower than 1000) is discarded because it is lower than the installed version. This only leaves version 2 and 3, both of priority 500. Faced with this alternative, APT selects the newest version, the one from Unstable. If you don't want a package installed from Testing to migrate to the version in Unstable, you have to assign a priority lower than 500 (490 for example) to packages coming from Unstable. You can modify /etc/apt/preferences to this effect:
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   aptitude         Suggests apt-xapian-index
p   apt-xapian-index Depends  python3-debian (>= 0.1.14)

6.2.8. APT Patterns

Patterns allow you to specify complex search queries to select the packages you want to install or show. They were first implemented for aptitude (see Bagian 6.5, “Frontends: aptitude, synaptic), but now APT can also make use of them.
For example, we can use apt list ?automatic to list all the packages automatically installed. To find packages automatically installed no longer depended upon by manually installed packages the pattern ?garbage can be used.
Logic patterns can be combined with other packages to form more complex expressions. For instance, we could use a pattern like ?and(PATTERN, PATTERN). See apt-patterns(7) and glob(7) for all the patterns you can use and the complex expressions you can create with them.