如何从sarge升级到etch
2007年4月8日是debian etch发布的日子,alfie参考了官方的release note,并通过亲身实践,将手头上的4台sarge全部升级至etch,下文便是升级笔记,希望能对大家有所帮助。
Debian官方建议使用aptitude来管理包,实践证明aptitude比apt-get能更好的处理包依赖的问题,所以下面的操作均以aptitude为例,需要说明的是一旦用了aptitude,就不要再混用apt-get。
说明:alfie所管理的sarge服务器没有安装x windows,所以下文的升级的步骤没有涉及到x windows部分。
1、备份
将系统中重要的系统文件做备份,一般是配置文件、数据库等
- # tar -cvf /home/backup/etc.bak /etc/*
2、准备升级环境
升级的过程中会重启一些服务,所以千万不要通过telnet、ssh远程连接方式进行升级,最好在本机的终端窗口下操作(不要在X windows)。
3、检查系统软件包状态
系统中如果有软件包处于hold状态,需要先手工将他们设为unhold
- # aptitude search "~ahold" | grep "^.h"
- # aptitude unhold pkg_name1 pgk_name2 …
说明:
3.1、 一定要在更新前将状态为hold的包unhold,否则升级后你安装的软件可能会因为这些相关包未能升级到最新版本而失败,如果你不幸忽略了这一步,那么你还可以通过aptitude install pkg_name1 pkg_name2来升级他们;
3.2 、如果sarge系统中使用了非官方的软件包,例如backports,最好先将他们全部卸载,否则升级过程中会引起包冲突;
4、更改source.list
- # vi /etc/apt/source.list
- ——–snip———-
- # deb http://debian.cn99.com/debian sarge main contrib non-free
- deb http://debian.cn99.com/debian etch main contrib non-free
- # deb-src http://debian.cn99.com/debian sarge main contrib non-free
- deb-src http://debian.cn99.com/debian etch main contrib non-free
- ——–snip———-
中国一般用cn99源,速度比较快,只需要将sarge改为etch就可以了。
5、更新软件包列表
- # aptitude update
6、确认是否具有足够的硬盘空间
在升级的过程中需要占用一些临时的磁盘空间,所以要确认是否还有足够的剩余空间
- # aptitude -y -s -f –with-recommends dist-upgrade
- [ ... ]
- XXX upgraded, XXX newly installed, XXX to remove and XXX not upgraded.
- Need to get xx.xMB/yyyMB of archives. After unpacking AAAMB will be used.
- Would download/install/remove packages.
如果不能满足请删除一些文件,例如aptitude clean或者删除/var/log
7、升级
sarge和etch之间有不少软件包是有冲突的,直接使用aptitude dist-upgrade会卸载掉sarge系统里的软件包,而有些软件包是你想保留的,为了尽量避免这种情况发生,需要做阶段性升级,分三个步骤:
7.1 最小化升级
- # aptitude upgrade
这样就只是更新的软件而不会删除其他东西。
- # aptitude install initrd-tools
这将会自动升级libc6和locale,这个时候会重启某些服务。
7.2 升级内核
在做下一步操作之前强烈建议手工升级内核,Etch引进的udev技术已经无法支持比2.6.15旧的内核,而Debian Etch的软件仓库中的内核版本则是2.6.18。我们安装它就可以了。
先确认一下你目前的内核版本
- # uname -r
- 2.4.27-4-386
- # aptitude search linux-image-2.6*
- # aptitude install linux-image-2.6-686
这样就可以安装2.6.18的内核了。
7.3 全面升级
- # aptitude dist-upgrade
这将会对sarge进行完全的更新,时间大约半个小时,比我预料中要快很多。
8、更新软件包的签名信息
Etch的软件包关系系统引入了签名功能,简言之,没有经过Debian官方签署的软件包无法在etch系统上安装,你当然也可以通过更改/etc/apt/来取消这个限制。
- # aptitude update
9、重启服务器
最后还需要重启一下,才能加载新的内核。
- # shutdown -r now
至此,您的操作系统就更新完毕了。lenny即将来临,相信这个升级过程对从etch升级到lenny仍有指导意义。

















