apt-get を使用してパッケージとインストールされた依存関係を削除します。

apt-get を使用してパッケージとインストールされた依存関係を削除します。

だからパッケージをインストールしました。

apt-get install mypackage

apt-getは依存関係のあるパッケージをインストールし、私のディスクに10MBがインストールされていることを報告します。

しかし、心が変わって去りました。

apt-get remove mypackage

apt-getは166KBを確保すると発表しました。

残りの食べ物をディスクに捨てたくないので試してみました。

apt-get autoremove mypackage

今apt-getは私のディスクから166MBを削除しようとしています。

最後のインストールタスクをキャンセルするにはどうすればよいですか?または単一のパッケージのみを削除してくださいみんな依存関係?

別のパッケージ管理ツール(他のディストリビューションでも)を使用できますか。

答え1

APTはパッケージの変更をトランザクションとして管理しないため、パッケージのインストール(または他のパッケージ操作)を元に戻す組み込みタスクはありません。ただし、実行するすべての操作をエンドユーザー要求ごとにグループ化して記録します。を見ると、インストールと共に自動的にインストールされている他のすべてのパッケージのリストと一緒にインストールが/var/log/apt/history.log見つかります。mypackageこれを使用してインストールを手動でキャンセルできます。

aptitude一般的なパッケージ管理にも使用できます。autoremove実際には基本的に動作します。しかし今はapt autoremove

指摘したとおり周ウェイジュ、特定の状況で元に戻すことができる単位でパッケージの変更を管理しますyum。履歴に保存されている取引が一覧表示され、履歴をロールバックしたり、特定の取引をキャンセルしたりできます(可能な場合)。代わりに、DebianベースのシステムでAPTを正しく使用できるかどうかはわかりません。すべてのパッケージ管理でこれらのツールを使用するには、Fedora、RHEL、またはCentOSに切り替える必要があります。dnfdnf historydnf history rollbackdnf history undoyumdnf

答え2

ちなみに:

インストール操作を「元に戻す」最も信頼できる方法は、aptログを見て、このタスクでインストールされているすべてのパッケージを削除することです。

だから私は私の問題を解決してください。適切なログと回復操作を解析するのに役立ちます。

これが私が使用する方法です:

最新のaptタスクのリスト:

apt-history 
96 /usr/bin/unattended-upgrade
97 apt-get install adb
98 apt-get dist-upgrade
99 /usr/bin/unattended-upgrade
100 apt-get install qemu-system

タスク#100(最後のパッケージ)としてインストールされているすべてのパッケージの詳細を表示する

sudo apt-history 100 Install
seabios:amd64 (1.10.2-1, automatic), ipxe-qemu:amd64 (1.0.0+git-20161027.b991c67-1, automatic), qemu-system-mips:amd64 (1:2.8+dfsg-6+deb9u3, automatic), openbios-sparc:amd64 (1.1.git20161120-2, automatic), qemu-system-misc:amd64 (1:2.8+dfsg-6+deb9u3, automatic), qemu-system-ppc:amd64 (1:2.8+dfsg-6+deb9u3, automatic), libvdeplug2:amd64 (2.3.2+r586-2.1, automatic), qemu-system-x86:amd64 (1:2.8+dfsg-6+deb9u3, automatic), openhackware:amd64 (0.4.1+git-20140423.c559da7c-4, automatic), libspice-server1:amd64 (0.12.8-2.1+deb9u1, automatic), libxenstore3.0:amd64 (4.8.3+xsa262+shim4.10.0+comet3-1+deb9u6, automatic), qemu-utils:amd64 (1:2.8+dfsg-6+deb9u3, automatic), qemu-efi:amd64 (0~20161202.7bbe0b3e-1, automatic), qemu-system-sparc:amd64 (1:2.8+dfsg-6+deb9u3, automatic), libxen-4.8:amd64 (4.8.3+xsa262+shim4.10.0+comet3-1+deb9u6, automatic), libfdt1:amd64 (1.4.2-1, automatic), qemu-slof:amd64 (20161019+dfsg-1, automatic), qemu-system-arm:amd64 (1:2.8+dfsg-6+deb9u3, automatic), qemu-system-common:amd64 (1:2.8+dfsg-6+deb9u3, automatic), openbios-ppc:amd64 (1.1.git20161120-2, automatic), qemu-system:amd64 (1:2.8+dfsg-6+deb9u3)

これらのパッケージとその構成を削除します。

sudo apt-get remove --purge `apt-history 100 Install --as-apt-arguments`

警告:安全のために、最後のインストールコマンドに対してのみこれを実行し、一度に1つのコマンドをロールバックしてください。

答え3

Stephenの答えからインスピレーションを受けて

UNINSTALL_THIS=cockpit
cat /var/log/apt/history.log | grep -Po "Install: \K.*$UNINSTALL_THIS.*" | sed -E 's/:[^\)]*\),*//g'

cockpit使用のために削除するパッケージのコピー - 貼り付けリストを印刷します。sudo apt remove <paste>

grep コマンドの手順については、次を参照してください。grep -Po '...\K...'は何をしますか?そのような効果を得る他の方法はありますか?

関連情報