Linux tidak bisa menginstal karena error dependensi: penyebab dan cara mengatasinya

Di Linux, saat mencoba memasang aplikasi, sering muncul error seperti “dependency tidak dapat diselesaikan”, “paket yang dibutuhkan tidak tersedia”, atau “terjadi konflik dengan paket lain”. Masalah ini bukan sekadar berarti satu aplikasi gagal dipasang. Sering kali itu menandakan bahwa keadaan paket di seluruh sistem sudah tidak konsisten. Package manager seperti apt, dnf, dan pacman bekerja dengan asumsi bahwa library, runtime, dan paket pendukung berada dalam kombinasi versi yang tepat. Jika satu bagian saja tidak cocok, proses instalasi bisa langsung dihentikan.

Hal penting yang perlu dipahami adalah bahwa dependency error bukan sekadar masalah “ada satu paket yang kurang”. Penyebab di baliknya bisa berupa cache yang rusak, konfigurasi repositori lama, campuran source pihak ketiga, update yang terputus di tengah jalan, partial upgrade, paket yang di-hold, hingga ketidakcocokan arsitektur. Karena itu, solusi terbaik bukanlah menghapus file secara acak atau mengunduh file .deb / .rpm sembarangan dari internet, melainkan memahami dulu dependency mana yang gagal dipenuhi dan kenapa.

Apa itu error dependensi

Kebanyakan paket di Linux tidak berdiri sendiri. Sebuah aplikasi biasanya membutuhkan library tertentu, versi runtime tertentu, tool tambahan, atau komponen sistem lain agar bisa berjalan. Jika salah satu syarat tersebut belum terpasang, atau versinya tidak sesuai, package manager akan menolak melanjutkan instalasi agar sistem tidak makin rusak.

Jadi, dependency error tidak selalu berarti hanya ada sesuatu yang belum terpasang. Bisa juga berarti ada dua syarat yang tidak mungkin dipenuhi bersamaan, ada paket yang bertabrakan, atau ada perbedaan versi yang membuat keseluruhan rantai dependensi menjadi tidak konsisten.

Gejala yang sering muncul

  • Muncul pesan Depends:, requires, atau unresolved dependency
  • Sistem mengatakan ada paket rusak atau dependensi tidak dapat diselesaikan
  • Saat ingin memasang satu paket, package manager malah meminta menghapus paket lain
  • Ada library yang dibutuhkan tetapi versi yang tersedia tidak sesuai
  • Setelah update, pemasangan software mulai selalu gagal
  • Masalah mulai muncul setelah menambahkan repositori pihak ketiga
  • Setelah hanya sebagian sistem di-update, konsistensi paket rusak

Hal pertama yang perlu diperiksa

Kadang-kadang tampaknya seperti dependency error, padahal penyebab utamanya adalah jaringan, DNS, atau mirror yang gagal diakses. Karena itu, langkah pertama adalah memastikan akses ke repositori memang normal.

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

Lalu periksa apakah daftar paket bisa diambil tanpa masalah.

sudo apt update
sudo dnf makecache
sudo pacman -Sy

Jika pada tahap ini muncul 404, gagal resolve nama, signature error, atau timeout, maka masalah utamanya mungkin bukan dependency, melainkan kegagalan mengambil metadata paket.

Penyebab utama dependency error

1. Repositori bercampur

Ini adalah salah satu penyebab paling umum. Repositori resmi, PPA lama, repositori untuk rilis distro lain, repositori testing, dan source pihak ketiga bisa menyediakan nama paket yang sama tetapi dengan versi dan syarat dependensi yang berbeda. Akibatnya sistem masuk ke kondisi di mana satu paket membutuhkan library versi baru, sementara paket lain hanya cocok dengan versi lama.

2. Update terputus di tengah jalan

Jika proses update berhenti karena listrik mati, terminal tertutup, koneksi SSH putus, atau GUI hang, sebagian paket mungkin sudah diperbarui sedangkan sebagian lain masih dalam versi lama. Keadaan setengah jadi seperti ini sangat mudah menimbulkan dependency error.

3. Partial upgrade

Partial upgrade sangat berisiko, terutama pada sistem berbasis Arch. Namun bahkan pada Debian / Ubuntu atau Fedora, memaksa update sebagian kecil paket inti tanpa menyesuaikan keseluruhan sistem juga bisa merusak konsistensi dependensi.

4. Paket di-hold atau dikunci versinya

Jika suatu paket sengaja ditahan agar tidak di-update, sementara paket lain membutuhkan versi yang lebih baru dari paket tersebut, seluruh rantai dependensi bisa macet.

5. Paket atau library yang dipasang manual

Menginstal file .deb, .rpm, atau library dari source code secara manual bisa membuat isi sistem tidak lagi sesuai dengan catatan package manager. Akibatnya, package manager melihat keadaan yang berbeda dari kenyataan dan mulai gagal menyelesaikan dependensi.

6. Paket yang saling konflik

Tidak semua dependency error berarti ada sesuatu yang kurang. Kadang masalahnya justru karena dua paket tidak bisa hidup berdampingan, misalnya karena sama-sama menyediakan file yang sama atau secara desain memang saling eksklusif.

7. Arsitektur tidak cocok

Paket mungkin tersedia, tetapi untuk arsitektur yang salah. Misalnya sistem 64-bit mencoba memasang dependensi 32-bit tanpa konfigurasi multiarch yang benar, atau paket untuk ARM dicoba di x86_64. Ini juga bisa muncul sebagai dependency error.

8. Cache atau metadata tidak konsisten

Daftar paket yang sudah lama, cache rusak, atau metadata mirror yang tidak sinkron bisa menyebabkan package manager “tidak melihat” dependency yang sebenarnya ada.

Hal penting pada sistem apt

Pada Debian / Ubuntu, penting memeriksa bukan hanya apt, tetapi juga status dpkg di bawahnya.

Memperbaiki status yang belum selesai

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

Jika masalah berasal dari update yang terputus, ini biasanya menjadi langkah pemulihan utama.

Memeriksa paket yang di-hold

apt-mark showhold

Paket yang ditahan sering menjadi penyebab kenapa dependensi lain tidak bisa dipenuhi.

Melihat kandidat versi

apt-cache policy nama-paket

Ini membantu mengetahui versi mana yang tersedia dan dari repositori mana asalnya, sehingga campuran source lebih mudah dideteksi.

Hal penting pada sistem dnf

Pada Fedora / RHEL, fokus utamanya biasanya ada pada konsistensi sistem dan riwayat transaksi.

Memeriksa status keseluruhan

sudo dnf check

Perintah ini berguna untuk melihat ketidakpuasan dependensi di seluruh sistem.

Menyelaraskan kembali dengan status distribusi

sudo dnf distro-sync

Jika sistem memiliki campuran versi yang terlalu baru dan terlalu lama, distro-sync sering membantu mengembalikannya ke keadaan yang konsisten.

Melihat dependency yang belum terpenuhi

sudo dnf repoquery --unsatisfied

Dengan ini, masalah dependensi dapat dilihat lebih jelas.

Hal penting pada sistem pacman

Pada Arch Linux, konsistensi penuh sistem sangat penting. Dependency error di sini sering berhubungan langsung dengan partial upgrade.

Update penuh sistem

sudo pacman -Syu

Jika sudah ada dependency error, mencoba memperbaiki dengan update sebagian kecil paket biasanya hanya memperburuk keadaan.

Memperbarui basis sinkronisasi

sudo pacman -Syy

Ini penting jika metadata lokal tidak lagi sesuai dengan mirror saat ini.

Log sangat penting

Dependency error jarang bisa dipahami hanya dari satu baris terakhir. Yang perlu diperhatikan adalah paket mana meminta versi berapa, kandidat mana ditolak, dan kenapa ditolak.

apt / dpkg

sudo tail -n 100 /var/log/apt/history.log
sudo tail -n 100 /var/log/dpkg.log

dnf

sudo journalctl -xe --no-pager | tail -n 100
sudo dnf history

pacman

sudo tail -n 100 /var/log/pacman.log

Urutan pemeriksaan yang praktis

Langkah 1: Pastikan jaringan dan repositori bisa diakses

ping -c 4 8.8.8.8
ping -c 4 google.com

Langkah 2: Segarkan daftar paket

sudo apt update
sudo dnf makecache
sudo pacman -Syy

Langkah 3: Perbaiki status yang terputus

Pada apt gunakan dpkg --configure -a, pada dnf lihat dnf check, dan pada pacman pegang prinsip full sync dan full upgrade.

Langkah 4: Periksa versi dan asal paket bermasalah

Lihat dari source mana paket itu datang, versi apa saja yang tersedia, dan apakah ada yang di-hold.

Langkah 5: Curigai repositori pihak ketiga atau konfigurasi lama

Sangat banyak dependency error yang sebenarnya berasal dari source campuran atau repositori lama yang masih tertinggal.

Hal yang tidak boleh dilakukan

  • Memasang paket tambahan secara acak tanpa memahami error
  • Mengunduh .deb / .rpm satuan dari situs yang tidak tepercaya
  • Terus melakukan partial upgrade dan membuat sistem semakin tidak konsisten
  • Menonaktifkan pemeriksaan signature atau dependency begitu saja
  • Menambahkan lebih banyak repositori pihak ketiga saat penyebab belum jelas

Cara mencegah masalah terulang

  • Utamakan repositori resmi
  • Jangan biarkan PPA lama atau source versi salah tetap aktif
  • Hindari memutus proses update di tengah jalan
  • Pada Arch, jangan lakukan partial upgrade
  • Buat snapshot atau backup sebelum perubahan besar

Kesimpulan

Ketika Linux tidak bisa menginstal software karena dependency error, masalahnya sering kali lebih besar daripada sekadar “ada satu library yang kurang”. Campuran repositori, update terputus, partial upgrade, paket yang di-hold, instalasi manual, dan ketidakcocokan arsitektur adalah penyebab yang sangat umum. Kunci utamanya adalah membaca pesan error dengan teliti: paket mana membutuhkan versi apa, kandidat mana yang ditolak, dan mengapa. Setelah itu, gunakan pendekatan yang sesuai dengan distribusi: dpkg --configure -a dan apt --fix-broken install pada apt, dnf check dan distro-sync pada dnf, serta full sync dan full upgrade pada pacman untuk mengembalikan sistem ke keadaan yang konsisten.

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *