大家都熟悉通过网络upgrade升级Linux系统,这里要介绍的是如何downgrade降级系统。背景情况是这样的:我将系统升级到feisty h3之后,发现libvte-0.15.3有个bug,会影响gnu screen的正常使用。虽然看见bugzilla@gnome已经有了report不过好像还没有啥正式resolv的希望,就只好希望能回滚到edgy的libvte9对应版本。 
  大概过程是这样,首先是修改/etc/apt/sources.list,添加对应的edgy source。这个步骤比较简单,用vim吧feisty源先复制一遍,然后将feisty替换成edgy就可以了。修改完了
  apt-get update
  更新一下数据。这么做的目的,就是希望package database里面同时包括新老两个版本的包版本信息。这里说一下,目前就我的实际经验看,好像也没有什么负面影响,因为apt会尽力把包升级到最新的版本,也就是说,一般情况下,老版本的包数据并不会影响新版本的升级。完成第一步之后,就是请出aptitude这个工具。原来只是简单的认为aptitude只是一个apt的简单壳子,今天深入研究一下,才发现aptitude扩展功能相当的强大,算是等同于dselect吧,用起来比dselect顺手不少。言归正传,首先用
  apt-cache showpkg libvte9
  察看一下可用的package版本。这时候可以看到libvte9的两个版本,一个对应feisty一个对应edgy。看清版本号之后,使用
  aptitude upgrade libvte9=1:0.14.1-0ubuntu1
  这样的写法,强制升级制定版本号的包,设置版本的写法还有其他,可以man一下详细信息。aptitude会自动计算依赖关系,如果一切顺利,libvte9以及相关的包,就会降级到老的edgy版本。做完之后,可以使用
  aptitude hold libvte9
  来保持这个包的状态,避免在以后upgrade过程中被升回feisty的版本。最后要记得的事情,如果想让libvte9重新可以升级,需要unhold这个包。命令行是aptitude keep libvte9,这样就可以继续正常升级libvte9到最新版本了。这里有个比较奇怪的事情,就是我用aptitude unhold libvte9好像没有什么用,到使用aptitude keep libvte9可以清除包的hold标志。另外一个推荐的方法,就是用aptitude upgrade libvte9=xxx强制将包升级到指定版本,这个就和前面说的一样,需要先showpkg看一下可用版本。
  顺便说两句,可以用aptitude search libvte9来察看当前包的状态。aptitude本身就提供一个字符交互界面,如果命令行没有参数,就会进入这个界面,操作也是很直观的。折腾了这么一轮,对deb/apt/aptitude这个debian系的包管理系统了解又进了一层,对这样现代科技真实叹为观止。整个包系统也能像cvs/svn管理代码这样来回翻滚版本,还真是很方便。计划过年无事的时候,稍微深入了解一下deb相关的包系统。

Ubuntu 如何downgrade降级系统的更多相关文章

  1. Ubuntu进不入系统,一直停留在ubuntu图标画面(转)

    Ubuntu进不入系统,一直停留在ubuntu图标画面(转) 在VMware中对Ubuntu进行“关闭电源”后,再次进入,一直停留在ubuntu的图标画面,无法进入系统了!网上也有别的网友碰到这个问题 ...

  2. Ubuntu Vim 复制到系统粘贴板

    /************************************************************************* * Ubuntu Vim 复制到系统粘贴板 * 说 ...

  3. Windows XP硬盘安装Ubuntu 12.04双系统图文详解

    Windows XP硬盘安装Ubuntu 12.04双系统图文详解 Ubuntu 12.04 LTS版本于2012年4月26日发布,趁着五一放假,赶紧在自己的Windows XP的电脑上安装下Ubun ...

  4. Ubuntu和win10双系统Grup无法引导解决方案

    通常我们经常安装双系统, 但是有时候安装完系统无法正常引导, 以下就说明Ubuntu和win10双系统, win10在grub界面不断循环的解决方案 直接在win10启动项目上按e进入编辑模式 在文档 ...

  5. win7 下安装 ubuntu 16.04双系统

    Ubuntu 每年发布两个版本,目前最新正式版版本也升到了 16.04.Ubuntu 16.04 开发代号为"Xenial Xerus",为第六个长期支持(LTS)版本,其主要特色 ...

  6. 沉淀,再出发——安装windows10和ubuntu kylin15.04双系统心得体会

    安装windows10和ubuntu kylin15.04双系统心得体会 一.安装次序      很简单,两种安装次序,"先安装windows后安装linux:先安装linux后安装wind ...

  7. 树莓派Ubuntu 16.04 MATA系统 修改用户文件夹名后,提示configure it with blueman-service

    自从修改了树莓派的Ubuntu 16.04 MATA 系统的 /home/ 下的用户文件夹名后,使用vncserver远程操作,看到桌面每次都提示 Configured directory for i ...

  8. 树莓派3b+ Ubuntu 16.04 MATA系统 ssh远程登陆后修改主机名、用户密码和用户名

    写在前面: 刚刚开始写博客,记录下自己的学习过程,备忘. 最近在使用树莓派做智能小车的开发,使用的是树莓派3b+,安装的是Ubuntu 16.04 MATA 系统,安装系统后需要修改主机名,登陆密码以 ...

  9. ubuntu window 10 双系统

    https://rufus.ie/ U盘制作工具 http://releases.ubuntu.com/18.04/ubuntu-18.04.2-desktop-amd64.iso   ubuntu ...

随机推荐

  1. SharePoint2013 以其他用户登录和修改AD域用户密码 功能

    sharepoint默认是没有修改AD密码 和切换 用户的功能,这里我用future的方式来实现. 部署wsp前: 部署后: 点击以其他用户身份登录 点击修改用户密码: 这里的扩展才菜单我们用Cust ...

  2. c#:对两个字符串大小比较(不使用c#/java内部的比较函数),按升序排序

    题目:首先需要实现一个函数:两个字符串大小比较(不得使用c#/java系统函数)的自定义函数:之后对一个字符串数据进行按升序排序(在排序过程中使用字符串大小比较时,使用自定义的字符串大小比较函数). ...

  3. Thinkphp5 使用odbc连接到sqlserver

    在PHP中访问mssql有两个方式 1.安装相应的驱动,如sqlsrv 2.直接使用PHP自带的ODBC驱动(不需要安装)   本文直接使用自带的ODBC驱动 在使用前请确定PHP开启了php_pdo ...

  4. 整数对A满足二叉查找树,B满足最大堆

    1 题目 给出一组整数对 { (a[0], b[0]), (a[1], b[1]) ... (a[n-1], b[n-1]) },全部 a 值和 b 值分别不反复(随意 i != j 满足 a[i] ...

  5. glValidateProgram只用于调试

    glValidateProgram应该只用于调试,用于release版本中会影响性能.以下是详细描述:   Before doing so, however, we might want to che ...

  6. 判断一个整数是否是2的n次方

    参考:http://bbs.csdn.net/topics/370058619 如题,如何判断一个整数是否是2的N次方,我能想到的方法有两个 1.一直除2,看最后是否等于1.(最笨的方法) 2.转换成 ...

  7. GitHub没有实时通知怎么办?当然是自己上手写一个啊!

    相信各位程序员对github已经不陌生了.不知道各位有没有注意到GitHub没有推送通知这个功能.当有人在我的存储库中创建了一个提取请求/问题时,我可以收到电子邮件通知,但当有人stars/forks ...

  8. C#.NET常见问题(FAQ)-命名空间namespace如何理解

    Namespace就是定义一个对象是哪个门派的,比如你现在就在A门派下,A门派的所有功夫(属性和方法)都可以不加声明直接调用.如果你要用B门派的功夫,就要先声明是B门派的XXX对象的XXX实例的XXX ...

  9. spring boot与spring mvc的区别是什么?

    Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面 ...

  10. Redis 操作数据

    展现最新数据 Web应用常常要展现最新数据,就会根据时间对数据排序: SELECT * FROM foo WHERE ... ORDER BY time DESC LIMIT 10 随着数据的增加,问 ...