Xubuntuのインストール(ライブUSB)にCarpadioをインストールすると、Ubuntu側のリポジトリから50個を超えるパッケージのようにプルされました。これを元に戻したいと思います。しかし、私のすべての狩猟では、 Sudo apt get installコマンドを逆にする方法 より便利なものは見つかりません。これはapt-get purge
を示唆しています。 2つのパッケージ(carpadioとcarpadio-gnomepanel)を削除するだけなので、これは役に立ちません。
/var/log/apt/history.log
には、そのコマンドとともにインストールされたすべてのパッケージのリストがあります。 だから、それらすべてを削除する簡単な方法があるのだろうかと思っていました?それ以外の場合は、再インストールするだけです。これはとにかく新規インストールでしたが、興味があります。
履歴ログの小さなサンプル(リスト全体の1/5〜1/10)
コマンドライン:apt-get install cardapio-gnomepanel
インストール:libdbusmenu-qt2:AMD64(0.9.2-0ubuntu1、自動)、python-packagekit:AMD64(0.7.2-4ubuntu3、自動)、cups-pk-helper:AMD64(0.2.1.2-1ubuntu0 .1、自動)、geoclue:AMD64(0.12.0-1ubuntu12、自動)、統一:AMD64(5.18.0-0ubuntu1、自動)、インジケータープリンター:AMD64(0.1.6-0ubuntu1、自動)、libevolution:AMD64 (3.2.3-0ubuntu6、自動)、libqt4-declarative:AMD64(4.8.1-0ubuntu4.3、自動)、libmtp9:AMD64(1.1.3-1ubuntu0.1、自動)、tracker-miner-fs:AMD64( 0.14.0-2ubuntu1、自動)、gir1.2-rb-3.0:AMD64(2.96-0ubuntu4.2、自動)、python-aptdaemon.pkcompat:AMD64(0.43 + bzr805-0ubuntu7、自動)、gnome-media:AMD64 (3.4.0-0ubuntu3.1、自動)、metacity:AMD64(2.34.1-1ubuntu11、自動)、nautilus:AMD64(3.4.2-0ubuntu6、自動)、libcompizconfig0:AMD64(0.9.7.0〜bzr428-0ubuntu6、自動)、compiz-plugins-default:AMD64(0.9.7.12-0ubuntu1、自動)、libunistring0:AMD64(0.9.3-5、自動)、libebackend-1.2-1:AMD64(3.2.3-0ubuntu7、自動)、うんぶつ堂cs:AMD64(12.04.6、自動)、python-mako:AMD64(0.5.0-1、自動)、
autoremove
を提案したすべての人に:理由はわかりませんが、他に1つだけpython関連パッケージ(python-keybinderまたは何か)を「不要」として取得しました。削除できました。
インストールとアンインストールの間で、大きな変更のみがxubuntu-restricted-extras
のインストールでした。
基本的に、apt-get remove
(またはapt-get purge)パッケージとの両方を実行する必要がありますapt-get autoremove
その後、 package-one
のインストールを元に戻すには。
プロセス全体を見てみましょう。
Sudo apt-get install package-one
は、「自動」とマークされた50個の依存関係をインストールします。これは、質問のログの抜粋からもわかります
Sudo apt-get purge package-one
は1つだけ削除(パージ)しますが、doこれを実行します!
以下のすべてのインストールアクション(実行する場合)は、不要なパッケージを含む情報メッセージを生成します。
The following packages were automatically installed and are no longer required:
package-two package-three [...]
Use 'apt-get autoremove' to remove them.
このリストは基本的に、「自動」とマークされたすべてのパッケージのリストであり、逆の依存関係はありません。言い換えれば、パッケージ管理に関する限り、それらをインストールする理由はありません。
注:インストールは不要です! APTが不要なパッケージについてあなたに伝えるのが賢いことを示すためです!
Sudo apt-get autoremove --purge
これらを削除(パージ)
apt-get(8)
マンページのautoremove
に関する公式ドキュメント:
autoremove
は、他のパッケージの依存関係を満たすために自動的にインストールされ、現在は不要になったパッケージを削除するために使用されます。
その時点でインストールされているパッケージとその依存関係を削除する場合は、次を使用する必要があります。
Sudo apt-get purge package
Sudo apt-get --purge autoremove
ただし、apt
アクションを元に戻すには、apt-undo
スクリプトを使用できます。 Ubuntuで実行されたapt
アクションを元に戻すことができるシンプルなスクリプトです。このスクリプトは、apt-get
の代わりに使用してパッケージをインストール/アップグレード/削除/削除/パージ/ダウングレードする場合にのみ機能することに注意してください。
Ubuntuにapt-undo
をインストールするには、ターミナルで次のコマンドを実行します。
Sudo add-apt-repository ppa:lkjoel/apt-undo
Sudo apt-get update
Sudo apt-get install apt-undo
使用法:
apt-undo install yourpackages
apt-undo remove yourpackages
apt-undo purge yourpackages
apt-undo upgrade
apt-undo dist-upgrade
apt-undo install yourpackages=old.version
apt-undo install yourpackages=new.version
元に戻すには、上記のaptitude
アクションが端末で次のコマンドを実行します。
apt-undo undo
Unixの力を活用してください。持っているログファイルの行を取得し、aptが行ったことを取り消すコマンドを作成します。例えば:
$ echo 'Install: libdbusmenu-qt2:AMD64 (0.9.2-0ubuntu1, automatic), python-packagekit:AMD64 (0.7.2-4ubuntu3, automatic), cups-pk-helper:AMD64 (0.2.1.2-1ubuntu0.1, automatic),'|Perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //'
libdbusmenu-qt2:AMD64 python-packagekit:AMD64 cups-pk-helper:AMD64
したがって、ログファイルから適切な行を指定すると、誤ってインストールしたすべてのパッケージを削除できます。
$ dpkg -P $(echo '(full log line here)' | Perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //')
(Perl
の代わりにsed
を使用しました。これは、sed
が欲張りでない一致をサポートしないタイプの正規表現を使用しているためです。
1つのパッケージを削除した後、apt-get remove --purge <package>
を追加して--purgeを追加することで完全に削除できます。プルしたライブラリパッケージが自動的にインストールされ、不要になったというメッセージが表示されます。 apt-get autoremove
を実行して削除できます。
Sudo apt-get purge packagename
に従ってください
Sudo apt-get autoremove.
メタパッケージでない限り、これが面倒を見るはずです。
FAQ(手動で削除する方法allCardapioファイル? も参照してください。
インストール後に他のaptコマンドがなかった場合は、次のようなものも使用できます。
Sudo apt purge `cat /var/log/apt/history.log | tail -n 2 | tr ' ' '\n' | grep ':AMD64\|:i386' | tr '\n' ' '`
これにより、履歴から最後のaptコマンドがキャッチされ、ここにインストールされているすべてのパッケージが削除されます。
このコマンドを関数として〜/ .bashrcに配置すると、常に手元に置くことができます。
aptpurgelast () {
Sudo apt purge `cat /var/log/apt/history.log | tail -n 2 | tr ' ' '\n' | grep ':AMD64\|:i386' | tr '\n' ' '`
}
ここで、シェルでaptpurgelastと入力するだけで、最後のインストールをやり直すことができます。
new_file.txt
に貼り付けますPerl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt
を実行Sudo apt-get remove
[クリップボードの内容をここに貼り付け]を実行しますできた.
基本的に、aptログのパッケージのリストをapt-getが理解できる形式にフォーマットする必要があります。括弧、間にある単語、およびコンマは、Perlがプレイする場所です。はい、より良い(より効率的な)方法があります-しかし、私はこれを実行しました。理解しやすく、動作します。
技術的に「削除」または「自動削除」操作は、「元に戻す」ことはできませんが、ほとんどの場合、十分な仕事をすることができます。
デフォルトでは、-o APT::Suggests-Important=0 -o APT::Recommends-Important=0
を指定しない限り、apt-getはパッケージを残します
Apt history.log
を見て、インストールされているすべてのパッケージをアンインストールする方がより信頼性があります。プロセスを簡単にするために、小さなノードベースのスクリプトを作成しました。
https://github.com/rolfen/apt-history
また、変更を「ロールバック」するためのもう1つの、より手動のアプローチがあります。
かなり古い質問であることは知っていますが、助けを求めてここに来て、誰かを助けることができるかもしれません。 unity8-desktop-session-mir
をインストールした後、@ Karthik-Tのような状況になりました。私はそれが大きなものであることを知っています。彼は233パケットを引きました。
autoremove
を使用すると、そのうち34個しか削除されません。ポイントは、unity8-desktop-session-mir
のインストール中に、2つのパッケージ(python3-aptdaemon.pkcompat
とevolution-data-server-online-accounts
)を削除したことです。 /var/log/apt/history.log
のInstall
セクションの後に記載されています。
Unity 8のインストールを完全に取り消すために、次のものを発行しました。
Sudo apt-get purge unity8-desktop-session-mir
Sudo apt-get --purge autoremove
Sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts
(Unity 8に関連する8つのパッケージを削除しました)Sudo apt-get --purge autoremove
これは、以前にインストールしたすべてのものを完全に削除するわけではありませんが、場合によっては十分です。
PS:ステップ4で再度発行したように、おそらくステップ2のautoremove
は必要ありません。
PPAを追加したばかりで元に戻したい場合は、以下で説明する手順を実行する必要があります。アンインストールしたくない他のパッケージをインストールした場合、これは失敗する可能性があることを理解してください。これはスクリプトで実行できると確信しています。個人的には、これはaptの一部であり、依存関係のためにインストールされるパッケージと、ユーザーの要求によってインストールされるパッケージの管理を改善する必要があると思います。
1)/etc/apt/sources.listからppaを削除しますppaを追加した時間を覚えておいてください。運がよければ、正確である必要はありません。
2)PPAをインストールした瞬間から、再インストールするもののリストを作成します。cat /var/log/dpkg.log | grep 'アップグレード'
3)PPAをインストールした瞬間から削除するリストを作成します。cat /var/log/dpkg.log | grep 'install'
4)ステップ3からすべてのパッケージを削除します:Sudo apt-get remove {ステップ3からのパッケージのリスト}
5)ステップ2のすべてのパッケージを再インストールします:Sudo apt-get install --reinstall {ステップ2のパッケージのリスト}
6)問題が発生し、解決策が思いつかない場合は、PPAを戻し、2つのリストからすべてのパッケージを再インストールします。