Debian / Ubuntu apt-get回滚
来源:网络收集 点击: 时间:2024-04-21在选择解决方案之前了解问题
我远程管理一个Ubuntu 14.04.3 LTS服务器,其中一个这些廉价云,我会定期使用apt-get命令来安装软件包或进行升级。我想在我的系统上设置“行星金星”(灵活的饲料聚合器)软件。对于一些奇怪的原因,我跑了:
$ sudo apt-get -y --install-suggests install planet-venus
我应该停止安装。但是,那天我太累了,过度劳累了。结果是一场灾难。我用完了磁盘空间,并在系统上安装了1764个软件包。
我的apt-get安装也崩溃了。那是我犯错误的一天,忘了拍摄快照/备份。
2/6如何从命令行回滚apt-get升级?
运行以下命令找到相关的历史记录:
# grep -A 2 Start-Date: 2016-01-17 07:56:42 /var/log/apt/history.log
示例输出

回滚/撤销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.txt
wc -l /tmp/final.packages.txt
示例输出:
1764 /tmp/final.packages.txt
4/6删除包
现在,我有一个完整的列表,安装在这一天安装的所有软件包。
# less /tmp/final.packages.txt
libmaa3:amd64
ant:amd64
libmimic0:amd64
dc:amd64
libparse-yapp-perl:amd64
gir1.2-clutter-1.0:amd64
libjna-java:amd64
python-egenix-mxbeebase:amd64
libxkbcommon-x11-0:amd64
libmpeg2-4:amd64
libopencv-core2.4:amd64
libdvdread4:amd64
libhunspell-1.3-0:amd64
fonts-lobster:amd64
libtotem-plparser18:amd64
libodbcinstq4-1:amd64
jed-common:amd64
....
..
...
xfonts-cyrillic:amd64
postgresql:amd64
db5.3-util:amd64
libopencore-amrnb0:amd64
firebird2.5-examples:amd64
libboost-random1.54-dev:amd64
libtbb2:amd64
libwxgtk2.8-0:amd64
libc6-x32:amd64
magicfilter:amd64
5/6执行卸载的脚本
# Run as root
# Store packages name in $p
p=$(/tmp/final.packages.txt)
# Nuke it
apt-get --purge remove $p
#clears out the local repository of retrieved package files
apt-get clean
# Just in case ...
apt-get autoremove
# Verify disk space
df -H
6/6结论
1. 在服务器上做主要操作之前,最好先进行备份。
2. 三思而后行
3. 永远不要盲目地信任apt-get或任何具有-y选项的命令。
4. 始终制作快照。不幸的是,这个盒子还是使用ext4。没有选择将此文件系统设置为该云服务器提供商的BTRFS / ZFS(ZFS上的Linux)。所以现在我被ext4困住了。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_557684.html