読者です 読者をやめる 読者になる 読者になる

This is a Pen

プログラミングとITと日記

linuxのパッケージ破損した時のメモ

linuxでパッケージをいろいろいじったり、手動でインストールとアンインストール。
ネット上のコマンドやらをコピペでterminalに貼り付けてパッケージが破損したときのメモです。

環境

事象

  • apt-get update を実行した際にエラーがでる
  • synapticを起動した際にパッケージ破損エラーがでる
  • パッケージ間の依存性がおかしくなって、対象のパッケージが削除removeができない

最初にやること

① 壊れているパッケージを特定する

そもそもどれがダメなのかを探す。
やみくもにググっても意味がなく、まず自分で問題を見つけること。

synaptic package managerを入れているとひと目で破損パッケージがわかります。


② パッケージの削除、再インストールを試みる

複数または1つの場合でも、対象のパッケージを削除、もしくわ再インストールしてみましょう。

$ sudo dpkg -r <<パッケージ名>>
とか
$ sudo apt-get remove <<パッケージ名>>
$ sudo apt-get autoremove
とか

ここでsudo apt-get -f installって実行を促すようなパターンは
apt-get -f install をしてください。

※これで治らなかったら③へ


aptitudeで修正する
$ sudo aptitude install <<パッケージ名>>

上記を実行すると下記のようなものが出る。

     以下のパッケージを削除する:           
1)     <<依存関係のあるパッケージ名>>
2)     <<依存関係のあるパッケージ名>>
3)     <<依存関係のあるパッケージ名>>             
4)     <<依存関係のあるパッケージ名>>                          
5)     <<依存関係のあるパッケージ名>>              


この解決方法を受け入れますか? [Y/n/q/?] y
以下のパッケージは『削除』されます:

上記にあるように、
aptitudeは対象パッケージに関係のあるパッケージのまとめ処理を実行するものです。 さらに、正しく動かないパッケージの対処法を提示してくれます。

【コマンドについて】
y ・・・ 提示された対処法を実行
n ・・・ 次の対処法を提示
q ・・・ やめる

ここでnを入力すると次の対処法を提示するのがポイント。
むしろ俺はyとqを入力していたため気づかなかった。

提示された削除、再インストールが完了したならばはれて破損パッケージとおさらばです。


そもそもaptitudeapt-getは何が違うの?

大項目として、2つともパッケージ(アプリケーション)マネージャーです。

パッケージマネージャー名 インストール時 アンインストール時
apt-get 関係のある推奨パッケージを表示する 関係のあるパッケージは削除されない。ただしapt-get autoremoveで削除される
aptitude 関係のある推奨パッケージを自動インストールする 関係のあるパッケージも削除される


まとめ

なんでもぶっこんでいいもんじゃない。
ネットで見たソースや、コマンドを思考停止でコピペするのは カンニングと一緒。

限度と節度を持って。

Related Posts Plugin for WordPress, Blogger...