Ubuntu 18.04 Server / apt: memasang, menghapus, dan memperbarui paket

Di Ubuntu 18.04 Server, gunakan apt update untuk menyegarkan indeks paket, lalu apt install, apt remove, dan apt upgrade untuk memasang, menghapus, dan memperbarui paket. Penyegaran indeks tidak memperbarui program; periksa rencana perubahan sebelum menghapus paket atau memperbarui seluruh paket sistem.

Fungsi APT dan pemeriksaan awal

APT (Advanced Package Tool) adalah kumpulan alat yang mengelola perangkat lunak berdasarkan informasi paket dan dependensi dari repositori. Dependensi adalah pustaka atau paket lain yang juga diperlukan untuk menjalankan program. Contoh ini memakai APT seri 1.6 pada Ubuntu 18.04; versi dan perubahan sebenarnya bergantung pada repositori dan keadaan paket yang terpasang.

Pemeliharaan keamanan standar Ubuntu 18.04 LTS berakhir pada Mei 2023. Pada server yang masih digunakan, periksa juga cakupan pemeliharaan keamanan diperluas melalui Ubuntu Pro atau rencana peningkatan sistem operasi. Mengganti mirror atau menjalankan apt upgrade tidak memperpanjang dukungan. Lihat siklus rilis resmi Ubuntu.

Pemasangan, penghapusan, dan penyegaran indeks biasanya memerlukan hak sudo, sedangkan pencarian dan penampilan informasi tidak. Pada server produksi, cadangkan konfigurasi dan data penting serta jadwalkan pekerjaan dengan mempertimbangkan kemungkinan layanan dimulai ulang. Pada awalnya, jangan gunakan konfirmasi otomatis -y agar Anda dapat meninjau perubahan sendiri.

apt dirancang untuk penggunaan interaktif di terminal. Untuk skrip, utamakan apt-get dan apt-cache jika kompatibilitas keluaran serta perilaku penting. Khususnya, apt upgrade dan apt-get upgrade memiliki penanganan dependensi bawaan yang berbeda. Lihat manual apt Ubuntu 18.04.

Mencari dan memasang paket

Contoh menggunakan tree, yang menampilkan struktur direktori. Pada server sebenarnya, ganti dengan paket yang diperlukan, tetapi periksa dulu deskripsi dan versi kandidatnya.

  1. Unduh informasi paket terbaru dari repositori. Jika muncul kesalahan, selesaikan sebelum melanjutkan.
sudo apt update
  1. Cari paket dan periksa rinciannya. apt-cache policy membedakan versi terpasang, versi kandidat, dan sumber paket.
apt search tree
apt show tree
apt-cache policy tree

apt search juga mencari dalam deskripsi sehingga hasilnya dapat memuat paket tanpa tree pada namanya. Periksa deskripsi, dependensi, dan ukuran melalui apt show, lalu bandingkan Installed dan Candidate di apt-cache policy. Jika tidak ada kandidat, periksa repositori dan hasil penyegaran indeks terlebih dahulu. Lihat manual apt-cache.

  1. Simulasikan pemasangan untuk memeriksa paket yang akan dipasang, diperbarui, atau dihapus, kemudian lakukan pemasangan sebenarnya.
sudo apt-get --simulate install tree

--simulate tidak benar-benar mengubah paket. Namun, rencana itu mengikuti keadaan saat simulasi dijalankan, jadi baca juga layar konfirmasi tepat sebelum pemasangan sebenarnya. Jika ada penghapusan yang tidak diharapkan, berhenti dan periksa dependensi serta repositori.

sudo apt install tree
  1. Setelah pemasangan, periksa pencatatan paket dan apakah berkas program dapat dijalankan.
dpkg-query -W tree
tree --version

Perintah pertama menampilkan nama dan versi paket yang tercatat; perintah kedua menampilkan informasi versi program. Jika tidak ada versi baru yang perlu dipasang, APT dapat menyatakan paket sudah mutakhir. Dependensi yang diperlukan dipasang bersama. Manual apt-get menjelaskan operasi paket dan opsi simulasi.

Menyegarkan indeks dan memperbarui paket

update hanya menyegarkan indeks repositori tanpa mengubah program terpasang. Gunakan perintah berikut untuk meninjau pembaruan yang tersedia.

sudo apt update
apt list --upgradable
apt list --installed

apt list --upgradable menampilkan paket yang dapat diperbarui, sedangkan apt list --installed menampilkan paket terpasang. apt list tanpa opsi dapat mencantumkan paket sesuai kriteria nama, tetapi keluarannya bisa sangat panjang.

Untuk pembaruan biasa seluruh paket terpasang, gunakan sudo apt upgrade. Pada Ubuntu 18.04, apt upgrade dapat memasang dependensi baru yang diperlukan, tetapi tidak menghapus paket yang ada. Sebaliknya, apt-get upgrade bawaan juga tidak memasang paket baru sehingga beberapa pembaruan dapat ditahan.

sudo apt upgrade

sudo apt full-upgrade dapat menghapus paket yang ada demi menyelesaikan dependensi. Jangan langsung menjalankannya hanya karena pembaruan biasa menahan beberapa paket: tinjau dulu rencana pemasangan dan penghapusan serta dampaknya pada layanan penting. Ini juga bukan perintah peningkatan distribusi untuk berpindah dari Ubuntu 18.04 ke rilis Ubuntu lain.

Jika pembaruan masih tersisa, periksa juga paket yang sengaja ditahan melalui apt-mark showhold. Untuk membatasi ke paket tertentu atau pembaruan keamanan saja, lihat cara memperbarui paket tertentu atau hanya pembaruan keamanan. Setelah selesai, periksa kembali apt list --upgradable dan tentukan secara terpisah apakah layanan yang berjalan atau kernel perlu dimulai ulang.

Menghapus paket serta membersihkan dependensi atau cache

Pilih metode sesuai konfigurasi yang ingin dipertahankan dan cakupan penghapusan. Perintah berikut merupakan pilihan berbeda, bukan urutan yang harus dijalankan seluruhnya.

Perintah Cakupan penghapusan
apt remove tree Menghapus paket, biasanya dengan mempertahankan berkas konfigurasi yang dikelola paket tersebut.
apt purge tree Menghapus paket dan berkas konfigurasi yang dikelolanya. Bukan berarti semua berkas dalam direktori pribadi pengguna akan dihapus.
apt autoremove Menghapus dependensi yang dipasang otomatis dan kini dinilai APT tidak lagi diperlukan.

Sebagai contoh, untuk menghapus tree, simulasikan dahulu agar seluruh paket yang ikut dihapus dapat diperiksa, lalu lakukan penghapusan sebenarnya. Awali perintah tabel yang mengubah sistem dengan sudo, seperti contoh berikut.

sudo apt-get --simulate remove tree
sudo apt remove tree

Jika konfigurasi juga perlu dihapus, pilih sudo apt purge tree setelah memastikan kebutuhannya. Paket yang tidak sengaja dihapus dengan remove dapat dipasang lagi melalui sudo apt install tree, tetapi pemasangan ulang mungkin tidak memulihkan konfigurasi khusus yang dihapus oleh purge; cadangan tetap diperlukan.

Periksa daftar sebelum membersihkan dependensi juga. Jangan lanjutkan jika ada alat yang digunakan langsung atau paket yang diperlukan untuk operasional.

sudo apt-get --simulate autoremove
sudo apt autoremove

Paket yang masih diperlukan meskipun diusulkan untuk penghapusan otomatis dapat ditandai sebagai pemasangan manual dengan sudo apt-mark manual PACKAGE. Ganti PACKAGE dengan nama paket sebenarnya. Penandaan ini tidak memperbaiki masalah dependensi lain. Lihat manual apt-mark.

Untuk mempertahankan program terpasang dan hanya menghapus berkas paket unduhan, gunakan sudo apt clean. sudo apt autoclean membersihkan berkas cache paket yang tidak lagi dapat diunduh. Keduanya tidak menghapus paket terpasang seperti autoremove.

Memeriksa repositori dan mengganti mirror

Pada Ubuntu 18.04, repositori biasanya diatur dalam /etc/apt/sources.list dan berkas terpisah di /etc/apt/sources.list.d/. Jika unduhan lambat atau suatu mirror gagal, cari dahulu host yang disebutkan dalam kesalahan dan lokasi konfigurasi sebenarnya.

cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/

Pilih dari daftar mirror arsip paket resmi Ubuntu, bukan daftar mirror CD untuk ISO pemasangan. Selain lokasi, periksa status sinkronisasi dan ketersediaan bionic. Tidak ada mirror tertentu yang dijamin selalu paling cepat.

  1. Cadangkan berkas yang benar-benar akan diedit. Jika nama cadangan berikut sudah ada, pilih nama lain agar cadangan lama tetap utuh.
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.backup
  1. Buka berkas dengan editor bawaan dan ubah hanya URI mirror Ubuntu yang terkait. Jika entri berada dalam berkas terpisah, cadangkan dan edit berkas tersebut.
sudoedit /etc/apt/sources.list

Baris berikut merupakan contoh format; jangan menimpa seluruh berkas hanya dengan baris ini. Pertahankan bagian rilis yang diperlukan, seperti bionic dan bionic-updates, serta komponen yang ada, seperti main dan universe. Jangan mengganti alamat keamanan, Ubuntu Pro, atau repositori pihak ketiga secara menyeluruh.

deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
  1. Setelah menyimpan, segarkan indeks dan periksa versi kandidat serta sumber paket yang diperlukan. Jangan memasang atau memperbarui selama kesalahan masih ada.
sudo apt update
apt-cache policy tree

Lihat sintaks pada manual sources.list Ubuntu 18.04. Kesalahan 404 bukan alasan untuk mengganti bionic dengan nama kode versi Ubuntu lain. Periksa dahulu cakupan mirror dan jalur repositori yang saat ini didukung.

Menangani kesalahan dan memahami batas pemulihan

  • Paket tidak ditemukan: periksa ejaan, kesalahan apt update, komponen repositori yang diperlukan, dan arsitektur yang didukung. Perintah tidak dapat memunculkan paket yang tidak disediakan repositori terkonfigurasi.
  • Kesalahan penguncian: periksa apakah operasi apt atau dpkg lain, atau pembaruan otomatis, masih berjalan dan tunggu hingga selesai normal. Jangan langsung menghapus berkas kunci atau menghentikan proses secara paksa.
  • Kesalahan tanda tangan atau berkas Release: periksa URI repositori, rilis, konfigurasi kunci, dan waktu server. Jangan menonaktifkan pemeriksaan keaslian atau menambahkan repositori tanpa memverifikasi kepercayaannya.

Jika operasi paket sebelumnya benar-benar terputus dan tidak ada pekerjaan pengelolaan lain yang berjalan, urutan berikut dapat menyelesaikan konfigurasi tertunda dan memeriksa rencana perbaikan dependensi. Perintah pertama melakukan konfigurasi sebenarnya, jadi baca keluarannya. Perintah kedua hanya menampilkan rencana perbaikan.

sudo dpkg --configure -a
sudo apt-get --simulate --fix-broken install

Jalankan sudo apt --fix-broken install hanya setelah memastikan perbaikan diperlukan dan rencana tidak menghapus paket penting secara tidak terduga. Jangan berulang kali menerapkan perintah perbaikan pada kesalahan dengan penyebab berbeda.

Untuk membatalkan hanya penggantian mirror, pulihkan berkas konfigurasi yang disimpan lalu segarkan indeks. Jika berkas lain yang diedit, gunakan cadangannya masing-masing.

sudo cp -a /etc/apt/sources.list.backup /etc/apt/sources.list
sudo apt update

Langkah ini hanya memulihkan pengaturan repositori. Paket yang sudah dipasang, dihapus, atau diperbarui serta data layanan tidak dikembalikan ke keadaan semula. Untuk membatalkan perubahan paket di server produksi, gunakan cadangan konfigurasi dan data yang disiapkan terpisah, atau snapshot, beserta prosedur pemulihan layanan terkait.