LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: 线头

构建另类lfs构想之二

[复制链接]
发表于 2006-2-4 21:34:55 | 显示全部楼层

关于rpm的一些疑问

Post by 线头
看来真不容易啊!rpm格式的二进制包把一个软件分成了许多快的,例如gcc,要凑起可要劳神啊。
直接用二进制的方案又夭折了!



rpm系统里有没有一个子系统(它可能是一个或几个文件和脚本<=我猜的)来描述所有包(可能会分或可以会已经安装、没有安装、所有可用)之间的依赖关系啊?

还有就是你说的本来一个包的分成若干个包的情况,那么有没有一个“虚包”包来描述这样一个整体呢?它们是不是作为一个整体固定在整个系统的依赖关系的某个位置上?
回复 支持 反对

使用道具 举报

发表于 2006-2-4 21:41:59 | 显示全部楼层

我的一些想法

线头兄你是不是直接解开一个个的rpm包,找出一切自己可能会需要的东西,然后作组装试验?

我虽然了解lfs,但是对于要用n个包来组成一个发行版还没有一个整体清晰的概念。对于rpm的内在也不懂。

我只是觉得先要知道rpm的机制,然后才能找到自己想要的东西来做自己想要做的事


线头兄是不是也这么个思路?
回复 支持 反对

使用道具 举报

发表于 2006-2-4 21:59:25 | 显示全部楼层
Post by ehu
那么CentOS与RHEL之间到底有什么区别呢?

望指教一二:ask
我討厭rpm,所以兩者我都沒有用過,但我記得有人在RedHat版比較過,你可以搜一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-4 22:02:52 | 显示全部楼层
是这样的思路。其实概念也很清晰呀:拼装的工具链不需要调整,是在开发商的默认路径。然后编译出的lfs与redhat系列将有同样的底层运行库。
回复 支持 反对

使用道具 举报

发表于 2006-2-4 22:54:08 | 显示全部楼层
支持你支持你
回复 支持 反对

使用道具 举报

发表于 2006-2-5 00:11:48 | 显示全部楼层
我的看法:

系统,软件等的依赖:

1。binutils/glibc/gcc。
一个系统中,这3者的组合很关键。当然,不是说版本不同所编译出来的软件就不能互相使用,不过 也许 会存在一点兼容问题。比如glibc 2.2.4和glibc 2.3.6 ,gcc3和gcc4。
不过这个方面的兼容性,似乎不是最重要的。因为我以前用的LFS5,一样可以运行在别的机器上用gcc3.5编译出来的软件。

2。库的依赖。
比如 OpenSSH 依赖 OpenSSL。这类情况,一旦删除OpenSSL,那么OpenSSH也就不能运行了。升级OpenSSL也有可能会产生问题,比如OpenSSL 0.9.8改变了一个API,导致Heimdal运行失败,因为找不到相应的函数。

3。RPM类型的依赖。如 Debian的apt,Gentoo的emerge,FreeBSD的port 之类的。
这些只是一个软件安装记录机制而已。这些记录一般是准确的,但是也有出错的时候。也就是如果你用手动编译安装了一个软件,而不是通过 emerge这类软件安装,那么记录里边就没有体现出来。那么就会有可能产生错误了。比如手动安装了一个OpenSSL 0.9.8的话,那么你的Kerberos服务也许就会停止了。

其他的,请大家补充。我只是抛砖头,大家用玉来砸我吧。:)。
回复 支持 反对

使用道具 举报

发表于 2006-2-5 08:06:27 | 显示全部楼层
1。binutils/glibc/gcc。
一个系统中,这3者的组合很关键。当然,不是说版本不同所编译出来的软件就不能互相使用,不过 也许 会存在一点兼容问题。比如glibc 2.2.4和glibc 2.3.6 ,gcc3和gcc4。
不过这个方面的兼容性,似乎不是最重要的。因为我以前用的LFS5,一样可以运行在别的机器上用[color="Red"]gcc3.5编译出来的软件。
gcc3.5???:ask
2。库的依赖。
比如 OpenSSH 依赖 OpenSSL。这类情况,一旦删除OpenSSL,那么OpenSSH也就不能运行了。升级OpenSSL也有可能会产生问题,比如OpenSSL 0.9.8改变了一个API,导致Heimdal运行失败,因为找不到相应的函数。
我猜所有的发行版都会面对这类情况的了
3。RPM类型的依赖。如 Debian的apt,Gentoo的emerge,FreeBSD的port 之类的。
这些只是一个软件安装记录机制而已。这些记录一般是准确的,但是也有出错的时候。也就是如果你用手动编译安装了一个软件,而不是通过 emerge这类软件安装,那么记录里边就没有体现出来。那么就会有可能产生错误了。比如手动安装了一个OpenSSL 0.9.8的话,那么你的Kerberos服务也许就会停止了。
是的,用手动编译安装软件也要打包後才安装,否则rpm、Debian的dpkg等database并不知道某个软件已安装,其他依赖的软件安装或升级时便会服错了。

话说回来,把软件打包後再装有个好处是软件的升/降级或移除都较方便。rpm的打包方法很讨厌,用checkinstall也许会方便一点
回复 支持 反对

使用道具 举报

发表于 2006-2-5 08:58:37 | 显示全部楼层
应该是,,3.3.5。。打漏了个3。。。

(d00m3d,你最近总是抓偶的小辫子,哼哼,有机会见到你的话,一定要狠狠的吃你一顿才行。)

对了,兄弟是在那里高就呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-5 23:54:16 | 显示全部楼层
用source编译暂时没有成功,但成功用suse相应的rpm包构建了类似lfs的mini版suse,并成功chroot了。只是suse的结构很是复杂,很难配置啊,目前为止还没有编译出内核并成功引导。继续努力中……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-6 00:04:52 | 显示全部楼层
想装一个简洁的suse,提取其配置文件用于自己拼装的mini版suse,不知有哪些文件是必须的呢!例如.bashrc
不过由于suse的结构太复杂,估计后期自己编译的程序运行会不正常
回复 支持 反对

使用道具 举报

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

本版积分规则

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