Aumenta le dipendenze non soddisfatte

4

Ho sentito che è facile installare le librerie su Ubuntu quindi sono passato a Ubuntu, ho provato a installare boost così scrivo:

sudo apt-get install libboost-all-dev

e ottengo questo:

Reading package lists... Done Building dependency tree        
Reading state information... Done Some packages could not be installed. This
may mean that you have requested an impossible situation or if you are
using the unstable distribution that some required packages have not
yet been created or been moved out of Incoming. The following
information may help to resolve the situation:

The following packages have unmet dependencies:  libboost-all-dev :
Depends: libboost-python-dev but it is not going to be installed E:
Unable to correct problems, you have held broken packages.

Ora vedo che esiste una domanda canonica per questo ma come suggerisce la risposta:

  

APT è un sistema di gestione dei pacchetti per Debian e altri Linux   distribuzioni basate su di esso, come Ubuntu. Per la maggior parte, APT è   facile da usare per l'installazione, la rimozione e l'aggiornamento dei pacchetti. In rari   istanze, spesso quando si mescolano le dipendenze di terze parti,   c'è una possibilità che apt-get possa finire per darti un errore nel raccontare   non è possibile completare l'installazione di un pacchetto.

Ma dubito che ci sia qualcosa di raro nella mia situazione. In effetti, la ragione per cui ho provato a installare boost è perché so che dovrebbe essere un gioco da ragazzi, e avrei voluto avere qualche successo con esso prima di installare openscenegraph, che effettivamente avrò bisogno. Volevo provare se le cose di base funzionano, e mi ha deluso. per favore aiutatemi invece di chiudere la mia domanda contro la "soluzione generale", l'ho provato, ma ad un certo punto non ho idea di cosa parlino i rispondenti, cioè:

  

Disabilita / Rimuovi / Elimina PPA:

     

Gli PPA (Archivio pacchetti personali) sono repository ospitati su Launchpad.   È possibile utilizzare i PPA per installare o aggiornare i pacchetti che non sono disponibili   nei repository ufficiali di Ubuntu.

     

Una delle cause più comuni delle dipendenze non soddisfatte sono i PPA,   specialmente se usato per aggiornare il pacchetto esistente in Ubuntu   repository. Per risolvere il problema hai le opzioni ad albero, disabilita,   eliminare (ripristinare il pacchetto originale nei repository di Ubuntu) o   rimuovere PPA.

Quindi la mia domanda specifica è questa:

Ho installato Ubuntu 12.04 LTS proprio questo giorno. Ho installato i blocchi di codice, g ++, build-essentials, nessun problema.

Ho provato a sudo apt-get install openscenegraph , potrebbe aver funzionato anche se non riesco a individuare i file di intestazione sul mio disco rigido (forse avrei dovuto scaricare openscenegraph-dev (ma non esiste))

Quindi ho scelto di installare boost per vedere se questo programma di installazione dei pacchetti funziona in primo luogo e ho ottenuto (dipendenze non soddisfatte) ciò che ho incollato sopra.

Perché non funziona e come posso farlo funzionare?

Modifica:

apt-cache madison libboost-python-dev

restituisce:

libboost-python-dev |   1.48.0.2 | http://archive.ubuntu.com/ubuntu/precise/main amd64 Packages
    
posta Jani Kovacs 27.12.2013 - 16:27

3 risposte

0

Uno dei problemi che derivano dalle dipendenze non soddisfatte è quando un'applicazione dipendente ha una propria dipendenza che non verrà installata. Qui è il caso.

Il problema è libboost-python-dev dipende libboost-python1.46-dev . Ma non è stato provato per essere installato.

packages.ubuntu.com .

Quindi per installare libboost-python-dev , dovresti installare anche libboost-python1.46-dev .

Quindi esegui:

sudo apt-get install libboost-all-dev libboost-python-dev libboost-python1.46-dev

** Puoi installare openscenegraph-dev da:

sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libopenscenegraph80 libopenthreads-dev libopenscenegraph-dev 
    
risposta data user224082 27.12.2013 - 17:23
1
sudo aptitude install libboost-all-dev

L'utilizzo di aptitude anziché di apt-get potrebbe offrirti alcune soluzioni automatiche per la rimozione di pacchetti in conflitto.

    
risposta data jhclark 10.09.2016 - 11:05
0

Mi sono imbattuto in questo problema da solo. Ho installato 'libboost1.48-dev', che è simile al tuo caso, dove hai 'libboost1.48-python-dev'.

  • Vuoi installare libboost1.48-all-dev , non libboost-all-dev . Quest'ultimo è la versione 1.46, che è incompatibile con il libboost1.48-python-dev già installato.

  • In alternativa, puoi disinstallare libboost1.48-python-dev e installare libboost-all-dev se vuoi tornare alla v1.46.

risposta data John Kua 18.03.2014 - 18:56