昨日、元々使用していたImagemagickをインストールしようとしましたが、apt-get
エラーが発生しました。何時間もImageMagickをインストールしようとしたので、辛抱強くなりました。 stackoverflowに関する記事によるapt-get
と、うまくいかないとaptitude
.soを試すことができると言いました。それ以来、すべてが崩れ始めました。 Aptitude は複数のモジュールの削除を開始します。私はそれがプロセスの一部だと思います。だから今:
- apache2が起動しませんでした
- nginxが実行されていないため、pleskを実行できません。
- pleskも機能しなくなったため、私のメールサーバーは機能しなくなりました。
これをロールバックする方法はありますか?これからこのようなことを避ける方法はありますか?私は適性がapt-getと同じように振る舞うと思います。
答え1
どちらもapt-get
基本コマンド(Debianパッケージシステム)aptitude
のための便利なフロントエンドです。dpkg
依存関係、競合の解決、およびパッケージのダウンロードなどの操作を(事前に)処理し、ダウンロードしたdpkg
* .debファイルをインストールしたり、パッケージとその依存関係を削除したり、自動的に設定(構成解除)したり、明示的な指示とともに呼び出されます。別のタスクを実行します...
aptitude
特定のパッケージを強制的にインストールする必要があるかもしれません。競合解決が開始され、競合するパッケージを完全に削除し、他のパッケージを破損します。おそらく、依存関係の解決では、特定の依存関係が特定のバージョンまたはアーキテクチャにインストールされなければならず、これらの依存関係はすでにインストールされている依存関係と共存できないことがわかりました。一部のものは単に動作しませんが、強制インストールを要求したので…まあ、欲しいものを手に入れました。
ここでは、パッケージの履歴とシステムの状態に関する有用な情報を見つけることができます。このファイルを読むにはless <log-file>
(または)を使用してください。zless <compressed-log-file>
- ここでは、要求/コマンドに提案された
/var/log/apt/history.log*
コマンド履歴とソリューションを表示できます。apt-get
- ここで
/var/log/apt/term.log*
その要求/コマンドの出力を見ることができます。 - そこから
/var/log/aptitude*
いくつかの能力活動を見ることができます。 - ここでは、
/var/log/dpkg.log*
個々のパッケージステータスバイスで何が起こっているのかを確認できます。
dpkg -l
以前にインストールされたパッケージ(「削除済み」パッケージなど)の状態を含む、システム内のすべてのパッケージがその状態とともに一覧表示されます。リストのタイトル(またはman dpkg
)は、最初の列の文字が何を意味するのかを示します。最初の文字は、/apt-get/aptitude 要求されたパッケージの状態を示します。 2 番目の文字はパッケージの現在の状態を示します。 3番目の文字がある場合は、R
パッケージを再インストールする必要があります。dpkg -l | grep -v "^ii"
「要件に応じて現在インストールされている」パッケージを除いて、同じパッケージが一覧表示されます。これは、「削除済み」、「半構成」、または「半インストール」パッケージの範囲を狭めるのに役立ちます。コマンドパイプラインの1つに追加すると、| less
出力をスクロールできます。
今やりたいことは、どのパッケージが削除されたのか、その理由は何かを調べることです。 「なぜ」部分はおおよそ上記のようなものであり、簡単に解決することはできません。したがって、最初にimagemagickを削除/クリーンアップすることができます(実行してから続行するapt-get remove <the-offending-package>
か、不要になっapt-get autoremove
たapt-get remove <other-packages>
依存関係を削除します。--purge
設定ファイルも削除する場合は、両方のコマンドに注意して追加します)。
その後、不足しているパッケージを再インストールできます。あるいは、関心のある主要な破損したパッケージを強制的に再インストールし、apt-get / aptitudeに通常のように古い依存関係を自動的にインストールさせることもできます。これにより、マイナーなlib *依存関係が「手動インストール」と表示されないため、必要に応じて将来の自動削除が防止されます。
パッケージを再インストールするには:必要に応じてパッケージの明示的な再抽出にオプションでapt-get install <package>
追加します。--reinstall
また、そのオプションを表示して調べることもできますman apt-get
。man aptitude
頑張ってください!