GNU/Linux >> Belajar Linux >  >> Linux

Informasi Apa yang Saya Butuhkan untuk Memecahkan Masalah Ketergantungan yang Tepat?

Saya telah melihat beberapa kali orang dengan dependensi yang tidak terpenuhi, yang apt-get tidak memberi tahu secara langsung apa masalahnya, seperti ini:

The following packages have unmet dependencies:
 libgl1-mesa-dri:i386 : Depends: libdrm-intel1:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libdrm-nouveau2:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libdrm-radeon1:i386 (>= 2.4.31) but it is not going to be installed
                        Depends: libdrm2:i386 (>= 2.4.38) but it is not going to be installed
                        Depends: libglapi-mesa:i386 but it is not going to be installed
 libgl1-mesa-glx:i386 : Depends: libdrm2:i386 (>= 2.3.1) but it is not going to be installed
                        Depends: libglapi-mesa:i386 (= 9.2.1-1ubuntu3) but it is not going to be installed
                        Depends: libx11-6:i386 (>= 2:1.4.99.1) but it is not going to be installed
                        Depends: libxcb-dri2-0:i386 (>= 1.8) but it is not going to be installed
                        Depends: libxcb-glx0:i386 (>= 1.8) but it is not going to be installed
                        Depends: libxcb1:i386 but it is not going to be installed
                        Depends: libxdamage1:i386 (>= 1:1.1) but it is not going to be installed
                        Depends: libxext6:i386 but it is not going to be installed
                        Depends: libxfixes3:i386 but it is not going to be installed
                        Depends: libxxf86vm1:i386 but it is not going to be installed

Saya tahu bahwa berjalan melalui semua dependensi apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386 sampai saya menekan sesuatu yang tersedia, tetapi dalam hal ini akan menjadi pekerjaan yang menyakitkan karena jumlah paket. Apakah ada cara yang lebih mudah untuk melakukan ini?

Jawaban yang Diterima:

Hal pertama yang masuk akal untuk dicoba adalah bertanya dengan tepat mengapa ia melakukan apa yang dilakukannya. Ini dapat dilakukan dengan -o Debug::pkgProblemResolver=yes pilihan. Mis.

apt-get -o Debug::pkgProblemResolver=yes install libgl1-mesa-dri:i386 libdrm-intel1:i386

Jika apt tidak muncul, pendekatan standar untuk men-debug masalah tersebut adalah dengan memeriksa nomor prioritas dari versi yang tersedia dari setiap paket yang disebutkan dalam pesan kesalahan. Ini biasanya dilakukan dengan menggunakan apt-cache policy .

Misalnya, untuk menggunakan hanya bagian pertama dari pesan kesalahan, Anda harus menjalankan

apt-cache policy libgl1-mesa-dri:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libglapi-mesa:i386

Bagaimana seseorang melanjutkan kemudian tergantung pada apa yang ditunjukkan ini. Sering juga berguna untuk menjalankan saja

apt-cache policy

yang akan menampilkan semua sumber paket yang tersedia, bersama dengan nomor prioritasnya. Informasi ini biasanya ditentukan dalam satu atau kedua /etc/apt/sources.list atau /etc/apt/sources.list.d .

Orang yang mencoba mendapatkan bantuan di sini harus terlebih dahulu mengeposkan hasil dari perintah ini dalam pertanyaan mereka . Itu mungkin akan menjadi informasi yang cukup untuk menentukan masalahnya.

Terkait:Masalah UpdatePanel DataTable?

Contoh masalah kehidupan nyata:

  1. Dependensi yang tidak terpenuhi setelah menggunakan repositori
    backports:Pengguna
    menyertakan sumber untuk www.deb-multimedia.org , tanpa menyematkannya ke prioritas
    yang lebih rendah. Jangan pernah menyertakan sumber pihak ketiga tanpa menyematkannya ke
    prioritas yang lebih rendah. Perhatikan bahwa ini tidak diperlukan untuk
    repositori yang berperilaku baik yang menyediakan paket untuk rilis
    default, tetapi www.deb-multimedia.org terkenal karena tidak bermain
    dengan baik dengan Debian, dan secara umum, Anda tidak boleh mempercayai sumber yang tidak dikenal.
    Secara umum, jika Anda mengetahui bahwa repositori tidak dirancang untuk digunakan dengan sistem
    Anda , sematkan pada prioritas yang lebih rendah. Misalnya. pengujian/sumber tidak stabil di Debian
    stabil.

  2. Ketergantungan yang tidak terpenuhi:Pengguna
    entah bagaimana berhasil menginstal versi python yang bukan
    versi default di sistemnya. Tentu saja, semuanya kacau balau.
    Moral dari cerita ini, pastikan Anda hanya menginstal versi
    paket yang benar untuk sistem Anda. Seperti di atas apt-cache policy pkgname akan memberitahu Anda.

  3. dpkg / apt-get ingin menginstal dan menimpa paket
    yang berbeda:Pengguna mencoba
    untuk menginstal paket meskipun dpkg yang mendasarinya basis data
    rusak. Pesan moral, jika Anda melihat pesan yang berasal dari dpkg bahwa ada sesuatu
    yang salah dengan paket Anda, dalam hal ini

    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 2 not  
    fully installed or removed. 
    

    database paket Anda bermasalah. Perbaiki dulu, sebelum Anda mencoba memasang
    yang lain. Jika apt-get -f install tidak berfungsi, Anda mungkin perlu
    mengoperasikan dpkg tingkat untuk memperbaiki berbagai hal.


Linux
  1. Apa yang perlu diketahui sysadmin tentang menggunakan Bash

  2. Apt rusak, dependensi hilang, bagaimana sekarang?

  3. Keamanan Informasi 101:Apa yang perlu diketahui bisnis Anda

  1. Apa yang Terjadi Pada /etc/apt/apt.conf?

  2. Apa Itu VPN? Semua yang Perlu Anda Ketahui Tentang VPN

  3. Apa yang saya perlukan untuk membaca database Microsoft Access menggunakan Python?

  1. Modul Perl Membutuhkan Modul::Build Tapi Tidak Dipasang

  2. Alat apa yang perlu saya kembangkan di ActionScript (di Linux)

  3. Apa yang setara dengan Posix popen() di Win32 API?