Come risolvere questo pasticcio apt?


4

Sto usando PureOS, che è sostanzialmente Debian con alcune piccole modifiche. Ho provato a installare Firefox su di esso, ma ho finito con un casino completo. Se ora provo a fare un aggiornamento di base, ottengo questo:

$ sudo apt update && sudo apt upgrade
Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB]              
Get:3 http://deb.opera.com/opera stable InRelease [2592 B]                          
Get:4 http://security.debian.org stretch/updates InRelease [63.0 kB]                
Hit:5 http://deb.debian.org/debian stretch Release                                  
Get:6 https://repo.skype.com/deb stable InRelease [4486 B]                          
Get:7 http://deb.opera.com/opera stable/non-free amd64 Packages [1835 B]            
Get:8 http://packages.microsoft.com/repos/vscode stable InRelease [2801 B]          
Get:9 http://repository.spotify.com stable InRelease [3302 B]                       
Get:10 http://repo.puri.sm/pureos green InRelease [9427 B]                          
Get:12 http://security.debian.org stretch/updates/main Sources [110 kB]             
Get:13 http://security.debian.org stretch/updates/contrib Sources [1384 B]          
Get:14 http://security.debian.org stretch/updates/main amd64 Packages [271 kB]      
Get:15 https://repo.skype.com/deb stable/main amd64 Packages [2251 B]               
Get:16 http://security.debian.org stretch/updates/main Translation-en [120 kB]      
Get:17 http://security.debian.org stretch/updates/contrib amd64 Packages [1776 B]   
Get:18 http://security.debian.org stretch/updates/contrib Translation-en [1759 B]   
Get:19 https://download.sublimetext.com apt/stable/ InRelease [2562 B]              
Get:20 http://packages.microsoft.com/repos/vscode stable/main amd64 Packages [39.6 kB]
Ign:21 https://mega.nz/linux/MEGAsync/Debian_9.0 ./ InRelease                       
Get:22 http://repo.puri.sm/pureos green/main amd64 Packages [6286 kB]               
Get:23 https://mega.nz/linux/MEGAsync/Debian_9.0 ./ Release [976 B]                 
Get:26 http://repo.puri.sm/pureos green/main Translation-en [5583 kB]               
Hit:24 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease      
Get:27 http://repo.puri.sm/pureos green/main amd64 DEP-11 Metadata [2202 kB]        
Get:28 http://repo.puri.sm/pureos green/main DEP-11 64x64 Icons [6768 kB]
Fetched 21.6 MB in 4s (5487 kB/s)                                     
Reading package lists... Done
Building dependency tree       
Reading state information... Done
59 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 iceweasel : Depends: firefox-esr but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Quindi ho provato a suggerire:

$ sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  firefox-esr
Suggested packages:
  fonts-stix | otf-stix fonts-lmodern mozplugger
The following NEW packages will be installed:
  firefox-esr
0 upgraded, 1 newly installed, 0 to remove and 59 not upgraded.
2 not fully installed or removed.
Need to get 0 B/46.5 MB of archives.
After this operation, 114 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US",
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 227765 files and directories currently installed.)
Preparing to unpack .../firefox-esr_52.6.0esr-1~deb9u1_amd64.deb ...
dpkg-divert: error: 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by firefox-esr' clashes with 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by purebrowser'
dpkg: error processing archive /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb (--unpack):
 new firefox-esr package pre-installation script subprocess returned error exit status 2
Errors were encountered while processing:
 /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

E ora sono un po 'bloccato.

Qualcuno sa cosa posso fare per pulire questo casino? Tutti i suggerimenti sono benvenuti!

[MODIFICARE]

Ho provato a rimuovere Firefox in molti modi:

$ sudo apt -y remove firefox
[sudo] password for hielke: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'firefox' is not installed, so not removed
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 iceweasel : Depends: firefox-esr but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Ho anche provato le seguenti varianti, ma tutte hanno dato risultati simili:

sudo apt remove firefox
sudo apt purge firefox
sudo apt remove firefox-esr
sudo apt purge firefox-esr
sudo apt remove iceweasel
sudo apt purge iceweasel
sudo apt remove purebrowser
sudo apt purge purebrowser

[MODIFICA 2]

Dopo la risposta di @alan ho provato a rimuovere il diversivo:

$ sudo dpkg-divert --remove /usr/bin/firefox
Removing 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by purebrowser'

Dopo quello ho fatto un aggiornamento e poi un aggiornamento:

$ sudo apt update
Hit:1 http://security.debian.org stretch/updates InRelease
Hit:2 http://repo.puri.sm/pureos green InRelease                                                                                         
Hit:3 http://deb.opera.com/opera stable InRelease                                                                                        
Ign:4 http://deb.debian.org/debian stretch InRelease                                                                                     
Hit:5 http://packages.microsoft.com/repos/vscode stable InRelease                                                                        
Hit:6 http://deb.debian.org/debian stretch-updates InRelease                                                                             
Hit:7 http://deb.debian.org/debian stretch Release                                                                                       
Hit:8 https://repo.skype.com/deb stable InRelease                                                                                        
Ign:9 https://mega.nz/linux/MEGAsync/Debian_9.0 ./ InRelease                                                                             
Hit:10 http://repository.spotify.com stable InRelease                                                                                    
Hit:11 https://download.sublimetext.com apt/stable/ InRelease                                                                            
Get:12 https://mega.nz/linux/MEGAsync/Debian_9.0 ./ Release [976 B]                                                                     
Hit:14 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease                          
Fetched 976 B in 3s (385 B/s)                                                                   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
135 packages can be upgraded. Run 'apt list --upgradable' to see     them.
$
$
$
$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 iceweasel : Depends: firefox-esr but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Purtroppo lo stesso risultato che puoi vedere. Ho provato apt --fix-broken installsolo per essere sicuro, ma questo ha dato lo stesso risultato di prima.

Quindi ho usato il comando per trovare altre deviazioni (anche se non sono sicuro al 100% di quali deviazioni siano esattamente):

& sudo dpkg-divert --list | grep firefox
diversion of /usr/share/applications/firefox-esr.desktop to /usr/share/applications/firefox-esr.desktop.diverted by xul-ext-iceweasel-branding

Quindi ho appena compilato ciò che pensavo fosse giusto:

$ sudo dpkg-divert --remove /usr/share/applications/firefox-esr.desktop
Removing 'diversion of /usr/share/applications/firefox-esr.desktop to /usr/share/applications/firefox-esr.desktop.diverted by xul-ext-iceweasel-branding'

ma di nuovo ottengo lo stesso:

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 iceweasel : Depends: firefox-esr but it is not installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

e un altro prova a risolverlo:

$ sudo apt --fix-broken install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following additional packages will be installed:
  firefox-esr
Suggested packages:
  fonts-stix | otf-stix fonts-lmodern mozplugger
The following NEW packages will be installed:
  firefox-esr
0 upgraded, 1 newly installed, 0 to remove and 135 not upgraded.
2 not fully installed or removed.
Need to get 0 B/46.5 MB of archives.
After this operation, 114 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US",
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 227763 files and directories currently installed.)
Preparing to unpack .../firefox-esr_52.6.0esr-1~deb9u1_amd64.deb ...
Adding 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by firefox-esr'
Unpacking firefox-esr (52.6.0esr-1~deb9u1) ...
dpkg: error processing archive /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/applications/firefox-esr.desktop', which is also in package xul-ext-iceweasel-branding 0.4.0
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Qualche altro consiglio?

[EDIT 3]

Seguendo i suggerimenti di @harrymc ho provato a eseguire questo:

$ sudo apt-get install iceweasel
[sudo] password for hielke: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
iceweasel is already the newest version (52.6.0esr-1~deb9u1).
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 iceweasel : Depends: firefox-esr but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Come vedi non ha funzionato. Quindi ecco l'output apt-cache policy firefox-esr:

$ apt-cache policy firefox-esr
firefox-esr:
  Installed: (none)
  Candidate: 52.6.0esr-1~deb9u1
  Version table:
     52.6.0esr-1~deb9u1 500
        500 http://security.debian.org stretch/updates/main amd64 Packages
     52.5.0esr-1~deb9u1 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages

Solo per informazioni, ecco i contenuti del mio /etc/apt/sources.list:

deb http://repo.puri.sm/pureos/ green main
deb http://deb.opera.com/opera/ stable non-free
# deb-src http://deb.opera.com/opera/ stable non-free
# deb http://security.debian.org/debian-security stretch/updates main
# deb http://httpredir.debian.org/debian/ stretch main contrib non-free

deb http://deb.debian.org/debian stretch main contrib non-free
deb-src http://deb.debian.org/debian stretch main contrib non-free

deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb-src http://deb.debian.org/debian stretch-updates main contrib non-free

deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

Questo ti dice qualcosa?


Hai provato a rimuovere l'installazione di Firefox non funzionante? sudo apt -y remove <package-name>
Praveen Premaratne,

@PraveenP - sì, l'ho fatto. L'ho aggiunto alla domanda. Altre idee?
kramer65,


A seguito di EDIT 2: Provare a eseguire questo comando: sudo apt-get install iceweasel. Se ciò non aiuta, fornire l'output di apt-cache policy firefox-esr. E quale repository stai usando con apt?
harrymc,

@harrymc - Grazie per il suggerimento. Purtroppo questo non lo fa ancora. Ho aggiunto i risultati alla domanda in [MODIFICA 3]. Questo ti dice qualcosa?
kramer65,

Risposte:


2

Firefox sta provando a creare un diversivo, quando esiste già un diversivo con quel nome.

È necessario rimuovere prima la deviazione esistente.

Questa è la riga di errore:

dpkg-divert: error: 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by firefox-esr' clashes with 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by purebrowser'

Da questa soluzione :

sudo dpkg-divert --remove /usr/bin/firefox

Nota: se la deviazione non è causata da / usr / bin / firefox, potrebbe essere necessario identificare la deviazione con uno sudo dpkg-divert --list | grep firefoxo sudo dpkg-divert --list | grep purebrowser su una nota a margine, se non ti piace il messaggio di errore locale generato da Perl, puoi sbarazzarti di esportando la tua locale, come mostrato qui :

export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Se tutto il resto fallisce, apri il record del pacchetto e rimuovi manualmente iceweasel:

sudo -i gedit /var/lib/dpkg/status

(probabilmente vedrai un blocco che avvia qualcosa come Pacchetto: Iceweasel Status: Installa non funzionante). Vedi questo problema simile: Impossibile correggere i pacchetti rotti con sudo apt-get install -f


Ciao Alan Grazie per i vostri suggerimenti. Li ho provati ma non sono riuscito a trovare una soluzione. L'ho descritto nella domanda sotto [EDIT 2]. Hai qualche altra idea?
kramer65,

Una diversione è un'istruzione per installare un file ecc. Da un pacchetto con un nome diverso da quello normalmente installato (ad esempio firefox -> firefox.desktop). Per rimuovere la deviazione è necessario rimuovere la fonte, non il risultato. Prova:sudo dpkg-divert --remove /usr/share/applications/firefox-esr/xul-ext-iceweasel-branding
Alan,

Ho provato il tuo suggerimento, ma poi ho ricevutoNo diversion 'any diversion of /usr/share/applications/firefox-esr/xul-ext-iceweasel-branding', none removed.
kramer65,

So che hai provato a rimuovere i browser, ma hai provato a rimuovere il pacchetto di branding? È sparato a lungo ma rimuovendoli in ordine (apt purge) e reinstallando solo il pacchetto appropriato. Sembra che l'ordine sia xul-ext-iceweasel-branding-> iceweasel-> firefox. Non dovresti aver bisogno di iceweasel o firefox poiché PureOS fornisce PureBrowser.
Alan,

1
Se tutto il resto fallisce, apri il record del pacchetto e rimuovi manualmente iceweasel: sudo -i gedit / var / lib / dpkg / status (probabilmente vedrai un blocco che avvia qualcosa come Pacchetto: Iceweasel Status: Installa non funzionante). Vedi questo problema simile: askubuntu.com/questions/146150/…
Alan,

2

Usa questo: sudo dpkg -i --force-all /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb e installerai forzatamente firefox-esr. 99,9% risolverà il tuo problema. Quindi seguitelo con sudo dpkg --configure -a e sarete molto probabilmente in chiaro.

Come regola generale, quando si mescolano elementi nelle installazioni, si trova un pacchetto che deve sovrascrivere un file da un altro pacchetto. L'uso dpkgcon l' --force-allopzione in questi casi ti consente di giocare a Dio, ma ha anche la precedenza su tutti quei bei controlli di sicurezza integrati nel sistema di gestione dei pacchetti di Debian. Ma dopo tutto, questo è uno degli oneri di essere l' utente root .


0

Quando guardi i repository, Debian include il pacchetto 'Iceweasel' mentre il repository PureOS contiene il pacchetto firefox-esr. Sulla base dei messaggi di errore sono in conflitto.

Questo potrebbe rimuovere il tuo profilo di Firefox ma vorrei provare:

sudo apt purge firefox firefox-esr iceweasel purebrowser
sudo apt install firefox-esr

Ciò dovrebbe installare il pacchetto firefox dal repository PureOS.

Iceweasel era un marchio di Firefox fatto da Debian ma stanno annullando le loro modifiche. Nel tratto Debian si chiama ancora Iceweasel ma installa semplicemente un firefox-esr con patch, nella prossima versione di Debian dovrebbe semplicemente essere chiamato firefox-esr.

È possibile che tu abbia aggiunto questi repository debian tu stesso? Non è mai una buona idea mescolare i repository distro. Commenta quelle righe quindi:

apt clean && apt update

Quindi riprovare a eliminare e installare.


Grazie, ma come puoi leggere nella domanda ho provato a rimuovere tutti i browser correlati (firefox, firefox-esr, iceweasel e purebrowser) usando entrambi apt removee apt purge. Ma questo mi dà un risultato, finendo nell'errore E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).Qualche idea su come posso superare quell'errore?
kramer65,

Mi è completamente mancato che tu ci abbia già provato ... Puoi provare a cancellarli tutti in un comando come ho aggiornato?
HoD

Ho modificato di nuovo chiedendo dei repository Debian, mi sembra sospetto ora che ci penso.
HoD

0

I pacchetti firefox in PureOS potrebbero essere incoerenti o in uno stato di transizione.

In questo caso, suggerisco di rimuovere i pacchetti di iceweasel, firefox e firefox-esr (o tutte le altre varianti di firefox), quindi scaricare e installare l'ultima build Linux di Firefox direttamente da Mozilla .
Per terminare, controlla che gli aggiornamenti automatici siano abilitati.

Per ulteriori informazioni, consultare l'articolo di Mozilla Installazione di Firefox - Linux .

Per rimuovere un pacchetto rotto, è possibile utilizzare l'opzione nucleare di:

sudo dpkg --remove --force-remove-reinstreq package_name

Se ti dà un errore che non rimuoverà un pacchetto perché dipende da un altro pacchetto, rimuovi anche quell'altro pacchetto.


Grazie, ma come puoi leggere nella domanda ho provato a rimuovere tutti i browser correlati (firefox, firefox-esr, iceweasel e purebrowser) usando entrambi apt removee apt purge. Ma questo mi dà un risultato, finendo nell'errore E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).Qualche idea su come posso superare quell'errore?
kramer65,

L'ultima build Linux di Firefox da Mozilla funziona anche se non rimuovi questi pacchetti rotti?
harrymc,

Puoi anche provare sudo dpkg --remove --force-remove-reinstreq package_name. Se ti dà un errore che non rimuoverà un pacchetto perché dipende da un altro pacchetto, rimuovi anche quell'altro pacchetto.
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.