web-dev-qa-db-ja.com

この適切な混乱を修正する方法は?

私は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

これはあなたに何かを教えてくれますか?

6
kramer65

その名前の迂回がすでに存在する場合、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

(おそらく、パッケージ:Iceweaselステータス:インストールが壊れています)のようなものを開始するブロックが表示されます。この同様の問題を参照してください: Sudo apt-get install -fで壊れたパッケージを修正できません

4
Alan

これを使用してください: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でフォローアップすると、おそらく明確になります。

原則として、インストールで混合する場合、別のパッケージのファイルを上書きする必要のあるパッケージが見つかります。これらの場合に--force-allオプションを付けてdpkgを使用すると、神を演じることができますが、Debianのパッケージ管理システムに組み込まれているすてきなセキュリティチェックもすべて無効にします。しかし結局のところ、それはrootユーザーであることの負担の1つです。

2
gmelis

リポジトリを見ると、Debianには「Iceweasel」パッケージが含まれていますが、PureOSリポジトリにはfirefox-esrパッケージが含まれています。エラーメッセージに基づいて、それらは競合しています。

これによりFirefoxプロファイルが削除される可能性がありますが、私は次のことを試みます。

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

これで、PureOSリポジトリからFirefoxパッケージがインストールされます。

IceweaselはDebianによって行われたFirefoxのブランド変更でしたが、変更を元に戻しています。 Debianストレッチでは引き続きIceweaselと呼ばれますが、パッチが適用されたfirefox-esrをインストールするだけです。次のDebianバージョンでは単にfirefox-esrと呼ばれる必要があります。

それらのdebianリポジトリを自分で追加することは可能ですか?ディストリビューションリポジトリを混在させることは決して良い考えではありません。次に、それらの行をコメントアウトします。

apt clean && apt update

次に、パージとインストールを再試行します。

0
HoD

PureOSのfirefoxパッケージは、一貫性がないか、移行中の状態にある可能性があります。

この場合、iceweasel、firefox、firefox-esr(またはfirefoxの他のすべてのバリアント)のパッケージを削除してから、ダウンロードしてインストールすることをお勧めします Mozillaから直接Firefoxの最新のLinuxビルド
終了するには、自動更新が有効になっていることを確認してください。

詳細については、Mozillaの記事 Firefoxのインストール-Linux を参照してください。

壊れたパッケージを削除するには、次の核オプションを使用できます。

Sudo dpkg --remove --force-remove-reinstreq package_name

別のパッケージに依存しているためにパッケージが削除されないというエラーが表示された場合は、その別のパッケージも削除してください。

0
harrymc