LinuxSir.cn,穿越时空的Linuxsir!

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

再探编译源码升级 glibc 的问题

[复制链接]
发表于 2007-7-1 13:29:31 | 显示全部楼层 |阅读模式
小弟屡战屡败。。。屡败屡战多次,不论如何

用这些方法:
http://www.linuxsir.cn/bbs/showthread.php?t=164968

http://www.linuxsir.cn/bbs/showthread.php?t=228819

什麽 glibc-howto 或者 static link 的 toolchain  等方式都是无功而还,出奇地,用 paco 来简接安装却是无往而不利的(虽然只有两次)
http://www.linuxsir.cn/bbs/showthread.php?t=295562

还看各大发行版都能随心所欲地用二进包升级,Gentoo 又能通过 ebuild 无痛地源码编译安装升级 glibc,似乎都有一个同通点就是不能直接用 make install,但为何直接调用不行,简接安装又行呢?不解。。。郁闷中!
发表于 2007-7-2 09:20:49 | 显示全部楼层
我这里可以的。不过以前在Magic Linux上升级,总是段错误,把系统都搞崩了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-14 16:37:56 | 显示全部楼层
今天尝试把系统的 glibc 由 2.5 升级为 2.6,记得手册曾经提及 /usr/include 里的头文件必定是用於编译 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.

於是顺手把老旧的 linux-libc-headers 换成 Linux API Headers,由内核源码提取出来

编译完成後依旧利用 paco 安装,又是顺利的。

paco 这发明实在太伟大了 :)

By the way, 新版 paco-2.x 很麻烦,要特别的依赖,还是用 1.2.10 算了
回复 支持 反对

使用道具 举报

发表于 2007-8-17 20:41:25 | 显示全部楼层
doom3d老兄不如参考一下我做的Olive安装软件包的脚本吧,也是支持glibc升级的,不妨试一下?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-18 06:29:20 | 显示全部楼层
是啊!:eek:

这个都忘记了,该打 :beat
回复 支持 反对

使用道具 举报

发表于 2007-8-18 07:09:24 | 显示全部楼层
其实 glibc 也是一个软件,如果我们以一般的软件去对待,就没啥问题了。

比如 glibc 就是 readline,那么 bash 编译的时候,连接了一个 readline A,那么 如果我们安装了 readline  B 的话,bash是否需要重新编译呢?那就要看 readline 的 ABI等 是否有改变。同理,glibc 也是这个样子,我觉得其实没啥区别的。

至于为啥不能直接 make install 的原因,我觉得主要是因为怕安装的时候出错,那么就造成了系统的 glibc 不统一,上不上下不下的(咬苹果你最怕见到几条虫?答案:半条。)。再用 readline 来做例子,就是如果 readline 升级错误的话,你的bash 就死掉了,一旦退出就不能再进入(当前的是在内存里边,所以不受影响)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-18 07:17:21 | 显示全部楼层
这个比喻不错,也许解释了不能直接 make install 的原因,那麽何以简接安装又行呢?是否绕过了些什麽?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-18 07:23:52 | 显示全部楼层
Post by youbest
doom3d老兄不如参考一下我做的Olive安装软件包的脚本吧,也是支持glibc升级的,不妨试一下?
youbest 不如讲解一下你的脚本是怎样运作的 :thank
回复 支持 反对

使用道具 举报

发表于 2007-8-18 10:18:04 | 显示全部楼层
Post by d00m3d
这个比喻不错,也许解释了不能直接 make install 的原因,那麽何以简接安装又行呢?是否绕过了些什麽?

间接安装是什么意思?拷贝么?一般来说,一个 cp 命令是不会被中断,我想是这个原因吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-21 00:40:36 | 显示全部楼层
make install 一般就是根据 Makefile 或 makefile 预先设定好的脚本去调用 cp 来拷贝,但以前也讨论过,就连 static link 的 cp 也会出问题才费解

间接安装是指像 paco 般的安装,它安装前栏截了系统的信息,记录了安装位置等,之後才 cp,这样却无往而不利,不解 :confused:
回复 支持 反对

使用道具 举报

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

本版积分规则

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