GNU/Linux >> Linux Esercitazione >  >> Linux

Di quali informazioni ho bisogno per risolvere un problema di dipendenza Apt?

Ho visto più volte persone con dipendenze non soddisfatte, che apt-get non dice chiaramente qual è il problema, come questo:

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

So che passando attraverso tutte le dipendenze apt-get install libgl1-mesa-dri:i386 libdrm-intel1:i386 fino a quando non ho colpito qualcosa è disponibile, ma in questo caso sarà un lavoro doloroso a causa della quantità di pacchetti. C'è un modo più semplice per farlo?

Risposta accettata:

Una prima cosa ragionevole da provare è chiedere ad apt perché sta facendo quello che sta facendo. Questo può essere fatto con -o Debug::pkgProblemResolver=yes opzione. Es.

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

Se apt non è disponibile, l'approccio standard per il debug di tali problemi consiste nel controllare i numeri di priorità delle versioni disponibili di ciascun pacchetto menzionato nel messaggio di errore. Questo viene comunemente fatto utilizzando apt-cache policy .

Ad esempio, per utilizzare solo la prima parte del messaggio di errore, dovresti eseguire

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

Il modo in cui si procede dipende da ciò che questo mostra. Spesso è anche utile eseguire solo

apt-cache policy

che mostrerà tutte le fonti dei pacchetti disponibili, insieme ai loro numeri di priorità. Queste informazioni sono generalmente specificate in uno o entrambi /etc/apt/sources.list o /etc/apt/sources.list.d .

Le persone che cercano di ottenere aiuto qui dovrebbero prima pubblicare i risultati di questi comandi nella loro domanda . Probabilmente saranno sufficienti informazioni per determinare il problema.

Correlati:problema con UpdatePanel DataTable?

Esempi di problemi nella vita reale:

  1. Dipendenze non soddisfatte dopo l'utilizzo di un repository backports
    :l'utente
    includeva i sorgenti per www.deb-multimedia.org , senza fissarlo a una priorità
    inferiore. Non includere mai fonti di terze parti senza fissarle a una
    priorità inferiore. Nota che questo non dovrebbe essere necessario per
    repository ben educati che forniscono pacchetti per la versione predefinita
    , ma www.deb-multimedia.org è noto per non giocare
    bene con Debian e, in generale, non dovresti fidarti di fonti sconosciute.
    Più in generale, se sai che un repository non è progettato per essere usato con il tuo sistema
    , appuntalo a una priorità inferiore. Per esempio. testing/sorgenti instabili su Debian
    stable.

  2. Dipendenze non soddisfatte:l'utente
    è riuscito in qualche modo a installare una versione di Python che non era la
    versione predefinita sul suo sistema. Naturalmente, si è scatenato l'inferno.
    Morale della storia, assicurati di installare solo versioni di
    pacchetti che siano corrette per il tuo sistema. Come sopra apt-cache policy pkgname te lo dirà.

  3. dpkg / apt-get vuole installare e sovrascrivere diversi pacchetti
    :l'utente ha provato
    a installare pacchetti anche se il suo dpkg sottostante il database era
    rotto. Morale, se vedi messaggi provenienti da dpkg che qualcosa
    o l'altro non va nei tuoi pacchetti, in questo caso

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

    il database del tuo pacchetto ha problemi. Per prima cosa correggili, prima di provare a installare
    qualsiasi altra cosa. Se apt-get -f install non funziona, potrebbe essere necessario
    operare su dpkg livello per sistemare le cose.


Linux
  1. Apt rotto, dipendenze mancanti, e adesso?

  2. Sicurezza delle informazioni 101:cosa deve sapere la tua azienda

  3. Cosa è successo a /etc/apt/apt.conf?

  4. I moduli Perl richiedono il modulo::Build ma non è installato

  5. Di cosa ho bisogno per leggere i database di Microsoft Access usando Python?

Visualizza le informazioni di rete in Linux utilizzando quale strumento IP

Cosa devi sapere su IPv6

Come verificare quale versione del kernel Linux sto utilizzando

Come risolvere una chiave scaduta (EXPKEYSIG) con Apt

Qual è la differenza tra il comando apt e apt-get?

Qual è la tabella dei processi Linux? In cosa consiste?