problema con il gestore pacchetti debian

2

A causa della limitazione della velocità della connessione internet preferisco installare i pacchetti offline. Di solito ottengo pacchetti richiesti da un sistema con lo stesso sistema operativo installato. Ma quando installo programmi in questo modo, di solito finivo con pacchetti non funzionanti sul mio sistema che non sono riparabili con il seguente:

sudo apt-get update
sudo apt-get install -f 

A volte l'ultimo comando vuole cancellare grub o alcuni pacchetti ovviamente essenziali dal mio sistema! oppure dopo aver eseguito l'ultimo comando non riesco ad installare alcuni programmi, ad esempio:

The following packages have unmet dependencies:
 mysql-client : Depends: mysql-client-5.5 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

come devo risolvere questi problemi? c'è un modo per salvare lo stato del sistema prima di installare programmi in questo modo e ripristinare il sistema al suo stato precedente se il processo di installazione non va bene? c'è un modo per risolvere questi problemi manualmente senza dipendere dal gestore dei pacchetti?

Spero che in Ubuntu sia possibile installare programmi isolati l'uno dall'altro come in Windows.

    
posta ali129 09.02.2015 - 15:16

2 risposte

2

Non hai detto come installi i pacchetti che hai scaricato. Se ottieni semplicemente i file .deb dall'altro sistema, scommetto che stai utilizzando dpkg --install per installare direttamente .deb .

Come hai già scoperto, dpkg non può risolvere e gestire problemi di dipendenza come apt can.

Un modo per "ripristinare" le modifiche è utilizzare apt-get per rimuovere i pacchetti che hai provato ad installare.

Una cosa che potresti provare è dpkg-offline (disclaimer: l'ho scritto). Sul tuo sistema on-line, ottieni una ISO per la versione di Ubuntu che hai sul tuo sistema offline. Esegui dpkg-offline che indica quali pacchetti si desidera installare. Utilizzerà apt-get per scaricare i pacchetti e tutte le loro dipendenze, e ti fornirà un tarball con pochi script di supporto da eseguire sul sistema offline. Aggiungerà un repository "offline" per quei pacchetti, quindi puoi usare apt-get e far funzionare le dipendenze.

    
risposta data roadmr 09.02.2015 - 17:08
3

In primo luogo, hai detto che questo non è il caso in Windows. In realtà hai torto: in Windows è necessario scaricare anche le dipendenze per il software.

Ora per il tuo problema. Il problema con il tentativo di installare tutti i pacchetti necessari da uno stato offline è che non hai modo di risolvere i problemi di dipendenza. Che cosa apt e tale fanno è tirare un elenco di tutte le dipendenze, determinare quali devono essere installati, e quindi provare a installarli. Se non riesce a installare le dipendenze, fallisce.

Visualizza mysql-client come esempio. Questo è un metapacchetto , poiché in esso si riferisce ad altri pacchetti e non contiene alcun eseguibile reale. Si basa anche su versioni specifiche di mysql-client e deve scaricarle.

Non esiste un modo reale per evitare ciò con una casella offline. L'unico vero modo per evitare questo problema è connettere effettivamente la tua casella a una rete con un mirror Debian o accesso a Internet e impostare regole firewall per limitare il traffico in uscita a solo raggiungere per aggiornare i server .

    
risposta data Thomas Ward 09.02.2015 - 15:20

Leggi altre domande sui tag