[Risolto] Errore: La dipendenza non può essere soddisfatta

Installazione, configurazione e uso di programmi e strumenti.
Scrivi risposta
Avatar utente
kRel
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 355
Iscrizione: giovedì 16 aprile 2009, 22:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.04.1 LTS Unity i686
Località: Roma

[Risolto] Errore: La dipendenza non può essere soddisfatta

Messaggio da kRel »

Una volta per tutte...

Per la propria distribuzione, che magari non è l'ultima della serie, (questo è tipico nelle LTS), può accadere che il repository per una o più applicazioni non venga aggiornato. Di conseguenza ci si ritrova con una versione vecchia di 4-5 release (e oltre).

A volte quando si tenta di installare direttamente pacchetti .deb per ovviare all'inconveniente, può accadere di ricevere la risposta "Errore: La dipendenza non può essere soddisfatta: xxxxxxxx-xxxxxxxx1.12.3 (>= 1.12.3-1)"

Credo di capire che il pacchetto da installare richieda una versione uguale o superiore di una determinata libreria, mentre noi disponiamo di una più vecchia o non ne disponiamo affatto.

Ma qui nascono due domande:
la prima: in genere i pacchetti .deb non contengono all'interno tutti i fine necessari?
a volte la libreria richiesta è già nel sistema e la versione è compatibile. Come mai non viene rilevata dall'installazione?

Grazie.
Ultima modifica di kRel il giovedì 20 gennaio 2011, 23:59, modificato 1 volta in totale.
a ciascuno il suo . . .
ubuntu 12.04 unity - 32 bit
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu Server 20.04 LTS
Sesso: Maschile
Località: Modica

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da vaillant »

Ciao.
kRel ha scritto: la prima: in genere i pacchetti .deb non contengono all'interno tutti i fine necessari?
I pacchetti deb contengono i file necessari al funzionamento del programma che vai ad installare e (tra le altre cose) i nomi dei pacchetti necessari allo stesso funzionamento (c.d. dipendenze). E' chiaro che se tenti di installare il software A, che ha come dipendenza il software B versione 1.12.3 e nei repo è presente al massimo la versione 1.12.2, ti genererà errrore.

Prima di tutto, apri un terminale e digita

Codice: Seleziona tutto

sudo apt-get install -f
che ti risolve eventuali dipendenze non soddisfatte, poi riprova ad installare il pacchetto.
kRel ha scritto: a volte la libreria richiesta è già nel sistema e la versione è compatibile. Come mai non viene rilevata dall'installazione?
Se installi da riga di comando il file deb (sudo dpkg -i ...) le dipendenze non vengono risolte, vale il comando che ti ho indicato prima...
Avatar utente
kRel
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 355
Iscrizione: giovedì 16 aprile 2009, 22:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.04.1 LTS Unity i686
Località: Roma

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da kRel »

vaillant ha scritto: Prima di tutto, apri un terminale e digita

Codice: Seleziona tutto

sudo apt-get install -f
che ti risolve eventuali dipendenze non soddisfatte, poi riprova ad installare il pacchetto.
eseguo come dici sudo apt-get install -f nomepacchetto (dopo essermi spostato nella directory che lo contiene)  ed ho un errore curioso:

Codice: Seleziona tutto

sudo apt-get install -f nomepacchetto
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
E: Impossibile trovare il pacchetto nomepacchetto
Ovviamente il pacchetto esiste, tant'è che se cerco di installarlo come ho sempre fatto, cliccando sul "cubetto" ottengo l'errore citato nel primo post
vaillant ha scritto: Se installi da riga di comando il file deb (sudo dpkg -i ...) le dipendenze non vengono risolte, vale il comando che ti ho indicato prima...
Ovvio !  Tuttavia essendo ancora inesperto, mi sono sempre accontentato di installare i pacchetti, con il semplice click sul "cubetto". ed ha sempre funzionato. In questo caso manca una libreria:

Codice: Seleziona tutto

Errore: La dipendenza non può essere soddisfatta: xxxxxxxx-xxxxxxxx1.12.3 (>= 1.12.3-1)
Sbaglio io o c'è un errore nel pacchetto ?

Ciao, grazie.
a ciascuno il suo . . .
ubuntu 12.04 unity - 32 bit
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu Server 20.04 LTS
Sesso: Maschile
Località: Modica

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da vaillant »

Che rilascio di ubuntu stai usando? Lucid 10.04? Intanto qui c'è un errore
eseguo come dici sudo apt-get install -f nomepacchetto (dopo essermi spostato nella directory che lo contiene)  ed ho un errore curioso:

Codice: Seleziona tutto

sudo apt-get install -f nomepacchetto
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
E: Impossibile trovare il pacchetto nomepacchetto
io ti ho detto di digitare solo

Codice: Seleziona tutto

sudo apt-get install -f
la "-f" sta per "fix missing", non devi specificare alcun pacchetto.

In secondo luogo, giusto per nozioni teoriche, al posto di "nomepacchetto" ci va messo il suo nome reale...
Avatar utente
kRel
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 355
Iscrizione: giovedì 16 aprile 2009, 22:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.04.1 LTS Unity i686
Località: Roma

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da kRel »

La 10.04 aggiornata.

Avevo dato il comando sudo apt-get install -f  e ho avuto come risposta:

Codice: Seleziona tutto

krel@AM1-N1:~$ sudo apt-get install -f
[sudo] password for krel: 
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
0 aggiornati, 0 installati, 0 da rimuovere e 11 non aggiornati.
krel@AM1-N1:~$ 
quindi ho provato ad installare il pacchetto.deb ma ho ricevuto ancora l'errore.   Per questo motivo ho provato con la sintassi (errata): sudo apt-get install -f nomepacchetto.deb   (dove per "nomepacchetto" c'è il nome reale del pacchetto e la sua estensione .deb)

E quegli 11 non aggiornati che sono ? come si aggiornano ?


[AGGIUNTA SUCCESSIVA]
Sono andato in Ubuntu tweak > Gestore aggiornamenti ed ho visto quei famosi 11 pacchetti da installare e li ho installati.
Resta da capire perché con sudo apt-get install -f non riuscivo ad aggiornare.

In ogni caso i due pacchetti.deb, (interdipendenti e diversi l'uno dall'altro) proprio non si vogliono installare... ho questi 2 errori (1 per pacchetto):

Codice: Seleziona tutto

Errore: Breaks existing package 'libqt4-scripttools' dependency libqtcore4 (= 4:4.6.2-0ubuntu5.1)
questo errore immagino che voglia dire: hai già una versione (più vecchia). Ma se provo a disinstallare e installare la nuova versione di libqtcore ho un errore.

Codice: Seleziona tutto

Errore: La dipendenza non può essere soddisfatta: libboost-filesystem1.42.0 (>= 1.42.0-1)
Ciao
Ultima modifica di kRel il giovedì 20 gennaio 2011, 15:44, modificato 1 volta in totale.
a ciascuno il suo . . .
ubuntu 12.04 unity - 32 bit
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu Server 20.04 LTS
Sesso: Maschile
Località: Modica

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da vaillant »

Di che pacchetti stiamo parlando, e da dove li hai presi?
Avatar utente
kRel
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 355
Iscrizione: giovedì 16 aprile 2009, 22:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.04.1 LTS Unity i686
Località: Roma

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da kRel »

Non mi interessa il problema nel dettaglio... ma capire in via generale il perché.

Inoltre vorrei sapere perché quegli 11 pacchetti che non si installavano con sudo apt-get install -f mentre con Ubuntu Tweak - gestione aggiornamenti si.

Uno dei due pacchetti richiede una versione più aggiornata di libqtcore4 (io ho  libqtcore4 4:4.6.2-1Oubuntu 5.1, mentre ne è richiesta una >= 4:4.7.0~beta1). Analizzando il dettaglio, la disinstallazione si porterebbe appresso un bel pò di sw, quindi a queste condizioni il discorso cade.

L'altra stranezza è quella esposta sotto, anche se a questo punto la richiesta diventa puramente accademica per il motivo appena detto sopra.

Codice: Seleziona tutto

Errore: Breaks existing package 'libqt4-scripttools' dependency libqtcore4 (= 4:4.6.2-0ubuntu5.1)
Se provo a disinstallare e installare la nuova versione di libqtcore ho un errore.

Codice: Seleziona tutto

Errore: La dipendenza non può essere soddisfatta: libboost-filesystem1.42.0 (>= 1.42.0-1)
Ultima modifica di kRel il giovedì 20 gennaio 2011, 19:43, modificato 1 volta in totale.
a ciascuno il suo . . .
ubuntu 12.04 unity - 32 bit
Avatar utente
Duma
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 375
Iscrizione: mercoledì 12 gennaio 2011, 19:55
Località: Rivalta di Torino
Contatti:

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da Duma »

kRel ha scritto:Inoltre vorrei sapere perché quegli 11 pacchetti che non si installavano con sudo apt-get install -f mentre con Ubuntu Tweak - gestione aggiornamenti si.
La sparo perché non sono sicuro: ubuntu Tweaks usa dist-upgrade come comando, mentre sudo apt-get install -f aggiorna con upgrade?
Pimpaggi e Tweaks disponibili su Pimp my Linux, vieni a darci un'occhiata!
Avatar utente
Mdfalcubo
Moderatore Globale
Moderatore Globale
Messaggi: 20420
Iscrizione: venerdì 26 dicembre 2008, 11:17
Desktop: Solo XFCE
Distribuzione: Xubuntu 64 bit
Sesso: Maschile

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da Mdfalcubo »

Vaillant te l'ha spiegato molto bene. Il comando sudo apt-get install -f non serve a installare gli aggiornamenti, ma a risolvere eventuali problemi di dipendenze. Per verificare gli aggiornamenti il comando è sudo apt-get upgrade... Se lo facevi da terminale ottenevi lo stesso risultato che hai ottentuo con Ubuntu Tweak, cioè verificavi gli aggiornamenti e POI col comando install li installavi...
"Il genere umano è stimolante, è la gente che non sopporto,, (Linus - Peanuts)
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu Server 20.04 LTS
Sesso: Maschile
Località: Modica

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da vaillant »

kRel ha scritto: Uno dei due pacchetti richiede una versione più aggiornata di libqtcore4 (io ho  libqtcore4 4:4.6.2-1Oubuntu 5.1, mentre ne è richiesta una >= 4:4.7.0~beta1). Analizzando il dettaglio, la disinstallazione si porterebbe appresso un bel pò di sw, quindi a queste condizioni il discorso cade.
Come ho detto prima, se stai tentando di installare un software che richiede una dipendenza che Lucid non può soddisfare, hai due opzioni:

1) ti scarichi le varie dipendenze dai rilasci successivi o da debian testing (cosa parecchio sconsigliata a mio modo di vedere);
2) lasci perdere quel pacchetto o ne cerchi una versione meno recente che puoi installare su lucid;
Duma ha scritto: La sparo perché non sono sicuro: ubuntu Tweaks usa dist-upgrade come comando, mentre sudo apt-get install -f aggiorna con upgrade?
No, cito dal manuale
-f
Fix; attempt to correct a system with broken dependencies in place.
This option, when used with install/remove, can omit any packages
to permit APT to deduce a likely solution. If packages are
specified, these have to completely correct the problem. The option
is sometimes necessary when running APT for the first time; APT
itself does not allow broken package dependencies to exist on a
system. It is possible that a system's dependency structure can be
so corrupt as to require manual intervention (which usually means
using dselect(1) or dpkg --remove to eliminate some of the
offending packages). Use of this option together with -m may
produce an error in some situations. Configuration Item:
APT::Get::Fix-Broken
l'opzione "-f" non serve ad aggiornare, ma a risolvere le dipendenze qualora queste non siano già risolte dal programma di installazione! :)
Avatar utente
Mdfalcubo
Moderatore Globale
Moderatore Globale
Messaggi: 20420
Iscrizione: venerdì 26 dicembre 2008, 11:17
Desktop: Solo XFCE
Distribuzione: Xubuntu 64 bit
Sesso: Maschile

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da Mdfalcubo »

C'è una terza opzione: cercare in rete e, se le trovi, scaricare le singole dipendenze. A me è successo un paio di volte, per fortuna le ho trovate e ho risolto il mio problema (hardware).
"Il genere umano è stimolante, è la gente che non sopporto,, (Linus - Peanuts)
Avatar utente
vaillant
Rampante Reduce
Rampante Reduce
Messaggi: 8319
Iscrizione: domenica 15 marzo 2009, 9:54
Distribuzione: Ubuntu Server 20.04 LTS
Sesso: Maschile
Località: Modica

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da vaillant »

Mdfalcubo ha scritto: C'è una terza opzione: cercare in rete e, se le trovi, scaricare le singole dipendenze.
Intendevo questo al punto 1). A meno di compilarsi i sorgenti, quelle dipendenze vanno cercato nei repo di qualche distribuzione, appunto con pacchetti superiori a quelli presenti in lucid (che sono gli stessi di debian stable)... :D
Avatar utente
gian72
Prode Principiante
Messaggi: 146
Iscrizione: giovedì 8 giugno 2006, 19:12

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da gian72 »

ciao a tutti.
Scusate se mi inserisco: tempo fa dovevo installare qualcosa (ora non ricordo) che mi causava un errore di dipendenza e che, purtroppo, non era disponibile in versione precedente/compatibile col mio sistema... così dopo (lunga) ricerca e tanti esperimenti (...) mi sono imbattuto (non è farina del mio sacco... ci tengo a precisarlo :( ) in questo piccolo script che in sostanza permette di modificare il file control in modo da "taroccare" le dipendenze richieste.

Funzionò.

Ora... è ovvio che la cosa va usata con prudenza e, soprattutto, che 80/90 volte su 100 non risolverà il problema (...se è richiesta una certa libreria è ovvio che ci sarà un perchè...) ma tentar non nuoce!. Io lo posto.. poi vedete voi:

Codice: Seleziona tutto

#!/bin/bash

EDITOR=gedit

if [[ -z "$1" ]]; then
  echo "Syntax: $0 debfile"
  exit 1
fi

DEBFILE="$1"
TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb

if [[ -e "$OUTPUT" ]]; then
  echo "$OUTPUT exists."
  rm -r "$TMPDIR"
  exit 1
fi

dpkg-deb -x "$DEBFILE" "$TMPDIR"
dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN

if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
  echo DEBIAN/control not found.

  rm -r "$TMPDIR"
  exit 1
fi

CONTROL="$TMPDIR"/DEBIAN/control

MOD=`stat -c "%y" "$CONTROL"`
$EDITOR "$CONTROL"

if [[ "$MOD" == `stat -c "%y" "$CONTROL"` ]]; then
  echo Not modfied.
else
  echo Building new deb...
  dpkg -b "$TMPDIR" "$OUTPUT"
fi

rm -r "$TMPDIR"
'notte...
Avatar utente
kRel
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 355
Iscrizione: giovedì 16 aprile 2009, 22:59
Desktop: ubuntu
Distribuzione: Ubuntu 12.04.1 LTS Unity i686
Località: Roma

Re: Errore: La dipendenza non può essere soddisfatta

Messaggio da kRel »

Mdfalcubo ha scritto: Vaillant te l'ha spiegato molto bene. Il comando sudo apt-get install -f non serve a installare gli aggiornamenti, ma a risolvere eventuali problemi di dipendenze. Per verificare gli aggiornamenti il comando è sudo apt-get upgrade... Se lo facevi da terminale ottenevi lo stesso risultato che hai ottentuo con Ubuntu Tweak, cioè verificavi gli aggiornamenti e POI col comando install li installavi...
Mi mando a quel paese da solo . . .
Grazie Mdfalcubo, e anche a Vaillant, era evidente... quello che non conoscevo era l'effetto di apt-get install -f .
vaillant ha scritto: Come ho detto prima, se stai tentando di installare un software che richiede una dipendenza che Lucid non può soddisfare, hai due opzioni:
1) ti scarichi le varie dipendenze dai rilasci successivi o da debian testing (cosa parecchio sconsigliata a mio modo di vedere);
2) lasci perdere quel pacchetto o ne cerchi una versione meno recente che puoi installare su lucid;
La seconda che hai detto . . .  Non vale la pena incasinare un sistema che gira come un  orologio ! In realtà la versione precedente ce l'ho già . . . quella successiva ha una caratteristica migliorativa che mi interessava, ma a queste condizioni non vale la pena.
Vale anche per il consiglio successivo di Mdfalcubo e di gian72. Grazie a tutti. Ciao

Metterei risolto al primo post se siete d'accordo . . .
Ultima modifica di kRel il giovedì 20 gennaio 2011, 23:59, modificato 1 volta in totale.
a ciascuno il suo . . .
ubuntu 12.04 unity - 32 bit
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti