信頼できないソースからのパッケージを削除して再インストールする

信頼できないソースからのパッケージを削除して再インストールする

最近 Kali Linux をインストールしましたが、ミラー選択が柔軟ではないため、すべての deb パッケージが信頼できないミラーからダウンロードされます。sources.list が新しいミラーを使用するように更新されていると仮定して、apt / dselect にすべてのパッケージを再ダウンロードして再インストールするように指示することは可能ですか?

答え1

アレックスが指摘したように:

sudo apt-get clean
sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f 1)

1 つ目は、apt のキャッシュが空であることを確認します。これにより、apt-get はリポジトリからパッケージをダウンロードする必要があります。2 つ目は、まず、インストールされているすべてのパッケージのリストが必要であり、これが部分で$(...)実行されていることであり、次に apt-get を使用してそれらを再インストールします。aptitude には別の方法があります。

sudo aptitude --reinstall install '~i'

~i「インストールされたパッケージ」の検索。

どちらの方法でも、自動的にインストールされたパッケージは存在せずに終了するため、apt-mark showauto > packagesこれを行う前に を使用して、sudo apt-mark auto $(cat packages)リストを再確立する必要があります。

答え2

ここでの回答は問題を解決するのに役立ちました。この解決策はおそらく最も効率的ではありませんが、目的は達成できます。

#!/bin/bash
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get install --reinstall $package;
done

答え3

私はこのスクリプトを使用しており、時々 Y(es) を入力するよう求められ、スクリプトは続行されました。しかし、かなり時間がかかるため、完了するまでの時間がかなり長くなります。スクリプトを変更し、--yes force-yes 自動 def/old config の受け入れを強制することを推奨するを挿入しました。

#!/bin/bash 
for package in `dpkg --get-selections | grep -w 'install$' | cut -f 1`; do
    apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --reinstall $package
done

関連情報