web-dev-qa-db-ja.com

削除された多くのパッケージを一度に再インストールする方法は?

Sudo apt-get remove pythonコマンドを使用して、必要な多数のパッケージを誤って削除しました。コマンドライン経由でログインし、ubuntu-desktopを再度インストールしましたが、他にも不足しているパッケージがあり、削除したパッケージを簡単に再インストールする方法を探しています。ソフトウェアセンターにログがあるので、変更をロールバックするか、削除されたパッケージリストをソフトウェアセンターから抽出するのが最も簡単な方法を尋ねたいと思いました...

注:削除されたプログラムのうち約20個についてSudo apt-get install .... .... ... ...と入力しましたが、Enterキーを押しても一部のパッケージ名が見つからなかったためインストールしませんでした。

プログラムは同じ日に削除されました。

8
Logan

まず、pythonを削除すると、多くの基本的なコマンドが機能しなくなる可能性があると言えます。だから私は、次のことがうまくいくかどうかわからない。

第二に、package names couldn't be foundエラーは、コマンドラインの名前のつづりが間違っているか、ローカルにインストールされていてリポジトリでは利用できないパッケージに由来すると考えられます。

次に、使用可能な最後のdpkgログと比較して、削除されたパッケージのログを取得するには(古いログを考慮する必要はないと思います):

awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log | tee list

次に、現在のディレクトリに作成されたlistファイルを編集し、行のタイムスタンプに基づいて、再インストールするパッケージに関連する行のみを残します。変更したファイルをlist-modに保存するとします。

そのパッケージを再インストールするには、次のコマンドを使用します。

Sudo apt-get --simulate install $(awk '{ print $3 }' list-mod)

--simulateオプションを挿入して、コマンドの動作を確認しました。すべて問題なければ、そのオプションを削除してコマンドを再度実行します。

コマンドで一部のパッケージが見つからないと言われた場合は、単にそれらをlist-modから削除して再試行してください。

16
enzotib

そのため、私は同様の間違いをします:Sudo apt-get purge python3.6*の代わりにSudo apt-get purge python3.6.*

次の手順で、非常に高速に修正できました。

  1. ログvim /var/log/history.logを開きました。
  2. Vimコマンド/python3.6\*を使用して、悪いコマンドを検索しました。
  3. Purge: unity-control-center-signon:AMD64 (0.1.7~+14.04.20140211.2-0ubuntu4), ...行があり、パージされたパッケージの長いリスト(削除の場合はRemove:で始まります)があり、Purge:部分なしで別のファイルにコピーしました。 。
  4. そのファイルでvimコマンド%s/:[^,]*,//gを実行しました。これはバージョン部分を削除し、パッケージのリストunity-control-center-signon lxc ...を残しました。
  5. 最後に、前のステップから行をコピーして実行しました:Sudo apt-get install unity-control-center-signon lxc ...、それが修正された方法です。
1
Nikita