LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3492|回复: 25

如何更新系统阿

[复制链接]
发表于 2009-8-18 20:28:18 | 显示全部楼层 |阅读模式
我现在使用的lfs系统大概是今年4月份的svn版,现在觉得用的还不错,看到lfs网站上很多软件更新了,手就痒痒了,想更新到新的版本,可是又觉得很多软件要重新安装,而且很多软件在编译的时候,还会报错,即使使用自动编译,中间也要手工干预,正是这个感觉觉得又不想麻烦,就想在现有系统上进行个别软件的更新,像gcc,glibc,什么的,不知在现有系统上更新有什么要注意的问题呢?该如何实施
发表于 2009-8-18 20:43:36 | 显示全部楼层
我现用的系统建於 3~4 年前,期间不断升级软件(包括 Toolchain),久未重装,但至今也跟 LFS SVN 版无异。

基本上除了 toolchain 元件(gcc/binutils/glibc)外,绝大多数软件包括内核按新版手册更新是没有问题的。

Toolchain 的软件及内核 API Headers 就需要注意。gcc 跟 binutils 都还好,但 API Headers 及 Glibc 就更加要小心,特别是要升级 glibc 更是高危动作。

以上提及的都能升级,但要做点准备,而且要懂得如何修覆系统,万一出事都能把系统复原。具备这些条件才好进行,否则系统毁於一旦也非不可能。

在未了解楼主现在水平之前,恕我不便多说了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-18 21:09:20 | 显示全部楼层
呵呵,感谢d00m3d大哥的指点阿!
我刚才对照svn版的软件目录和我当时安装的软件清单,现在已经有20个软件进行了更新。仅限于lfs系统,还没有算blfs更新的软件。
d00m3d大哥最后所讲的我现有的水平,我理解的是一旦出了问题恢复系统的能力,不知理解的对否?目前我做lfs系统主要是从光盘启动,硬盘分区,再根据手册一步一步来,有时候偷点懒,使用以前备份的toolchain,直接到第六章,如果不想从新做的话,就直接把系统盘格式化,然后解压缩以前的tar备份文件,然后再设置一下grub,基本上就是一个新系统了。
上面就是我玩lfs的主要方面,小弟很想能得到d00m3d大哥的指导与指点
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-18 21:12:47 | 显示全部楼层
还有一个问题哦,就是那个API Headers及glibc是不是必须配套更新阿
回复 支持 反对

使用道具 举报

发表于 2009-8-19 06:23:41 | 显示全部楼层
Post by qdog988;2017718
还有一个问题哦,就是那个API Headers及glibc是不是必须配套更新阿
這是手冊關於編譯內核的節錄:

http://www.linuxfromscratch.org/ ... apter08/kernel.html
Warning

The headers in the system's include directory should always be the ones against which Glibc was compiled, that is, the sanitised headers from this Linux kernel tarball. Therefore, they should never be replaced by either the raw kernel headers or any other kernel sanitized headers.

所以答案是肯定的
回复 支持 反对

使用道具 举报

发表于 2009-8-19 06:43:24 | 显示全部楼层
Post by qdog988;2017717
呵呵,感谢d00m3d大哥的指点阿!
我刚才对照svn版的软件目录和我当时安装的软件清单,现在已经有20个软件进行了更新。仅限于lfs系统,还没有算blfs更新的软件。
d00m3d大哥最后所讲的我现有的水平,[color="Blue"]我理解的是一旦出了问题恢复系统的能力,不知理解的对否?目前我做lfs系统主要是从光盘启动,硬盘分区,再根据手册一步一步来,有时候偷点懒,使用以前备份的toolchain,直接到第六章,如果不想从新做的话,就直接把系统盘格式化,然后解压缩以前的tar备份文件,然后再设置一下grub,基本上就是一个新系统了。
上面就是我玩lfs的主要方面,小弟很想能得到d00m3d大哥的指导与指点

不錯,是這個意思。

在現有系統升級 Toolchain 跟做 LFS 不同,無需 chroot 之類。正因如此才有機會弄壞系統。

關於 binutils,直接按第六章的方法裝是可以直接過渡的。而 gcc 本身容許多版共存,所以在相同系統裝幾版也沒有問題,Debian 就在 configure 的時候加入 suffix

--program-suffix=-4.1

將所有 gcc 裝在 /usr/bin 然後再以 /usr/bin/gcc 作 symlink 來選擇,我就將此方式改變一下,把所有的 gcc 都裝到 /opt 下而矣:

http://www.linuxsir.cn/bbs/thread329026.html

最後 glibc,這個絕對危險,一下失手你的系統就會當場掛掉。關於它,就和要準備的(備份)工作及系統恢復拉上關係了。

在還未了解樓主現在水平及系統修復經驗之前,恕我不便多说了。

Btw,印像中樓主有用 paco 來管理包的,對不?如果答案是"是",那麼它將會大派用場。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 07:11:43 | 显示全部楼层
是的,我是在用paco管理包,目前也就仅限于看安装的什么包,什么版本,如果不要某个软件了,可以删除,其他高层次的就没有使用到了,大哥,你要不根据我的系统一起都讲讲,我也好好深造一下?
回复 支持 反对

使用道具 举报

发表于 2009-8-19 08:25:29 | 显示全部楼层
glibc升级的麻烦在于这个库时时刻刻被系统使用,是不可以直接覆盖的,安全做法是启动另一系统,再cp过去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 12:50:12 | 显示全部楼层
根据楼上的建议,你看这样做行不
首先在现有系统下进行glibc的编译工作,使用destdir安装到指定目录下,然后从另外的介质中启动电脑,挂载当前系统的分区,使用cp -a拷贝?
回复 支持 反对

使用道具 举报

发表于 2009-8-19 14:31:01 | 显示全部楼层
当然在系统运行时替换掉整个glibc库也是可以做到的,如果你对程序库、链接、装载都很熟悉的话。

建议你去看《一个程序员的自我修养》这本书,对LFS会有更深入的了解
回复 支持 反对

使用道具 举报

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

本版积分规则

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