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を入力していたため気づかなかった。
提示された削除、再インストールが完了したならばはれて破損パッケージとおさらばです。
そもそもaptitude
とapt-get
は何が違うの?
大項目として、2つともパッケージ(アプリケーション)マネージャーです。
パッケージマネージャー名 | インストール時 | アンインストール時 |
---|---|---|
apt-get | 関係のある推奨パッケージを表示する | 関係のあるパッケージは削除されない。ただしapt-get autoremove で削除される |
aptitude | 関係のある推奨パッケージを自動インストールする | 関係のあるパッケージも削除される |
まとめ
なんでもぶっこんでいいもんじゃない。
ネットで見たソースや、コマンドを思考停止でコピペするのは
カンニングと一緒。
限度と節度を持って。