Debian / Ubuntu apt-get回滚

2025-03-20 20:36:59

1、在选择解决方案之前了解问题我远程管理一个Ubuntu 14.04.3 LTS服务器,其中一个这些廉价云,我会定期使用apt-get命令来安装软件包或进行升级。我想在我的系统上设置“行星金星”(灵活的饲料聚合器)软件。对于一些奇怪的原因,我跑了:$ sudo apt-get -y --install-suggests install planet-venus我应该停止安装。但是,那天我太累了,过度劳累了。结果是一场灾难。我用完了磁盘空间,并在系统上安装了1764个软件包。我的apt-get安装也崩溃了。那是我犯错误的一天,忘了拍摄快照/备份。

2、如何从命令行回滚apt-get升级?运行以下命令找到相关的历史记录:# grep -A 2 'Start-Date: 2016-01-17 07:56:42' /var/log/apt/history.log示例输出

Debian / Ubuntu apt-get回滚

3、回滚/撤销apt-get install命令创建列表:grep -A 2 'Start-Date:2016-01-17 07:56:42' / var / log / apt / history.log | tail -1 > / tmp / packages.txt编辑/tmp/packages.txt文件并删除Install:word:vi / tmp / packages.txt要么sed -i 's/Install://' /tmp/packages.txt最后,我需要清理几件事情:tr ',' '\n' < /tmp/packages.txt | sed '/automatic)/d' | awk '{ print $1}' > /tmp/final.packages.txtwc -l /tmp/final.packages.txt示例输出:1764 /tmp/final.packages.txt

4、删除包现在,我有一个完整的列表,安装在这一天安装的所有软件包。# less /tmp/final.packages.txtlibmaa3:amd64ant:amd64libmimic0:amd64dc:amd64libparse-yapp-perl:amd64gir1.2-clutter-1.0:amd64libjna-java:amd64python-egenix-mxbeebase:amd64libxkbcommon-x11-0:amd64libmpeg2-4:amd64libopencv-core2.4:amd64libdvdread4:amd64libhunspell-1.3-0:amd64fonts-lobster:amd64libtotem-plparser18:amd64libodbcinstq4-1:amd64jed-common:amd64.........xfonts-cyrillic:amd64postgresql:amd64db5.3-util:amd64libopencore-amrnb0:amd64firebird2.5-examples:amd64libboost-random1.54-dev:amd64libtbb2:amd64libwxgtk2.8-0:amd64libc6-x32:amd64magicfilter:amd64

5、执行卸载的脚本# Run as root# Store packages name in $pp="$(</tmp/final.packages.txt)"# Nuke itapt-get --purge remove $p#clears out the local repository of retrieved package filesapt-get clean# Just in case ...apt-get autoremove# Verify disk spacedf -H

6、结论 1. 在服务器上做主要操作之前,最好先进行备份。 2. 三思而后行 3. 永远不要盲目地信任apt-get或任何具有-y选项的命令。 4. 始终制作快照。不幸的是,这个盒子还是使用ext4。没有选择将此文件系统设置为该云服务器提供商的BTRFS / ZFS(ZFS上的Linux)。所以现在我被ext4困住了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢