web-dev-qa-db-ja.com

アトラスlibシンボリックリンクがマスタースレーブデッドロックでスタック

数回のインストールと削除を行った後、AtlasとOpenBLASを互いに友だちにしようとすると、この更新代替エラーが発生します。これは、実際にはマスタースレーブデッドロックと考えられます。一部のシンボリックリンクはスレーブであるべきですが、実際にはマスターです。これを修正する方法を教えてください。

私の設定:ubuntu 12.04

Sudo apt-get -f install

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up libatlas3gf-base (3.8.4-3build1) ...
update-alternatives: error: alternative libatlas.so.3gf can't be slave of libblas.so.3gf:     it is a master alternative.
dpkg: error processing libatlas3gf-base (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 libatlas3gf-base
E: Sub-process /usr/bin/dpkg returned an error code (1)

Sudo dpkg --configure -a

Setting up libatlas3gf-base (3.8.4-3build1) ...
update-alternatives: error: alternative libatlas.so.3gf can't be slave of libblas.so.3gf: it is a master alternative.
dpkg: error processing libatlas3gf-base (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 libatlas3gf-base

編集:

$ update-alternatives --query libblas.so.3gf
update-alternatives: error: no alternatives for libblas.so.3gf.


$ update-alternatives --query libatlas.so.3gf
Link: libatlas.so.3gf
Status: auto
Best: /usr/local/lib/libopenblas.so
Value: none

Alternative: /usr/local/lib/libopenblas.so
Priority: 50
2
horaceT

私は自分のマスタースレーブデッドロックを修正しました。これが魔法のラインです。

Sudo dpkg --remove --force-remove-reinstreq libatlas3gf-base

その後、 'Sudo apt-get -f install'を発行しましたが、これ以上問題はありませんでした。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

注:別の投稿( http://ubuntuforums.org/showthread.php?t=947124 )で誰かが提案しました

"Sudo dpkg --remove -force --force-remove-reinstreq package name"

「-force」は本当に必要ありません。

1
horaceT

私はhoraceTの答えを得ることができませんでした。代わりに、次のコマンドを発行しましたが、不満はありましたが、apt-get installの失敗を停止しました。

Sudo update-alternatives --config liblapack.so.3gf
Sudo update-alternatives --config libblas.so.3gf
0
Tom Ellis

記憶のためだけに: この答え を作成することをお勧めします

Sudo update-alternatives --remove-all liblapack.so.3gf
Sudo apt-get install -f

これは私の場合に役立ちました。

0
v_2e