GNU/Linux >> Belajar Linux >  >> Ubuntu

Memperbaiki Kesalahan "Tidak dapat memperbaiki masalah, Anda telah menahan paket yang rusak" di Ubuntu dan Distribusi Linux lainnya

Meskipun ada berbagai cara untuk menginstal aplikasi di Ubuntu, saya lebih suka menggunakan perintah apt di terminal untuk menginstal perangkat lunak.

Jika Anda melakukan hal yang sama, Anda mungkin menemukan kesalahan ketergantungan seperti ini:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 green-recorder : Depends: python-urllib3 but it is not installable
E: Unable to correct problems, you have held broken packages.

Biasanya di It's FOSS, Anda akan menemukan solusi sederhana dan mudah diikuti untuk masalah rumit. Sayangnya, yang ini tidak semudah itu.

Dalam artikel pemecahan masalah ini, saya akan memberi tahu Anda mengapa kesalahan ini terjadi dan memberikan beberapa petunjuk tentang cara menyelesaikan masalah ini.

Mengapa Anda melihat kesalahan “Anda telah memegang paket yang rusak”?

Anda mencoba menginstal paket aplikasi, kemungkinan besar dari PPA atau repositori pihak ketiga.

Aplikasi sering membutuhkan versi perpustakaan dan komponen perangkat lunak tertentu (disebut dependensi). Dependensi ini mungkin bukan bagian dari paket aplikasi itu sendiri, tetapi diharapkan sudah diinstal di sistem Anda atau diinstal selama instalasi aplikasi.

Sistem Linux Anda mencoba menginstal dependensi ini sendiri. Tetapi jika versi paket dependensi tidak tersedia di sistem Anda, ini akan menjadi kebingungan karena tidak ada cara untuk menyelesaikan masalah dependensi ini.

Inilah sebabnya mengapa ini memberi tahu Anda bahwa perangkat lunak yang Anda coba instal bergantung pada XYZ tetapi XYZ ini tidak dapat diinstal.

Kasus penggunaan lainnya adalah ketika paket Anda dapat ditahan adalah ketika Anda mencoba menginstal dua versi perangkat lunak yang sama. Katakanlah Anda menginstal versi Wine tertentu ketika Anda sudah menginstal versi lain.

Bagaimana cara memperbaiki kesalahan “Tidak dapat memperbaiki masalah, Anda telah menahan paket yang rusak”

Anda dapat mencoba beberapa hal untuk membuat semuanya bekerja. Anda perlu memiliki beberapa ide untuk menginstal/menghapus paket di baris perintah Linux untuk menyelesaikannya di sini.

Pastikan cache paket sistem Anda diperbarui

Pertama, pastikan cache paket lokal diperbarui. Sistem Anda memeriksa cache ini untuk paket yang tersedia. Ada kemungkinan (tetapi tidak pasti) bahwa paket ketergantungan terlihat oleh sistem setelah pembaruan cache.

sudo apt update

Coba instal lagi paket yang bermasalah dan lihat apakah itu memperbaiki masalah.

Instal ketergantungan

Jika Anda mencoba menginstal paket bermasalah lagi dan masih mengeluh tentang kesalahan ketergantungan yang sama, mungkin ketergantungan tersebut tidak tersedia untuk versi distribusi.

Anda dapat menggunakan perintah apt search untuk melihat apakah Anda dapat menggunakan perpustakaan ini dari beberapa paket atau nama lain:

sudo apt search package_name

Jika paket tersedia, apakah versinya sama dengan yang diminta oleh paket yang Anda coba instal?

Coba instal paket dependensi dan lihat apa yang terjadi:

sudo apt install dependency_package

Anda mungkin menemukan rantai ketergantungan. Anda mencoba untuk menginstal ketergantungan A tetapi mengeluh B. Kemudian Anda mencoba menginstal B dan mengeluh C.

Mungkin juga ketika Anda mencoba menginstal paket C, paket tersebut sudah diinstal. Periksa versi paket C. Apakah versi yang sama seperti yang disyaratkan oleh paket B? Jika ya, menghapus C dan menginstalnya kembali dapat membantu.

Dapatkah Anda mendapatkan paket dependensi yang hilang dari sumber lain?

Jika paket dependensi yang hilang tidak dapat ditemukan di sistem Anda (tidak ada hasil dalam pencarian apt), Anda dapat mencoba untuk mendapatkan paket dependensi dari tempat lain. Saya tahu itu bukan hal yang nyaman untuk dilakukan, tetapi Anda tidak memiliki banyak pilihan di sini.

Misalnya, dalam hal menginstal rana, ia mengeluh tentang libgoo-canvas-perl dan perpustakaan ini tidak lagi tersedia di sistem Ubuntu.

sudo apt install shutter
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 shutter : Depends: libgoo-canvas-perl but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Namun, karena tersedia di versi Ubuntu sebelumnya, saya mencari paket ini di arsip paket Ubuntu dan menemukannya di bawah daftar Ubuntu 14.04 di sini. Saya mengunduh file .DEB dan menginstalnya.

Sekarang setelah paket dependensi ini terinstal, mencoba menginstal aplikasi asli (dalam hal ini rana) seharusnya tidak mengeluh tentang setidaknya paket ini lagi.

Jika Anda tidak dapat menemukan paket dependensi di mana pun, instal paket yang bermasalah dari beberapa sumber lain

Jadi pada contoh di atas, saya mencoba menginstal aplikasi Green Recorder menggunakan PPA-nya. Aplikasi ini membutuhkan python-urllib3 perpustakaan tetapi sayangnya, perpustakaan ini tidak tersedia di sistem Ubuntu 20.04 saya.

[email protected]:~$ apt search python-urllib3
Sorting... Done
Full Text Search... Done

Jelas, ini adalah aplikasi yang dikemas dengan buruk. Pengembang membuatnya tersedia untuk Ubuntu 20.04 tanpa menyadari bahwa Ubuntu 20.04 tidak mendukung Python 2 lagi dan semua lib Python sekarang dimulai dengan awalan python3. Jadi python-urllib3 harus python3-urllib3.

Jika Anda berada dalam situasi seperti itu, mungkin periksa beranda proyek atau cari di internet untuk sumber alternatif untuk menginstalnya. Mungkin ada versi Snap/Flatpak atau beberapa pengguna membuat PPA untuk itu? Jika tidak ada yang lain, Anda dapat menggunakan opsi kode sumber juga.

Jika Anda melihat kesalahan paket rusak yang ditahan selama pembaruan, coba ini

Sebagian besar diskusi sejauh ini mengasumsikan bahwa Anda melihat kesalahan ini saat menginstal aplikasi baru. Mungkin tidak selalu demikian.

Jika Anda melihat kesalahan ini saat mencoba memperbarui sistem Anda dengan perintah sudo apt update, maka Anda harus mengambil pendekatan yang sedikit berbeda.

Pertama, periksa paket mana yang ditahan dengan perintah ini:

dpkg --get-selections | grep hold

Jika Anda melihat beberapa paket ditahan, hapus paket tersebut, lalu lanjutkan memperbarui sistem Anda atau menginstal perangkat lunak.

Anda juga dapat menggunakan pengelola paket Synaptic untuk memperbaiki paket yang rusak.

Apakah Anda berhasil memperbaiki masalah ini?

Seperti yang telah saya sebutkan sebelumnya, tidak ada perbaikan langsung untuk masalah ini. Anda harus menyelidiki sendiri dan melihat apakah itu bisa diperbaiki atau tidak.

Silakan bagikan di komentar jika masalah Anda teratasi. Jika tidak, saya mungkin mencoba membantu Anda.



Ubuntu
  1. Cara Memasang Karat dan Kargo di Ubuntu dan Distribusi Linux Lainnya

  2. Cara Menginstal Vivaldi Browser di Ubuntu dan Distribusi Linux Lainnya

  3. Memperbaiki Kesalahan "Paket Target dikonfigurasi beberapa kali" di Distribusi Linux Berbasis Ubuntu &Debian

  1. Cara Menonton Hulu di Ubuntu dan Distribusi Linux Lainnya

  2. Memperbaiki “Tidak dapat memperoleh kunci frontend dpkg. Apakah Anda Root? ” Kesalahan pada Ubuntu dan Distribusi Linux Lainnya

  3. Cara Memperbaiki kesalahan penginstalan Paket – Tidak dapat memperbaiki masalah, Anda telah memegang paket yang rusak

  1. Panduan Lengkap untuk Menggunakan Paket Snap Di Ubuntu dan Distribusi Linux Lainnya

  2. Tidak dapat menemukan kesalahan paket di Ubuntu 20.04 Focal Fossa Linux

  3. Menginstal Odbcins1debian2, Ketergantungan Rusak Pada Ubuntu 20.04 Lts?