我今天必须在Debian系统上执行此操作。首先,我确定了有问题的升级发生的时间范围,并检索了给出升级包的新旧版本号的日志条目:

$ awk '$1=="2016-03-20" && $3=="upgrade"' /var/log/dpkg.log

2016-03-20 16:58:22 upgrade libwebkitgtk-3.0-0:amd64 2.4.9-3 2.4.10-1

2016-03-20 16:58:24 upgrade libjavascriptcoregtk-3.0-0:amd64 2.4.9-3 2.4.10-1

2016-03-20 16:58:26 upgrade traceroute:amd64 1:2.0.22-1 1:2.1.0-1

2016-03-20 16:58:33 upgrade ethtool:amd64 1:4.2-1 1:4.5-1

2016-03-20 16:58:34 upgrade libsdl1.2debian:amd64 1.2.15+dfsg1-3 1.2.15+dfsg1-4

2016-03-20 16:58:34 upgrade subversion:amd64 1.9.3-2+b1 1.9.3-3

2016-03-20 16:58:36 upgrade libsvn1:amd64 1.9.3-2+b1 1.9.3-3

2016-03-20 16:58:56 upgrade linux-image-amd64:amd64 4.3+70 4.4+71

2016-03-20 16:58:56 upgrade linux-libc-dev:amd64 4.3.5-1 4.4.6-1

2016-03-20 16:59:03 upgrade amd64-microcode:amd64 2.20141028.1 2.20160316.1

接下来,我尝试在磁盘上找到仍在缓存的软件包文件(幸运的是,我没有运行autoclean):

$ awk '$1=="2016-03-20" && $3=="upgrade" {gsub(/:/, "%3a", $5); split($4, f, ":"); print "/var/cache/apt/archives/" f[1] "_" $5 "_" f[2] ".deb"}' /var/log/dpkg.log | xargs -r ls -ld

ls: cannot access '/var/cache/apt/archives/ethtool_1%3a4.2-1_amd64.deb': No such file or directory

-rw-r--r-- 1 root root 28820 Dec 18 2014 /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb

-rw-r--r-- 1 root root 1978874 Dec 10 18:22 /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb

-rw-r--r-- 1 root root 185006 Mar 12 00:41 /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb

-rw-r--r-- 1 root root 1317644 Mar 3 11:30 /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb

-rw-r--r-- 1 root root 7679400 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb

-rw-r--r-- 1 root root 6108 Dec 14 06:59 /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb

-rw-r--r-- 1 root root 1075506 Feb 7 21:36 /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb

-rw-r--r-- 1 root root 983174 Mar 3 11:30 /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb

-rw-r--r-- 1 root root 53376 Feb 28 18:35 /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb

出于某种原因,我似乎没有较旧的ethtool软件包。尽管如此,让我们继续通过强制安装较早的软件包文件来进行操作:

$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb

dpkg: warning: downgrading amd64-microcode from 2.20160316.1 to 2.20141028.1

(Reading database ... 139632 files and directories currently installed.)

Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...

Unpacking amd64-microcode (2.20141028.1) over (2.20160316.1) ...

dpkg: warning: downgrading libjavascriptcoregtk-3.0-0:amd64 from 2.4.10-1 to 2.4.9-3

Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...

Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.10-1) ...

dpkg: warning: downgrading libsdl1.2debian:amd64 from 1.2.15+dfsg1-4 to 1.2.15+dfsg1-3

Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...

Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-4) ...

dpkg: warning: downgrading libsvn1:amd64 from 1.9.3-3 to 1.9.3-2+b1

Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...

Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-3) ...

Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...

Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...

dpkg: warning: downgrading linux-image-amd64 from 4.4+71 to 4.3+70

Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...

Unpacking linux-image-amd64 (4.3+70) over (4.4+71) ...

dpkg: warning: downgrading linux-libc-dev:amd64 from 4.4.6-1 to 4.3.5-1

Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...

Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.4.6-1) ...

dpkg: warning: downgrading subversion from 1.9.3-3 to 1.9.3-2+b1

Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...

Unpacking subversion (1.9.3-2+b1) over (1.9.3-3) ...

dpkg: warning: downgrading traceroute from 1:2.1.0-1 to 1:2.0.22-1

Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...

Unpacking traceroute (1:2.0.22-1) over (1:2.1.0-1) ...

Setting up amd64-microcode (2.20141028.1) ...

update-initramfs: deferring update (trigger activated)

amd64-microcode: microcode will be updated at next boot

Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...

Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...

Setting up libsvn1:amd64 (1.9.3-2+b1) ...

dpkg: dependency problems prevent configuration of libwebkitgtk-3.0-0:amd64:

libwebkitgtk-3.0-0:amd64 depends on libwebkitgtk-3.0-common (>= 2.4.9); however:

Package libwebkitgtk-3.0-common is not installed.

dpkg: error processing package libwebkitgtk-3.0-0:amd64 (--install):

dependency problems - leaving unconfigured

Setting up linux-image-amd64 (4.3+70) ...

Setting up linux-libc-dev:amd64 (4.3.5-1) ...

Setting up subversion (1.9.3-2+b1) ...

Setting up traceroute (1:2.0.22-1) ...

update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode

update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode

update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode

update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode

Processing triggers for libc-bin (2.22-3) ...

Processing triggers for man-db (2.7.5-1) ...

Processing triggers for initramfs-tools (0.123) ...

update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64

Errors were encountered while processing:

libwebkitgtk-3.0-0:amd64

如错误消息所述,我的一个软件包在升级之前就依赖于-common软件包,但是升级将其删除(并且apt-get找不到了)。幸运的是,它的软件包文件仍在/ var / cache / apt中,因此我可以将其添加到列表中,然后重试:

$ ls -ld /var/cache/apt/archives/libwebkitgtk-3.0-common*

-rw-r--r-- 1 root root 452278 Dec 10 18:22 /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb

$ sudo dpkg -i /var/cache/apt/archives/amd64-microcode_2.20141028.1_amd64.deb /var/cache/apt/archives/libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb /var/cache/apt/archives/libsvn1_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-0_2.4.9-3_amd64.deb /var/cache/apt/archives/linux-image-amd64_4.3+70_amd64.deb /var/cache/apt/archives/linux-libc-dev_4.3.5-1_amd64.deb /var/cache/apt/archives/subversion_1.9.3-2+b1_amd64.deb /var/cache/apt/archives/traceroute_1%3a2.0.22-1_amd64.deb /var/cache/apt/archives/libwebkitgtk-3.0-common_2.4.9-3_all.deb

(Reading database ... 139632 files and directories currently installed.)

Preparing to unpack .../amd64-microcode_2.20141028.1_amd64.deb ...

Unpacking amd64-microcode (2.20141028.1) over (2.20141028.1) ...

Preparing to unpack .../libjavascriptcoregtk-3.0-0_2.4.9-3_amd64.deb ...

Unpacking libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...

Preparing to unpack .../libsdl1.2debian_1.2.15+dfsg1-3_amd64.deb ...

Unpacking libsdl1.2debian:amd64 (1.2.15+dfsg1-3) over (1.2.15+dfsg1-3) ...

Preparing to unpack .../libsvn1_1.9.3-2+b1_amd64.deb ...

Unpacking libsvn1:amd64 (1.9.3-2+b1) over (1.9.3-2+b1) ...

Preparing to unpack .../libwebkitgtk-3.0-0_2.4.9-3_amd64.deb ...

Unpacking libwebkitgtk-3.0-0:amd64 (2.4.9-3) over (2.4.9-3) ...

Preparing to unpack .../linux-image-amd64_4.3+70_amd64.deb ...

Unpacking linux-image-amd64 (4.3+70) over (4.3+70) ...

Preparing to unpack .../linux-libc-dev_4.3.5-1_amd64.deb ...

Unpacking linux-libc-dev:amd64 (4.3.5-1) over (4.3.5-1) ...

Preparing to unpack .../subversion_1.9.3-2+b1_amd64.deb ...

Unpacking subversion (1.9.3-2+b1) over (1.9.3-2+b1) ...

Preparing to unpack .../traceroute_1%3a2.0.22-1_amd64.deb ...

Unpacking traceroute (1:2.0.22-1) over (1:2.0.22-1) ...

Selecting previously unselected package libwebkitgtk-3.0-common.

Preparing to unpack .../libwebkitgtk-3.0-common_2.4.9-3_all.deb ...

Unpacking libwebkitgtk-3.0-common (2.4.9-3) ...

Setting up amd64-microcode (2.20141028.1) ...

update-initramfs: deferring update (trigger activated)

amd64-microcode: microcode will be updated at next boot

Setting up libjavascriptcoregtk-3.0-0:amd64 (2.4.9-3) ...

Setting up libsdl1.2debian:amd64 (1.2.15+dfsg1-3) ...

Setting up libsvn1:amd64 (1.9.3-2+b1) ...

Setting up linux-image-amd64 (4.3+70) ...

Setting up linux-libc-dev:amd64 (4.3.5-1) ...

Setting up subversion (1.9.3-2+b1) ...

Setting up traceroute (1:2.0.22-1) ...

update-alternatives: using /usr/bin/traceroute.db to provide /usr/bin/traceroute (traceroute) in auto mode

update-alternatives: using /usr/bin/lft.db to provide /usr/bin/lft (lft) in auto mode

update-alternatives: using /usr/bin/traceproto.db to provide /usr/bin/traceproto (traceproto) in auto mode

update-alternatives: using /usr/sbin/tcptraceroute.db to provide /usr/sbin/tcptraceroute (tcptraceroute) in auto mode

Setting up libwebkitgtk-3.0-common (2.4.9-3) ...

Setting up libwebkitgtk-3.0-0:amd64 (2.4.9-3) ...

Processing triggers for libc-bin (2.22-3) ...

Processing triggers for man-db (2.7.5-1) ...

Processing triggers for initramfs-tools (0.123) ...

update-initramfs: Generating /boot/initrd.img-4.4.0-1-amd64

成功!实际上,这并不能解决我的问题。但是它成功降级了软件包QED。

linux指令能回滚么,如何在Ubuntu上撤消或回滚“ apt-get upgrade”命令?相关推荐

  1. linux如何改磁盘文件系统名,如何在Ubuntu上设置文件系统(磁盘)配额

    文件系统配额是Linux内核中的标准内置函数. 配额确定文件支持用户活动必须具有的空间量. 磁盘配额还限制了用户可以在系统上创建的文件数量. 支持配额系统的文件系统包括xfs,ext2,ext4和ex ...

  2. linux stm32 ide,一文教你如何在ubuntu上快速搭建STM32 CubeIDE环境(图文超详细+文末有附件)...

    在快速ubuntu上安装cubeide你值得拥有:适合对linux系统还不是很熟悉的同学: 1 下载 cubeide 登陆官网,下载链接不知道是否有效,如果无效,需要提交自己的邮箱地址,ST官方会将下 ...

  3. linux査 到漠河 装apache,如何在Ubuntu上搭建一台安全的Apache Web服务器

    满意答案 1.安装Apache2 使用下面这个命令,安装Apache2及其他库.1$ sudo apt-get -y install apt-get install apache2 apache2.2 ...

  4. linux卸载kodi,如何在Ubuntu上安装Kodi 18 Beta

    Kodi的Beta版周期很长.很棒,因为它有助于将错误排除在生产版本之外,而且还可以保留数月的新功能.值得庆幸的是,Kodi开发人员提供了可供测试和使用的"unstable"软件包 ...

  5. r语言使用linux命令,技术|如何在 Ubuntu 上安装和使用 R 语言

    这个教程指导你如何在 Ubuntu 上安装 R 语言.你也将同时学习到如何在 Ubuntu 上用不同方法运行简单的 R 语言程序. R,和 Python 一样,它是在统计计算和图形处理上最常用的编程语 ...

  6. 如何在ubuntu上写一个类似sl跑火车指令,“跑甜甜圈”

    如何在ubuntu上写一个类似sl跑火车指令,"跑甜甜圈" 首先创建.c文件 #include <stdio.h> #include <math.h> #i ...

  7. linux+usb刻录,如何在Ubuntu上安装Etcher-开源USB刻录机工具

    如何在Ubuntu上安装Etcher-开源USB刻录机工具 Mark Do 2017年5月20日 暂无评论 阅读 4,988 次 Etcher是一款跨平台的USB镜像文件写入工具,在Windows.m ...

  8. 如何在Ubuntu上使用MultiSystem创建多启动USB盘

    如何在Ubuntu上使用MultiSystem创建多启动USB盘 介绍 也许还有不少人不知道MultiSystem,它是一个用来在Linux系统中创建多启动usb盘的小型的开源软件.使用这个工具,我们 ...

  9. pip安装deb_技术|如何在 Ubuntu 上安装 pip

    pip 是一个命令行工具,允许你安装 Python 编写的软件包. 学习如何在 Ubuntu 上安装 pip 以及如何使用它来安装 Python 应用程序. 有许多方法可以在 Ubuntu 上安装软件 ...

最新文章

  1. 以Lazada为例,看电商系统架构演进
  2. ubuntu下进程kidle_inject致使编译软件很慢
  3. (筆記) 如何在字串中從指定字元抓到指定字元(pointer版)?
  4. 7-5 抓老鼠啊~亏了还是赚了? (20 分)
  5. java qq 实现消息发送_java如何实现qq发送消息
  6. oracle wallet使用与维护---oracle无密码登录
  7. IOS视频播放器VKVideoPlayer简单教程
  8. 部分PTA自测题答案(仅参考)
  9. python:类基础
  10. MODIS16天数据月合成/季合成
  11. Eureka No active profile set, falling back to default profiles: default
  12. 企业联合体的形式_企业联合体与垄断的初探
  13. CentOS7 忘记密码——重置
  14. java poi word bookmarks_poi根据word/excel模板(书签)创建导出word/excel文档
  15. HTML5 与 CSS3 jQuery部分知识总结
  16. LVGL8学习之row and a column layout with flexbox
  17. 【操作系统 - 1】先来先服务FCFS和短作业优先SJF进程调度算法
  18. 店铺DSR综合评分的计算维度,淘宝店铺评分结算标准
  19. java中的udp丢包_udp丢包 处理
  20. 苹果自带输入法怎么换行_Iphone手机原生输入法的5个技巧,学会了,才知道这么牛...

热门文章

  1. ruby循环_Ruby循环
  2. 并行计算机架构_计算机科学组织| 并行处理
  3. c++中int向量初始化_以不同的方式在C ++中初始化2D向量
  4. 第 5-7 课:Java 中的各种锁和 CAS + 面试题
  5. 六、PyQt5 QTreeWidget操作,获取树控件所有2级目录内容
  6. 九、PyQt5 QLineEdit输入的子网字符串校验QRegExp
  7. pyTorch实现C3D模型的视频行为识别实践
  8. KubeFlow安装指南
  9. python 函数式编程 库_使用Python的toolz库开始函数式编程的方法
  10. linux安装python27_linux下安装python27 nginx 和uwsgi