LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
123
返回列表 发新帖
楼主: vacuumboby

更新完后一切都变了。大家进来帮我看看哪里错了。。

[复制链接]
发表于 2010-11-5 22:00:02 | 显示全部楼层
你是跨版本更新~`忘了
回复 支持 反对

使用道具 举报

发表于 2010-11-5 22:01:43 | 显示全部楼层
ttf-wqy-zenhei
回复 支持 反对

使用道具 举报

发表于 2010-11-5 22:09:21 | 显示全部楼层
Debian跨版本软件包安装
January 8th, 2010 by kDolphin
Debian,无关风月

  Debian GNU/Linux这个伟大的操作系统任何时候都提供三个版本选择:stable, testing, unstable。stable就是公开发布的的版本,软件版本比较老,但是最稳定。testing是stable的预备版,软件版本比较新,相对 stable会有较多Bug。unstable是版本最新,最不稳定的一个。所以一般来说作为服务器都会选择最稳定的stable,但是有时候 stable里软件的版本实在太老了。比如stable里的Nginx版本是0.6.32,而我更想要testing下的0.7.64,因为这个版本对 SSL支持更好。
  基本上大家都会把 /etc/apt/source.list 文件中的stable改成testing,然后update一下就可以安装Nginx 0.7.64了。但问题是apt-get的机制是新版本优先,所以接下来的一次upgrade会看到大量的软件包需要更新,因为testing库里的版本一定会比stable更新,但是我并不想其它东西更新到testing。所以编辑一下 /etc/apt/preferences 文件,这文件可能一开始是没有的,自己建立一个就行,内容如下:

    Package: *
    Pin: release a=stable
    Pin-Priority: 900

    Package: *
    Pin: release a=testing
    Pin-Priority: 800

  第1, 2行很好理解,就是指这个版本的所有包。关键是Pin-Priority这个值,简单来说这个值谁大,apt-get就会装谁的,而不管版本大小。然后做一下update/upgrade看看,在同时有stable和testing源的情况下也不会upgrade到testing了。然后用下面这条命令安装testing中的Nginx。

    apt-get install nginx/testing

  这样Nginx更新到了testing版本而其他软件还维持在stable的版本上。不过这样设置的规则只对未安装的软件有效,具体来说如果已安装了testing的高版本软件,即使stable的Pin-Priority值高于testing,upgrade或者install时仍然会以已安装的testing版本为准,而不会安装stable中的软件。所以如果出于某种原因想upgrade(downgrade?)回一个较旧的版本(testing=>stable),或者本来是testing的,现在想搞回stable了,那就得这么干:同样修改/etc/apt /preferences
    Package: *
    Pin: release a=stable
    Pin-Priority: 1001

  只要Pin-Priority这个值大于1000,upgrade/dist-upgrade就会被强制升到指定版本。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表