Como consertar essa bagunça do apt?

4

Estou usando o PureOS, que é basicamente o Debian com alguns pequenos ajustes. Eu tentei instalar o firefox nele, mas terminei com uma bagunça completa. Se eu agora tentar fazer uma atualização básica, recebo isso:

$ 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).

Então eu tentei sugerir:

$ 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 agora estou meio preso.

Alguém sabe o que posso fazer para limpar essa bagunça? Todas as dicas são bem vindas!

[EDITAR]

Eu tentei remover o firefox de várias maneiras:

$ 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).

Eu também tentei as seguintes variações, mas todas deram resultados semelhantes:

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

[EDIT 2]

Seguindo a resposta de @alan, tentei remover o desvio:

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

Depois disso, atualizei e atualizei:

$ 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).

Infelizmente, o mesmo resultado que você pode ver. Eu tentei apt --fix-broken install apenas para ter certeza, mas isso deu o mesmo resultado de antes.

Então eu usei o comando para encontrar outras diversões (embora eu não tenha 100% de certeza que os desvios são exatamente):

& 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

Então, preenchi o que eu achava certo:

$ 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'

mas mais uma vez recebo o mesmo:

$ 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 outro tenta corrigir:

$ 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)

Mais alguma dica?

[EDIT 3]

Seguindo as dicas do @harrymc, tentei executar isto:

$ 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).

Como você pode ver, isso não funcionou. Então aqui está a saída 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

Apenas para informações, aqui está o conteúdo do meu /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

Isso lhe diz alguma coisa?

    
por kramer65 09.02.2018 / 10:30

4 respostas

1

O Firefox está tentando criar um desvio, quando já existe um desvio com esse nome.

Você precisa remover primeiro o desvio existente.

Esta é a linha de erro:

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'

Desta solução :

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

Observação: se o desvio não for causado por / usr / bin / firefox, talvez seja necessário identificar o desvio com sudo dpkg-divert --list | grep firefox ou sudo dpkg-divert --list | grep purebrowser Em uma nota lateral, se você não gostar da mensagem de erro de localidade lançada pelo Perl, você pode se livrar dela exportando sua localidade, conforme mostrado aqui :

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

Se tudo mais falhar, abra o registro do pacote e remova o iceweasel manualmente:

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

(você provavelmente verá um bloco que inicia algo como Pacote: Status do Iceweasel: Instalação quebrada). Veja este problema semelhante: não é possível corrigir pacotes quebrados com o sudo apt-get install -f

    
por 11.02.2018 / 18:57
2

Use isto: %código% e você irá forçar a instalação do firefox-esr. 99,9% corrigirá seu problema. Então siga com %código% e você provavelmente estará claro.

Como regra geral, ao misturar coisas em instalações, você encontrará um pacote que precisa sobrescrever um arquivo de outro pacote. Usar sudo dpkg -i --force-all /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb com a opção sudo dpkg --configure -a nesses casos permite que você reproduza Deus, mas também anula todas as boas verificações de segurança incorporadas no sistema de gerenciamento de pacotes do Debian. Mas afinal, esse é um dos problemas de ser o usuário root .

    
por 15.02.2018 / 21:17
0

Quando você olha para os repositórios, o Debian inclui o pacote 'Iceweasel', enquanto o repositório do PureOS contém o pacote firefox-esr. Com base nas mensagens de erro, eles estão em conflito.

Isso pode remover seu perfil do Firefox, mas eu tentaria:

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

Isso deve instalar o pacote firefox do repositório do PureOS.

Iceweasel foi uma rebrandagem do Firefox feita pelo Debian, mas eles estão revertendo suas mudanças. No Debian stretch ele ainda é chamado de Iceweasel mas ele simplesmente instala um firefox-esr com patches, na próxima versão Debian ele deve simplesmente ser chamado firefox-esr.

É possível que você tenha adicionado esses repositórios Debian? Nunca é uma boa ideia misturar repositórios de distro. Comente essas linhas então:

apt clean && apt update

Em seguida, tente novamente limpar & instalar.

    
por 13.02.2018 / 09:25
0

Os pacotes do firefox no PureOS podem estar inconsistentes ou em estado de transição.

Neste caso, sugiro remover os pacotes de iceweasel, firefox e firefox-esr (ou todas as outras variantes do firefox), então baixe e instale a versão mais recente do Linux do Firefox diretamente da Mozilla .
Para finalizar, verifique se as atualizações automáticas estão ativadas.

Para mais informações, consulte o artigo da Mozilla Instalando o Firefox - Linux .

Para remover um pacote quebrado, você pode usar a opção nuclear de:

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

Se isso lhe der um erro que não irá remover um pacote porque é dependendo de outro pacote, remova esse outro pacote também.

    
por 13.02.2018 / 12:06