Manajer paket Linux, seperti Apt dan DNF, sangat kuat dan intuitif, tetapi itu tidak berarti tidak ada yang salah. Kadang-kadang, penginstalan paket salah, dan Anda harus mengambil bagiannya. Manajer paket memiliki kemampuan untuk memperbaiki paket yang rusak dan melewati pembaruan yang rusak agar sistem Anda berfungsi kembali dan menghindari masalah di masa mendatang.
Artikel ini membahas cara memperbaiki paket yang rusak di Linux. Perbaikan ini akan membantu Anda melepaskan diri dalam banyak kasus.
Memperbaiki Paket Rusak di Ubuntu/Mint/Debian
Apt memiliki beberapa flag untuk memperbaiki dependensi yang hilang atau paket yang rusak karena satu dan lain hal selama penginstalan. Penggunaan umum di sini adalah menginstal .deb pihak ketiga dan menemukan bahwa itu memiliki dependensi yang tidak Anda ketahui. Ketergantungan itu mungkin tidak akan ditarik sendiri, dan dpkg akan mengeluh bahwa itu tidak dapat menyelesaikan ketergantungan. Bagaimanapun, Anda dapat mencoba langkah-langkah berikut:
Catatan : pelajari cara kerja Apt sebelum mencoba perbaikan apa pun di bawah ini.
- Jalankan pembaruan untuk memastikan tidak ada versi yang lebih baru dari paket yang diperlukan:
 sudo tepat –memperbaiki pembaruan yang hilang
- Paksa Apt untuk mencari dan memperbaiki dependensi yang hilang atau paket yang rusak saat Anda mencoba menginstal kembali paket yang bermasalah. Ini akan menginstal dependensi yang hilang dan memperbaiki instalasi yang ada:
sudo tepat Install -F
Memperbaiki Masalah Konfigurasi DPKG
Tempat lain di mana kesalahan dapat muncul dalam instalasi paket adalah proses konfigurasi. Di belakang layar, dpkg menangani bagian ini, jadi ketika sebuah paket gagal selama konfigurasi, dpkg adalah alat untuk memperbaikinya.
- Mulailah dengan mencoba memaksa dpkg untuk mengkonfigurasi ulang paket yang rusak atau terkonfigurasi sebagian:
sudo dpkg –konfigurasi -A
- Jika itu tidak menyelesaikan masalah, ambil pendekatan yang lebih kuat. Mulailah dengan mendaftar paket apa saja yang dpkg tandai memerlukan instalasi ulang:
sudo dpkg -l | grep ^..r
Perintah di atas akan menunjukkan kepada Anda paket-paket yang menyebabkan masalah. Untuk langkah selanjutnya, periksa dan pastikan bahwa paket yang ditandai untuk diinstal ulang benar-benar rusak. Lakukan sudo apt reinstall dan perhatikan paket mana yang gagal diinstal ulang.
- Untuk setiap paket yang gagal diinstal ulang, dapatkan nama dan hapus paksa paket yang rusak:
sudo dpkg –menghapus –force-remove-reinstreq [ nama paket ]
- Dpkg sekarang harus bersih. Lakukan pembersihan dengan Apt:
sudo cukup bersih && sudo pembaruan tepat
Dengan sedikit keberuntungan, itu akan membawa Anda kembali ke tempat Anda memulai. Itu tidak akan memberi Anda paket rusak yang Anda coba instal, tetapi setidaknya Apt akan berfungsi kembali, dan Anda dapat kembali menggunakannya untuk mencoba menginstal paket yang awalnya Anda coba instal dan dependensinya.
Kunci DPKG Permanen
Ada masalah yang kurang umum dengan kunci dpkg yang mencegah Anda melakukan apa pun. Setiap kali Anda mencoba menggunakan Apt atau dpkg, Anda mendapat pesan kesalahan yang mengatakan bahwa aplikasi lain sudah menggunakannya… padahal tidak.
Sangat mudah untuk menghapus file kunci yang mencegah Anda menggunakan Apt dan kembali melakukan apa yang Anda perlukan. Terkadang file kunci ini tetap ada setelah kesalahan penginstalan atau pemadaman listrik, menggagalkan proses dan mencegah file dihapus secara otomatis. Dalam hal ini, Anda harus melakukannya sendiri.
sudo rm / var / lib / apt / daftar / kunci
Untuk tindakan yang baik, hapus kunci di cache.
sudo rm / var / cache / apt / arsip / kunci
Peringatan : Sebelum melepas kunci ini, pastikan tidak digunakan. Di Ubuntu, ada updater yang dijalankan bersama dengan sistem yang mengunci DPKG/APT saat mencari pembaruan. Jika Anda tidak yakin apakah pembaru berjalan, tekan tombol Win untuk membuka Pusat Aktivitas dan ketik “Pembaru Perangkat Lunak”, lalu tekan Enter untuk membukanya.
Jika pembaru mengatakan bahwa itu tidak dapat berjalan, dan Anda tidak memiliki terminal yang terbuka dengan pengelola paket berjalan di latar belakang, lanjutkan dengan petunjuk di atas.
Jika alih-alih masalah paket yang rusak, Anda menghadapi masalah dengan Pusat Perangkat Lunak yang tidak berfungsi, kami memiliki perbaikannya.
Memperbaiki Paket Rusak di Fedora/CentOS/RHEL
Memperbaiki paket yang rusak di Fedora/CentOS/RHEL adalah hal yang kurang umum. dnf benar-benar berfungsi dengan baik memastikan paket diinstal dengan benar. Yang mengatakan, itu masih belum sempurna, dan kadang-kadang akan campur aduk dalam manajemen paket.
Catatan : pelajari perbedaan antara Fedora, CentOS dan RHEL.
1. Buat Daftar Paket yang Bermasalah
Perintah untuk menyelesaikan ini pada sistem berbasis RHEL seperti Fedora adalah:
sudo rpm -Va
Opsi -V adalah untuk memverifikasi, artinya akan melalui dan membandingkan informasi pada file yang diinstal dengan informasi yang disimpan dalam database rpm . Melampirkan -a ke ini hanya memverifikasi semua paket inti. Ini sedikit tidak membantu, karena biasanya akan memberi Anda daftar file yang panjang, tetapi dapat memberi Anda tempat untuk memulai jika Anda mengalami masalah dengan aplikasi tertentu.
Misalnya, melihat sesuatu yang ditandai sebagai “hilang” di terminal Anda akan memberi tahu Anda bahwa ada file yang hilang dalam paket tersebut.
2. Coba Instal Ulang
Jalankan instal ulang dnf pada paket apa pun yang Anda lihat di daftar itu yang mungkin membuat Anda kesulitan.
sudo dnf –refresh instal ulang [nama paket]
Itu akan mengatur semua metadata sebagai kedaluwarsa, sehingga akan merayapi setiap repositori yang telah Anda aktifkan dan mencari versi baru dari paket itu. Jika Anda menemukan bahwa ada dependensi yang rusak dengan paket itu, DNF mungkin akan mengeluh dan meminta Anda untuk menggunakan flag –skip-broken . Ini hanya akan melewatkan paket itu sepenuhnya dan membiarkan Anda memperbarui sistem Anda secara normal.
3. Pilihan Terakhir – Hapus Paket
Jika Anda telah mencapai titik di mana Anda harus menggunakan –skip-broken untuk menyelesaikan pembaruan Anda, akan lebih higienis jika sistem Anda menghapusnya seluruhnya.
Mengingat nama paket yang gagal Anda instal ulang dengan benar, hapus instalannya:
sudo dnf hapus [nama paket]
Hal terburuk yang dapat terjadi di sini adalah Anda akhirnya menghapus bagian inti dari aliran harian Anda, seperti browser, memaksa Anda untuk mencari alternatif.
Tip : pelajari cara menggunakan flatpak di Fedora untuk mengelola paket Anda dengan lebih baik.
Memperbaiki Paket Rusak di Arch
Meskipun manajer paket Arch memiliki beberapa kesamaan dengan yang lain yang tercantum di sini (yaitu, ia memiliki file kunci basis data dan menarik dependensi dengan cara yang sama), itu adalah binatang yang sama sekali berbeda dalam hal bagaimana logikanya disusun. Langkah pertama dalam mendiagnosis masalah Anda adalah memastikan bahwa repositori sudah diperbarui dan mencoba melakukan pemutakhiran penuh:
sudo pacman -Syu
Jika upaya Anda untuk menginstal paket Anda atau melakukan pemutakhiran sistem masih berakhir dengan kegagalan, kami harus mengisolasi penyebabnya sesuai dengan apa yang dikatakan terminal kepada Anda:
Catatan : pelajari cara kerja pacman sebelum Anda mencoba memperbaikinya.
“Paket Tidak Valid atau Rusakâ€
Membuat perubahan pada “pacman.conf” dengan cara apa pun dapat menyebabkan masalah yang menyebabkan pacman salah melabeli paket sebagai rusak. Pelaku yang paling mungkin di sini adalah file parsial (“.partâ€) di cache pengelola paket, dan solusi Anda adalah menghapusnya:
sudo menemukan / var / cache / pacman / pkg / -iname “*.bagian” -menghapus
Selalu ada kemungkinan paket yang Anda coba in
stal benar-benar rusak dan tidak memberikan metadata yang valid ke manajer paket Arch. Dalam hal ini, Anda harus menunggu pengelola paket memperbaruinya. Jika paket diinstal pada sistem Anda dan menyebabkan masalah selama pemutakhiran, hapus dengan:
sudo pacman -Rns [ nama paket ]
“Tidak Dapat Mengunci Basis Dataâ€
Seperti apt Debian, manajer paket Arch membuat file kunci selama operasi. Jika Anda mengalami pemadaman listrik atau pacman mengalami gangguan keras dan tidak dapat menghapus kunci, kemungkinan besar akan meninggalkan file kunci.
Pertama, cari tahu apakah beberapa proses di komputer Anda masih menggunakan file tersebut:
sudo fuser / var / lib / pacman / db.lck
Pada gambar di atas, sebuah proses dengan ID 121497 menggunakan kunci file. Jika Anda ingin tahu tentang prosesnya dan menginginkan informasi lebih lanjut, gunakan ps :
ps -P [ PID #]
Dalam kasus saya, instance pacman lain memiliki file kunci. Cara teraman untuk menghapus kunci adalah dengan mematikan proses itu terlebih dahulu:
sudo membunuh [ PID #]
Sekarang prosesnya sudah mati, hapus file kunci:
sudo rm / var / lib / pacman / db.lck
Anda baik untuk pergi sekarang!
“File/File yang Bertentangan Ada di Sistem Fileâ€
Ini terjadi selama pemutakhiran di mana pacman mendeteksi konflik kepemilikan. Sebelum memperbaiki apa pun, perhatikan jalur ke file yang dikeluhkan oleh pengelola paket.
Untuk mengetahui siapa pemilik file tersebut:
pacman -Qo [ jalur ke file ]
Jika dimiliki oleh pengguna dan bukan paket lain, hapus saja:
sudo rm [ jalur ke file ]
Jika dimiliki oleh paket lain, hal yang paling aman untuk dilakukan adalah menunggu pengelola paket memperbaiki sendiri konflik ini. Namun, kadang-kadang itu bukan pilihan, dan Anda ingin menyelesaikan sesuatu sekarang.
Cara paling sederhana untuk melakukannya adalah menggunakan flag –overwrite di pacman . Ketahuilah bahwa ini umumnya tidak aman dan dapat menyebabkan beberapa aplikasi tidak berfungsi dengan benar di sistem Anda. Saya sarankan membuat cadangan sebelum menjalankan ini.
Bendera –overwrite memungkinkan manajer paket Arch untuk mengabaikan aturan kepemilikan untuk file tertentu dan hanya melakukan steamroll melalui pembaruan. Contoh:
sudo pacman -Syu –timpa [ nama file ]
Jika perintah di atas tidak berfungsi, ganti nama file dengan jalur absolutnya. Beberapa pengguna telah melaporkan bahwa menghapus garis miring (“/”) di depan jalur membuat perintah berfungsi saat keras kepala.
Alternatifnya, Anda juga bisa memberi tahu pacman untuk menimpa semua yang diperlukan untuk:
sudo pacman -Syu –timpa = ‘*’
“Paket Tidak Valid atau Rusak (Tanda Tangan PGP)â€
Dalam beberapa paket yang tidak terpelihara dengan baik, pengembang mungkin tidak memiliki waktu atau keinginan untuk memperbarui tanda tangan digital yang mengesahkan paket mereka dengan benar. Ini pada akhirnya akan menghasilkan pesan di terminal Anda saat mencoba menginstalnya, seperti, “tanda tangan dari [seseorang] adalah kepercayaan marjinal”, diikuti oleh manajer paket yang menanyakan apakah Anda ingin menghapus file tersebut.
Karena pembaruan tanda tangan bergantung sepenuhnya pada pengelola, tidak ada yang dapat Anda lakukan secara realistis untuk memperbaiki situasi dari terminal Anda. Jika Anda melakukan pembaruan dan ingin mempertahankan paket, gunakan flag –ignore khusus untuk paket tersebut:
sudo pacman -Syu –mengabaikan [ nama paket ]
Jika Anda mendapatkan ini untuk banyak paket, keyring Anda mungkin kedaluwarsa. Perbarui dengan:
sudo pacman -S archlinux-keyring
Pertanyaan yang Sering Diajukan
Bisakah saya menerapkan Perbaikan Lengkungan dengan pembantu AUR?
Secara umum, ya. Ganti “pacman” dengan pembantu AUR Anda di perintah dalam panduan ini. Contoh: yay -Qo /path/to/file
Apa yang harus saya lakukan jika saya menghentikan pembaruan?
Menghentikan proses pembaruan baik dengan menekan Ctrl + C , mematikan proses manajer paket, atau menutup terminal sebelum waktunya akan mengakibatkan beberapa tingkat kerusakan pada basis data paket Anda yang dapat memperumit masalah saat Anda mencoba menginstal sesuatu yang lain. Untuk memperbaikinya, bersihkan cache dan ulangi pembaruan.
Kredit gambar: Flickr. Semua tangkapan layar oleh Miguel Leiva-Gomez.