だからパッケージをインストールしました。
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に切り替える必要があります。dnf
dnf history
dnf history rollback
dnf history undo
yum
dnf
答え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...'は何をしますか?そのような効果を得る他の方法はありますか?