バックグラウンドで実行されているdpkgプロセスを誤って終了しました。すべてが正常であることを確認するために、すべてのパッケージを再インストールしたいと思います。
まず、すべてのパッケージのリストを取得して再インストールしようとしました
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log
apt-get install --reinstall $(cat list.log)
しかし、次のようなメッセージがあります。
E: Couldn't configure pre-depend debconf:i386 for console-setup:i386, probably a dependency cycle.
私は試した apt-get -f install
、成功せず。
最後の手段として、チェックサムに失敗したすべてのプログラムを再インストールしました。
dpkg -l | grep ^ii | awk '{ print $2 }' | xargs debsums -s -a
すべてを再インストールするにはどうすればよいですか?
編集:問題が解決しました。問題は別の問題でした(コメントを参照)。私はそれがDebianでは避けるべきことだと理解しています。
私がそれをテストしたことを思い出して、これを試してください:
dpkg --get-selections > selections
Sudo dpkg --clear-selections
Sudo dpkg --set-selections < selections
Sudo apt-get --reinstall dselect-upgrade
出典:
念のため、再インストールしてみてください各パッケージ:
for i in $(cat list.log); do apt-get install --reinstall "$i"; done
すべての質問オプションに「はい」と答えることもできます。
Lucas Malorによって引用された リソースの1つ で、解決策に近いように見えるpopulatorと呼ばれるスクリプトを見つけました。パッケージ選択変数をすべてのパッケージのリストに設定した場合
PKGLIST=$(dpkg --get-selections | grep -v deinstall| cut -f1)
その後、スクリプトを実行してすべてのパッケージを再インストールできますが、システムに問題がある可能性があります。最初に仮想マシンでテストすることをお勧めします。
上記のリンクからのスクリプトの変形は次のとおりです。
#!/bin/bash
#
# Script to pre-populate apt-get proxy for faster later downloads.
# It uses apt-get and wget to pull all the specified packages.
#
# Make sure only root can run our script
if [[ $EUID -ne 0 ]]; then
echo "You're not root, are you?" 1>&2
exit 1
fi
# Specify wanted packages
PKGLIST="exaile"
# Clears out the local repository of retrieved package files
apt-get clean
# Resynchronize the package index files from their sources
apt-get update
# Re-install specified packages at the newest version.
apt-get install --reinstall $PKGLIST
特定のパッケージを再インストールできないというエラーが表示された場合は、次のコマンドを実行して再試行してください。
Sudo apt-get -y autoremove
出力を受け取り、ファイル名をスペースで区切った巨大な1行にするので、代わりにこれを試してください。
dpkg --get-selections | grep -v deinstall | awk '{print $1}' > list.log awk '$1=$1' ORS=' ' list.log > newlist.log apt-get install --reinstall $(cat newlist.log)
元の投稿に対する唯一の変更は、2番目のawkステートメントを追加することです。これは、おそらく最初のインラインとインラインで実行して、必要なファイルを作成することができます。
この変更により、apt-getは最初にインストールされなかったパッケージと不足している依存関係を正しく再ダウンロードし、それらを順番に再インストールします。
インラインにすると、次のようになると思います。
_dpkg --get-selections | grep -v deinstall | awk '{print $1}' | awk '$1=$1' ORS=' ' > list.log
_
そして、システムに正しいパッケージ(または最新)が本当に含まれていることを確認し、aptキャッシュをクリーンアップして更新し、すべてのファイルを再ダウンロードします(キャッシュにあるものだけが必要な場合は、最初の2つのステップをスキップできます)再インストール):
apt-get clean && apt-get update && apt-get install --reinstall $(cat list.log)
ハングアップしたアップグレードしたシステムに2k以上のパッケージをインストールしました。 dpkg --configure -aを使用すると、インストールが完了しました(最終フェーズでした)。次にこれを実行して、すべてが正しく再インストールされるようにしました。
または https://superuser.com/questions/298912/reinstall-debian-while-keeping-installed-packages-and-data :
Sudo apt-get install --reinstall $(dpkg --get-selections | grep -w 'install$' | cut -f1)
Xの一部のコンポーネントまたはお気に入りのウィンドウマネージャーが再インストールされたくない場合があるため、再インストールの前に必ず「init 2」を実行してください。
Aptitudeを使用する場合、それを行うための簡単かつ迅速な方法があります。
Sudo aptitude reinstall '~i'
現在インストールされているすべてのパッケージを再インストールします。
apt
を使用してこれを行うのは非常に簡単です。
_apt list --installed | cut --delimiter=/ --fields=1 | xargs apt reinstall -y
_
_apt list --installed
_部分は、推測したとおりのことを行います。 _|
_文字は、apt
コマンドの標準出力をcut
コマンドの標準入力にパイプします。 _cut --delimiter=/
_部分は、cut
コマンドに_/
_を区切り文字として使用するように指示し、_--fields=1
_はcut
に最初のフィールドを使用するように指示します。つまり、 _/
_コマンドの出力に表示される最初の_apt list --installed
_の前のテキスト。この場合、cut
コマンドの結果は、_apt list --installed
_コマンドから不要な追加情報をすべて除いた、インストールされたすべてのパッケージのリストです。
次の_|
_は、cut
コマンドの標準出力(インストールされたすべてのパッケージのリスト)をxargs
コマンドの標準入力にパイプし、次に_apt reinstall -y
_現在インストールされているパッケージごとに。
注:apt構成によっては、_apt reinstall -y
_の部分で、現在インストールされている正確なバージョンではなく、既存のパッケージの更新がインストールされる場合があります。