最近打算将Ubuntu升级一下, 因为我安装了8.04之后就一直没有升过, 现在10.04都快出了, 于是打算先试试系统升级(以前都是直接用光盘或者镜像安装的, 7.04, 8.04都是).
上网搜了搜, 在线升级主要有两种, `update-manager -d`启动图形化界面或者`apt-get upgrade; apt-get dist-upgrade` 命令行升级, 我还是比较喜欢命令行操作的, 再者图形化界面升级是去官方源下载文件的, 虽然简单但是速度会比较慢. 另外看到一种方法说下载alternate版本的镜像, 挂载之后用镜像做源升级, 我觉得下载一个镜像的时间或许我已经升级完成, 所以放弃这种方式.
---
我并没有打算跨版本往上升, 一步一步来就可以了, 先升到8.10吧.
1. 换源, 还是使用cn99的源比较快, 把所有的hardy替换成intrepid即可.
2. `sudo apt-get update`, 更新软件包列表.
3. `sudo apt-get upgrade -d`, 为防升级过程中网络中断而失败, 还是先把所有需要的包下载到本地再升级. 这一步只是将所有安装过的软件包更新.
4. `sudo apt-get dist-upgrade -d`, 这一步才是升级系统, 不过还是仅下载模式.
5. `sudo apt-get upgrade; sudo apt-get dist-upgrade`, 都完成而且没有错误之后, 再运行升级命令实际安装.
`sudo apt-get upgrade -d`和`sudo apt-get dist-upgrade -d`这两个命令不是必须的, 完全可以直接执行升级而不用仅下载模式, 但是为了安全起见, 还是先完全下载再安装.
这样, 系统升级就算完成, 重新启动, 即可进入新版本的系统. 下面是一些清理工作.
重启时, 默认的grub选项中应该有多个内核, 选择最新的进入.
查看当前使用内核可用命令`uname -a`.
查看系统中的所有内核`dpkg --get-selections | grep linux`, 有image的就是内核文件.
然后`sudo apt-get remove 内核文件名(例如 linux-image-2.6.27-2-generic)`删除旧的内核, 这样可以释放一部分空间.
另外刚才升级过程下载的软件包都在"/var/cache/apt/archives", 没有下载完成的载"/var/cache/apt/archives/partial", 命令`sudo apt-get clean`可以清除这些安装包.
`sudo apt-get autoclean` 清除旧版本的软件缓存
`sudo apt-get autoremove` 清除系统不再使用的孤立软件
使用同样的方式从8.10升到9.04也没有任何问题.
------------
升级过程中可能会遇到的问题:
在升级过程中, 会自动把使用新内核启动的启动项信息添加到menu.lst文件尾部, 有时可能会提示menu.lst需要更新, 要作出选择. 看所给出的选项, 选择第一个也就是使用最新的安装包所维护的版本, 这样就把使用新内核启动的信息写到menu.lst文件中(第二个选项是维持旧版本的不变). 如果选择了第二个, 也可以升级完成之后自己手动编辑menu.lst文件把自己需要的其他启动项添加到文件中. 一般出现这个是因为之前改动过menu.lst文件, 或许是删除了一些注释内容之类的, 导致menu.lst文件结构改变而不能被正确识别, 如果没有使用新的内核重新启动可能会启动失败.
另外, 也可以在升级完成之后把menu.lst文件备份之后删除, 然后使用命令`sudo update-grub`来重新生成menu.lst文件, 生成的文件中默认会包含新内核和旧内核, 手动编辑一些menu.lst文件, 把不需要的去掉即可. 注意生成的文件不会包含其他系统的启动信息, 需要自己手动编辑.
另外在网上看到一条很不错的命令(确切的说是多条命令):
`dpkg -l | grep ^rc | cut -d' ' -f3 | xargs sudo dpkg -P`
这个命令可以查找出系统上软件删除之后仅存的配置并删除. 详细的每条命令我就不解释, 感兴趣的话可以自己试试每一级命令的结果. 当然中间的有些命令可以用其他的替换, 比如第三条用awk替换...
阅读(1028) | 评论(0) | 转发(0) |