+ -
当前位置:首页 → 问答吧 → 公布一个适用于LFS用户的开源项目

公布一个适用于LFS用户的开源项目

时间:2010-05-11

来源:互联网

弦歌Linux
http://code.google.com/p/xiangelinux/

接触LFS后,一直想找个最适合LFS用户的包管理系统,结果一直不太满意,于是用了近一个月的时间,在LinuxSir内热心坛友的帮助下创建了这个开源项目。
弦歌Linux的核心是一个包管理器 gpkg, 和一套编译脚本库xglibs, gpkg可以管理每个装入系统的软件包,记录所有包文件,并提供校验功能防止文件被非法修改。xglibs是一套拥有简单接口的软件包编译脚本,用GITHub管理,方便大家共享自己的编译脚本。

目前处于手动安装和stage1自动安装的公开测试阶段,有兴趣的坛友请多多捧场,也欢迎拍砖

除了包管理和自动安装外,还有如下比较好玩的功能:

1. 默认采用-march=native编译, 针对你的CPU优化,使软件在最佳状态运行。且可以自由修改编译参数。
2. 可以查找文件属于那个软件包
3. 可以查找指定路径下不属于任何包的文件
4. 可以查找指定路径下属于多个软件包的文件(包文件冲突)
5. 使用tmpfs进行编译操作,充分利用大内存, 不损伤硬盘
6. 以压缩方式记录软件包执行configure时的屏幕输出, 和执行make test时的屏幕输出,同包文件信息放在一起,方便以后查询软件包配置/测试情况
7. 对/bin,/sbin,/usr/bin,/usr/sbin目录下的文件进行strip all操作,去掉无用数据段,使系统保持精简
8. 对/lib,/usr/lib目录下文件进行strip操作,去掉调试信息
9. 对/usr/share/man, /usr/man目录下的文件进行gzip操作,节省硬盘空间
10. 编译后自动生成二进制包,下次安装时可以直接安装二进制包, 不用重新编译。注意默认二进制包只能在相同CPU的机器上通用
11. xglibs库中已有进300个常用软件包编译脚本,包括Xorg7.5, firefox 3.6.3等
12. 包编译脚本编写方便,可以库中拿任何一个做模板,稍作修改就可以编译新软件。

还有一些规划中的功能,期待大家参与讨论/编码.
1. 彻底滚动升级。目前大部分软件包可以滚动升级,核心软件包如glibc,bash,coreutils等需要/tools目录支持。
2. 文件校验。目前所有包文件的MD5码已采集并记录在案,尚无校验机制。
3. 软件包依赖关系解决
4. 指定系统内旧文件创建软件包,方便那些制作LFS时没有加入包管理的用户.
5. 编辑脚本支持check_upgrade功能,自动解析网页,获取软件包最新版本

作者: swordhui   发布时间: 2010-05-11

精神上支持下。

多一个轮子而已。

对 LFS/CLFS 来说,过于重型。

作者: 聚焦深空   发布时间: 2010-05-11

引用:
作者: 聚焦深空
精神上支持下。

多一个轮子而已。

对 LFS/CLFS 来说,过于重型。
目前只考虑了LFS/BLFS. 适合在PC/上网本上使用。
有空尝试编译一个PS3版本。
顺便鄙视一下Sony, 新的PS3 固件Ban掉了Linux... 于是决定不再升级新版固件,于是游戏机的游戏功能就废掉了一半。。。。

作者: swordhui   发布时间: 2010-05-11

又一个发行版?
用LFS的大概觉得太大了
用现成发行版的又觉得太弱了

作者: heuyck   发布时间: 2010-05-12

更新了屏幕抓图,显示了gpkg的一些用法

作者: swordhui   发布时间: 2010-05-13

精神上支持一下,gentoo很不错,很适合想让LFS自动化的用户。不如lz参与一下gentoo的开发吧。

作者: csfrank   发布时间: 2010-05-13

引用:
作者: csfrank
精神上支持一下,gentoo很不错,很适合想让LFS自动化的用户。不如lz参与一下gentoo的开发吧。
Gentoo我用了6年左右,不可否认Gentoo非常棒,但它的包管理系统太复杂了。装完LFS后我用了一阵Portage, 后来还是决定用Bash和C弄个简化版本,用着更舒服些。

作者: swordhui   发布时间: 2010-05-13

我认为楼主的想法很好,期待逐渐完善起来,比如一些方便定制的类似gentoo的use等方便定制的特性,gentoo的portage确实复杂了,期待楼主成功。btw:楼主的口味挺适合偶的。个人感觉造轮子也是挺必要的。天朝缺的就是造轮子的人……

作者: yafeng   发布时间: 2010-05-13

自己有兴趣的可以搞搞,至少自己看起来比较顺心,对系统结构也有更进一步的了解
听说很多WM都是老外业余兴趣写的,这一点值得学习,不过天朝里生计才是第一位

作者: digwtx   发布时间: 2010-05-13

引用:
作者: swordhui
更新了屏幕抓图,显示了gpkg的一些用法
baselayout……
gentoo才有的吧,嘻嘻。虽然就是个目录结构。
其实看了下脚本结构,看着像ebuild的简化版,其实我觉得倒不如直接借鉴arch的pkgbuild用着舒服(功能特性跟PKGBUILD差不多,可以直接利用Arch现成的ABS库,毕竟打包是个艰苦而需要人手的工作)。

实际上我感觉从使用角度上来说LFS确实需要一个类似的包管理器的。现在感觉Arch的pacman+ABS算是比较理想的包管理器,就是pacman包含的makepkg自动化功能稍差。

其实除了portage,Arch都比gentoo优雅的多,不过portage的优势又实在太大……

还有就是包管理用git固然有先进性,并且利于维护,但是实在是太大了,这点就不如rsync……可能这就是众口难调吧

作者: yafeng   发布时间: 2010-05-13

引用:
作者: yafeng
我认为楼主的想法很好,期待逐渐完善起来,比如一些方便定制的类似gentoo的use等方便定制的特性,gentoo的portage确实复杂了,期待楼主成功。btw:楼主的口味挺适合偶的。个人感觉造轮子也是挺必要的。天朝缺的就是造轮子的人……
谢谢支持
弦歌的目的是能长久使用自己构建的LFS系统. 最重要的, 我认为是包管理器和编译脚本的接口。只要接口确定了,可用写各种各样的包管理器,和各个软件的编译脚本。这个接口不能太复杂,能支持依赖关系描述和编译选项就可以,最好是简化Gentoo的ebuild接口...

作者: swordhui   发布时间: 2010-05-14

引用:
作者: yafeng
baselayout……
gentoo才有的吧,嘻嘻。虽然就是个目录结构。
其实看了下脚本结构,看着像ebuild的简化版,其实我觉得倒不如直接借鉴arch的pkgbuild用着舒服(功能特性跟PKGBUILD差不多,可以直接利用Arch现成的ABS库,毕竟打包是个艰苦而需要人手的工作)。

实际上我感觉从使用角度上来说LFS确实需要一个类似的包管理器的。现在感觉Arch的pacman+ABS算是比较理想的包管理器,就是pacman包含的makepkg自动化功能稍差。

其实除了portage,Arch都比gentoo优雅的多,不过portage的优势又实在太大……

还有就是包管理用git固然有先进性,并且利于维护,但是实在是太大了,这点就不如rsync……可能这就是众口难调吧
我本来想尝试一下Arch的,后来看它不支持手动安装就放弃了。后来在google上搜索补丁的时候,偶尔看到了Arch的编译脚本...和弦歌用的简化ebuild脚本有惊人的相似... Arch支持从源码安装否?

作者: swordhui   发布时间: 2010-05-14

arch默认是二进制安装的,但提供了abs构建系统,也就是提供了整个系统的pkgbuild脚本,理论上,可以用makepkg命令来手动编译所有的包,有人称之为多人协作搞得一个lfs系统……
比如我想编译bash,我就到abs的bash目录下,执行makepkg,abs系统就自动下载bash的源码,补丁,并编译成二进制包。可以用pacman来安装/管理了。

作者: yafeng   发布时间: 2010-05-14

做个记号,向楼主学习!!!
愿楼主也能像Daniel Robbins一样!

作者: luozhenwu   发布时间: 2010-05-17

引用:
作者: luozhenwu
做个记号,向楼主学习!!!
愿楼主也能像Daniel Robbins一样!
不敢当,没任何独创的东西,只是想把现有的弄简单些,易懂些,用着舒服些。用了这么久开源软件,顺便也为开源世界做点贡献。

就目前的功能对我工作来说已够用了,这个项目是否能继续存在下去,还看大家能否参与进来

存在则合理,不存在则不合理,让时间验证吧

作者: swordhui   发布时间: 2010-05-17

Need U help
http://code.google.com/p/xiangelinux/wiki/NeedYouHelp

作者: swordhui   发布时间: 2010-05-17

文档更新: 编译脚本的写作方法
http://code.google.com/p/xiangelinux/wiki/xglibs

作者: swordhui   发布时间: 2010-05-25

lz我支持你,

你最开始列出的那些feature感觉很好,

我感觉你对软件包管理问题考虑的很深入。

作者: fender010   发布时间: 2010-05-29

lz是不是给这个项目起个好点的名字呢?

还有英文的。

作者: fender010   发布时间: 2010-05-29

引用:
作者: fender010
lz是不是给这个项目起个好点的名字呢?

还有英文的。
我随便找了个使用比较少的名字,有候选的话可以讨论讨论

作者: swordhui   发布时间: 2010-05-30

状态更新: 到目前为止有105人关注,有1个用户。

作者: swordhui   发布时间: 2010-06-07

强烈支持,已经回来了,最近有点感冒,眼镜好像有问题,用得不爽,等状态恢复

作者: pinkme005   发布时间: 2010-06-08

支持。。先研究研究。。

作者: muses2006   发布时间: 2010-06-08

引用:
作者: pinkme005
强烈支持,已经回来了,最近有点感冒,眼镜好像有问题,用得不爽,等状态恢复
期待md5校验代码中

作者: swordhui   发布时间: 2010-06-08

引用:
作者: muses2006
支持。。先研究研究。。
欢迎试用,期待提交补丁或bug列表

作者: swordhui   发布时间: 2010-06-08

很不错!

不过还是习惯Arch 的PKGBUILD —— 太简单了。。。

我现在有一套完整的 基于 arch的 制作archlive的脚本 和 相关的安装脚本 详细见 http://archlive.googlecode.com
同时也有相应特别定制的软件仓库 http://archlive-pkg.googlecode.com


希望楼主先可以编译写 i686或者x64的通用包, 我来做个live系统。。。

作者: carbonjiao   发布时间: 2010-06-08

引用:
作者: carbonjiao
很不错!

不过还是习惯Arch 的PKGBUILD —— 太简单了。。。

我现在有一套完整的 基于 arch的 制作archlive的脚本 和 相关的安装脚本 详细见 http://archlive.googlecode.com
同时也有相应特别定制的软件仓库 http://archlive-pkg.googlecode.com


希望楼主先可以编译写 i686或者x64的通用包, 我来做个live系统。。。
http://code.google.com/p/xiangelinux/wiki/LiveUSB 大概描述了构建LiveUSB的过程,我据此制作了一个i686的Stage1 LiveUSB, 已通过启动测试. 如果能做一个LiveCD, 对项目非常有帮助

作者: swordhui   发布时间: 2010-06-09

热门下载

更多