[请教]如何使用Linux某发行版的源代码来开发自己的发行版
标题可能有点混乱, 我稍微用个例子来解释。
最简单的例子是 CentOS , 是使用RedHat Enterprise Server 的源代码, 自己修改并编译, 制作出来的。
我搜寻网络, 找到 Linux From Scratch , 不过Linux From Scratch 是教如何从空机编译源代码并装上Linux , 跟制作发行版(Distro)有点不同。
欢迎任何资料, 希望高手可以指点迷津。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
基于源码的发行版也是有包管理机制的,比如Gentoo的portage便是。有了portage,你不必烦恼“找到源码都不知道从如何开始”的问题,因为
1.你不必自己去找源码(有一两个包因版权问题除外,如sun-jdk,但portage会提示你下载的位址)。
2.你不必烦恼依赖关系。
3.你可以选择安装过程中打好二进制的包。
这一切portage都是可以自动处理的。
[ 本帖最后由 egret 于 2006-9-12 14:46 编辑 ]
正如您说的, 这是基于源码的发行版, 我比较倾向于包管理机制的发行版, 只需要知道如何基于某个发行版, 来制作。 无论如何, 谢谢您的资料。
我就是那个找到源码都不知道从如何开始的那个笨蛋 。。
不知道Ubuntu 的叫什么 。。
人家LINUX发行版本不都有个安装程序的吗? LINUX应该都是开源的,找到这个源代码然后就知道怎么处理。
redhat 叫什么 anaconda
suse 叫什么 autoyast
等
分别只是怎样装软件而已,试想如果你的LFS的包全做成了binary,普通使用者只需解开这些包,不就不用自己编译了吗?Slackware安装软件不就跟解tar包差不多吗?
当然LFS没有包管理机制,真正实行起来有一定的困难。可以考虑象Gentoo这样的。
[ 本帖最后由 egret 于 2006-9-11 23:02 编辑 ]
是我失言了, LFS 的确不是从空机安装。
我主要是想说, LFS 是让人使用源代码, 经过stage1 , stage2 来装上linux , 而我想知道的是如何制作类似ubuntu , debian, fedora 这类让普通使用者安装的发行版。
这和制作发行版(Distro)有什么不同?基于源码的发行版有好几个,如Gentoo,Sorcerer等。那些所谓非源码发行版实际上最终也是基于源码,只不过编译好软件用了某个包管理机制打了包而已(如rpm,deb等)。当然做个发行版不只是将软件打包这么简单,还有系统的设置方案,init系统的设计等等。
btw,LFS并非从空机开始编译,至少刚开始建立编译环境时得借助一个linux系统(即所谓的host)。
这里有个新开始的基于LFS的发行版项目:http://www.linuxsir.org/bbs/forumdisplay.php?f=103
[ 本帖最后由 egret 于 2006-9-11 22:35 编辑 ]
huhu2k , 谢谢你的资料。 如果是Ubuntu 的话呢? 这个发行版应该不是用anaconda 界面的。
langue , 如果用 tgz , 依赖关系要如何处理呢?
tgz结构不好用么
dependency可以用别的方法实现
hash、pgp另外做,为什么要rpm deb这样的结构
在Redhat的源码盘里有个软件叫anacorda的软件,使用来做安装界面的。在用这个软件之前只要把所有要打包的rpm文件放入/usr/src/redhat/RPMS这个目录中,然后运行anacorda这个软件它在处理完成后就生成了光盘镜象文件。