Как исправить этот удачный беспорядок?

1513
kramer65

Я использую 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
Вы пытались удалить сломанную установку Firefox? `sudo apt -y удалить` Praveen P 6 лет назад 0
@PraveenP - да, я сделал. Я добавил это к вопросу. Есть другие идеи? kramer65 6 лет назад 0
Смотрите [этот ответ] (https://askubuntu.com/a/282746). harrymc 6 лет назад 0
После РЕДАКТИРОВАНИЯ 2: Попробуйте выполнить эту команду: `sudo apt-get install iceweasel`. Если это не поможет, предоставьте вывод `apt-cache policy firefox-esr`. И какой репозиторий вы используете с apt? harrymc 6 лет назад 0
@harrymc - Спасибо за совет. К сожалению, это еще не сделано. Я добавил результаты к вопросу в разделе [ПРАВКА 3]. Это тебе что-нибудь говорит? kramer65 6 лет назад 0
После РЕДАКТИРОВАНИЯ 3: Iceweasel может быть проблемой, так как это обновленная версия Firefox, но больше не выпускается. Попробуйте `apt-get remove iceweasel`. harrymc 6 лет назад 0
@harrymc - я уже пробовал вариации этого (и снова сейчас), но это не имеет никакого значения. kramer65 6 лет назад 0
@ kramer65 Если у вас есть шанс, можете ли вы зайти в [чат] (https://chat.stackexchange.com/rooms/118/root-access)? Я хотел бы попробовать еще несколько интерактивных методов устранения неполадок. Bob 6 лет назад 0
Посмотрите, удастся ли вручную очистить временную загрузку / кеш / пакеты ... и снова начать установку Firefox. [Самоцитирование] (https://askubuntu.com/a/498949/196535). Обратите внимание, что `apt` и` apt-get` могут работать по-разному, и что у `apt-get` есть две разные опции` -m` и `-f`, к сожалению [другая самоцитирование] (https: // askubuntu.com/a/462751/196535) `:-)`. Hastur 6 лет назад 0

4 ответа на вопрос

2
Alan

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 / светлячок, возможно, потребуется определить утечку либо 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]». У тебя есть другие идеи? kramer65 6 лет назад 0
Переадресация - это инструкция для установки файла и т. Д. Из пакета с именем, отличным от имени, которое обычно устанавливается (например, firefox -> firefox.desktop). Чтобы убрать диверсию, нужно удалить источник, а не результат. Попробуйте: `sudo dpkg-divert --remove / usr / share / Applications / firefox-esr / xul-ext-iceweasel-брендинг` Alan 6 лет назад 0
Я попробовал ваше предложение, но затем я получаю "Не переадресация" - любая переадресация / usr / share / Applications / firefox-esr / xul-ext-iceweasel-branding ', ни одна из которых не была удалена. kramer65 6 лет назад 0
Я знаю, что вы пытались удалить браузеры, но пытались ли вы удалить фирменный пакет? Это долго, но удаляя их по порядку (apt purge) и переустанавливая только соответствующий пакет. Похоже, что порядок: xul-ext-iceweasel-branding-> iceweasel-> firefox. Вам не нужен iceweasel или firefox, так как PureOS предоставляет PureBrowser. Alan 6 лет назад 0
Если ничего не помогает, откройте запись пакета и вручную удалите iceweasel: ** sudo -i gedit / var / lib / dpkg / status ** (вы, вероятно, увидите блок, который запускает что-то вроде Package: Iceweasel Status: Install сломаны). Смотрите эту похожую проблему: https://askubuntu.com/questions/146150/unable-to-fix-broken-packages-with-sudo-apt-get-install-f Alan 6 лет назад 1
Ваш последний комментарий помог мне. Если вы добавите его в свой ответ, я могу принять ваш ответ. kramer65 6 лет назад 0
@ kramer65 - готово. Alan 6 лет назад 0
работал на меня. Спасибо 0.sh 5 лет назад 0
2
gmelis

Используйте это: 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
HoD

Когда вы смотрите на репозитории, 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 

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

Спасибо, но, как вы можете прочитать в вопросе, я попытался удалить все связанные браузеры (firefox, firefox-esr, iceweasel и purebrowser), используя `apt remove` и` apt purge`. Но это дает мне некоторый вывод, заканчивающийся ошибкой `E: Unmet зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение) .` Есть идеи, как мне преодолеть эту ошибку? kramer65 6 лет назад 0
Я полностью упустил, что вы уже пробовали это ... Можете ли вы попробовать очистить их все одной командой, как я обновил? HoD 6 лет назад 0
Я снова отредактировал вопрос о репозиториях Debian, и теперь я думаю об этом подозрительно. HoD 6 лет назад 0
0
harrymc

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

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

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

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

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

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

Спасибо, но, как вы можете прочитать в вопросе, я попытался удалить все связанные браузеры (firefox, firefox-esr, iceweasel и purebrowser), используя `apt remove` и` apt purge`. Но это дает мне некоторый вывод, заканчивающийся ошибкой `E: Unmet зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение) .` Есть идеи, как мне преодолеть эту ошибку? kramer65 6 лет назад 0
Работает ли последняя сборка Firefox для Linux от Mozilla, даже если вы не удалите эти поврежденные пакеты? harrymc 6 лет назад 0
Вы также можете попробовать `sudo dpkg --remove --force-remove-reinstreq package_name`. Если он выдаст ошибку, что не удалит пакет, поскольку зависит от другого пакета, удалите и этот другой пакет. harrymc 6 лет назад 0

Похожие вопросы