
apt install '*'
クラッシュ(たとえば、複数のバージョンのエディタ)のために何もインストールされていませんが、誤って実行されていましたが、インストールされたvim
すべてのパッケージが「自動」属性を失いました。つまり、APT の自動依存性チェックを楽しむことはできません。つまり、を削除すると、vim
aptは削除するように求めるメッセージを表示しなくなりますvim-runtime
。高度なパッケージングツールの単純なバージョンを使用しているためapt-mark
使用できません。automatic
扶養家族の人の財産をどのように回復しますか。
注:apt
、、、apt-get
およびapt-cache
利用可能apt-config
ですapt-key
。
答え1
Debianおよびその派生製品では、手動インストールとサイレントインストールに関する情報がに保存されます/var/lib/apt/extended_states
。自動バックアップやログはありません。ファイルのバックアップがある場合は復元してください。
バックアップがない場合は、最初にバックアップを作成してください。次に、各パッケージに対して手動インストール用のパッケージを表示するようにAuto-Installed: 0
行を変更します。Auto-Installed: 1
APT自体はインストールされたパッケージの依存関係を追跡しません。これはdpkgによって行われます。この情報は/var/lib/dpkg/status
Debian にあります。 Aptitudeには依存関係に対して機能できる高度な検索機能がありますが、aptにはありません。一時的な解析を実行できます/var/lib/dpkg/status
。次のスクリプト(最小テストを含む)は、インストールされている一部のパッケージが依存するパッケージのリストを生成します。
</var/lib/dpkg/status awk '
/^Package:/ {package=$2}
/^Status:/ && $4 != "installed" {package=""}
/^(Depends|Pre-Depends|Recommends|Suggests):/ && package != "" {
sub(/^[^:]*: */, "");
gsub(/ (\([^()]*\))/, "");
split($0, dependencies, /[|, ]+/);
for (d in dependencies) print dependencies[d]}
' | sort -u >dependencies.txt
リストを見て、依存関係のあるパッケージラインを削除することもできますが、とにかくそれを維持したいと思います。次にそれを使って調整します/var/lib/apt/extended_states
。
</var/lib/apt/extended_states awk '
BEGIN {
while (getline <"dependencies.txt") auto[$0]=1;
RS="";
}
$2 in auto {sub(/\nAuto-Installed: 0/, "\nAuto-Installed: 1")}
{print $0 "\n"}
' >extended_states.new
出力ファイルを確認して満足したら、適切な場所に移動します。