4

Я использую PureOS, который в основном представляет собой Debian с некоторыми небольшими изменениями. Я попытался установить Firefox на него, но закончилось полным беспорядком. Если я сейчас попытаюсь сделать базовое обновление, я получу это:

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

Поэтому я попытался предложить:

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

И теперь я застрял.

Кто-нибудь знает, что я могу сделать, чтобы убрать этот беспорядок? Все советы приветствуются!

[РЕДАКТИРОВАТЬ]

Я пытался удалить Firefox разными способами:

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

Я также попробовал следующие варианты, но все дали похожие результаты:

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

[РЕДАКТИРОВАТЬ 2]

После ответа @alan я попытался убрать переадресацию:

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

После этого я сделал обновление, а затем обновление:

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

К сожалению, такой же результат, как вы можете видеть. Я просто попытался apt --fix-broken install , но это дало тот же результат, что и раньше.

Поэтому я использовал команду для поиска других диверсий (хотя я не уверен на 100%, какие именно диверсии):

& 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

Так что я просто заполнил то, что считал правильным:

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

но опять я получаю то же самое

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

и еще одна попытка это исправить:

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

Есть еще советы?

[РЕДАКТИРОВАТЬ 3]

Следуя советам @harrymc, я попытался запустить это:

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

Как вы можете видеть, это не помогло. Итак, вот выходная 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

Просто для информации, вот содержимое моего /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

Это тебе что-нибудь говорит?

4 ответа4

2

Firefox пытается создать переадресацию, когда переадресация с таким именем уже существует.

Вы должны удалить существующую диверсию сначала.

Это строка ошибки:

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'

Из этого решения:

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

Примечание: если переадресация не вызвана /usr /bin /firefox, вам может потребоваться определить переадресацию с помощью sudo dpkg-divert --list | grep firefox или sudo dpkg-divert --list | grep purebrowser , если вам не нравится сообщение об ошибке локали, выданное Perl, вы можете избавиться от него, экспортировав локаль, как показано здесь:

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

Если ничего не помогает, откройте запись пакета и вручную удалите iceweasel:

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

(вы, вероятно, увидите блок, который запускает что-то вроде Package: Iceweasel Status: Install broken). Смотрите эту похожую проблему: Невозможно исправить поврежденные пакеты с помощью sudo apt-get install -f

2

Используйте это:sudo dpkg -i --force-all /var/cache/apt/archives/firefox-esr_52.6.0esr-1~deb9u1_amd64.deb и вы принудительно установите firefox-esr. 99,9% это решит вашу проблему. Затем выполните sudo dpkg --configure -a и вы, скорее всего, будете в курсе событий.

Как правило, при смешивании вещей в установках вы найдете пакет, который должен перезаписать файл из другого пакета. Использование dpkg с опцией --force-all в этих случаях позволяет вам играть в Бога, но также отменяет все эти приятные проверки безопасности, встроенные в систему управления пакетами Debian. Но, в конце концов, это одна из трудностей быть пользователем root .

0

Когда вы смотрите на репозитории, Debian включает пакет Iceweasel, в то время как репозиторий PureOS содержит пакет firefox-esr. На основании сообщений об ошибках они конфликтуют.

Это может удалить ваш профиль Firefox, но я бы попробовал:

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

Это должно установить пакет Firefox из репозитория PureOS.

Iceweasel был ребрендом Firefox, созданным Debian, но они возвращают свои изменения. В Debian Stretch он все еще называется Iceweasel, но он просто устанавливает пропатченный firefox-esr, в следующей версии Debian он должен просто называться firefox-esr.

Возможно ли, что вы сами добавили эти репозитории Debian? Никогда не стоит смешивать дистрибутивные репозитории. Затем закомментируйте эти строки:

apt clean && apt update

Затем повторите попытку очистки и установки.

0

Пакеты Firefox в PureOS могут быть несовместимыми или находиться в состоянии перехода.

В этом случае я предлагаю удалить пакеты iceweasel, firefox и firefox-esr (или всех других вариантов firefox), а затем загрузить и установить последнюю версию Linux Firefox непосредственно из Mozilla.
Чтобы прекратить, убедитесь, что автоматические обновления включены.

Для получения дополнительной информации см. Статью Mozilla Установка Firefox - Linux.

Чтобы удалить сломанный пакет, вы можете использовать ядерную опцию:

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

Если он выдаст ошибку, что не удалит пакет, поскольку зависит от другого пакета, удалите и этот другой пакет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .