apt-get install でのエラーの発生
おはようございます🌞
みなさんは、このようなコマンドを実行して、
sudo apt-get install libcublas-dev
あるいは、このようなコマンドを実行して、
sudo apt-get --fix-broken install
次の瞬間にこのようなエラーメッセージが出て、
Unpacking libcublas-dev (10.1.0.105-1) …
dpkg: error processing archive /var/cache/apt/archives/libcublas-dev_10.1.0.105-1_amd64.deb (–unpack):
trying to overwrite ‘/usr/lib/x86_64-linux-gnu/stubs/libcublas.so’, which is also in package nvidia-cuda-dev 7.5.18-0ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
そして解決策が分からずにググった結果、今この記事を見ていることでしょう。(私は cuda 周りのライブラリをイジイジしていたらこのエラーに見舞われました。)
(挨拶おわり)
解決
このエラーメッセージは、日本語に直すとこの様になります (thanks for DeepL!)
libcublas-dev (10.1.0.105-1) をアンパック中 ...
dpkg: error processing archive /var/cache/apt/archives/libcublas-dev_10.1.0.105-1_amd64.deb (-unpack):
nvidia-cuda-dev 7.5.18-0ubuntu1 パッケージにもある '/usr/lib/x86_64-linux-gnu/stubs/libcublas.so' を上書きしようとしています。
dpkg-deb: エラー: サブプロセス paste がシグナルによって強制終了されました (Broken pipe)
要するに
- 「Devian パッケージ(
~.deb
)を展開(unpack)しようとしたら、既存の重要(そう)なファイルと衝突を起こしたから一旦止めるわ!」
と言っているわけです。勝手に要らんコトしないだけ、えらいえらい。
なので、trying to overwrite ‘ここにファイルパス’, which is also in package
のところに書いてあるファイルを確認して、要らなければ、--force-overwrite
で強制上書きすればよいです。
sudo dpkg -i --force-overwrite インストールしようとするパッケージのアーカイブ.deb
先程の例の場合、
dpkg: error processing archive /var/cache/apt/archives/libcublas-dev_10.1.0.105-1_amd64.deb
(–unpack):
trying to overwrite ‘/usr/lib/x86_64-linux-gnu/stubs/libcublas.so
’, which is also in package nvidia-cuda-dev 7.5.18-0ubuntu1
と書いてあるので
/usr/lib/x86_64-linux-gnu/stubs/libcublas.so
が必要かどうか確認した後に
sudo dpkg -i --force-overwrite /var/cache/apt/archives/libcublas-dev_10.1.0.105-1_amd64.deb
として、強制的に上書きすればよいです
ここでの、
- コマンド
dpkg
は Devian Package を扱うためのコマンドで - オプション
-i
は.deb
ファイルをインストールするためのコマンドです
dpkg
について詳しくは、ググれ
参考資料
この Qiita は実際に私が引いたエラーを解決するために
を読みつつ解決に至った Know-how を簡潔にまとめたものです