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, atauunresolved 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.