Ylmf OS 编译系统详Ylmf OS 编译系统详解.doc
《Ylmf OS 编译系统详Ylmf OS 编译系统详解.doc》由会员分享,可在线阅读,更多相关《Ylmf OS 编译系统详Ylmf OS 编译系统详解.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Ylmf OS 编译系统详解YLmf OS 编译系统一、YBS 是什么?YBS 指的是 Ylmf OS 的打包系统 (Ylmf OS Build System)。这是一种用于从源代码编译软件的类 ports 系统。在 Ylmf OS 中,yget 专门管理二进制软件包,而 YBS 则专门负责把源代码编译,并打包成可安装的 ypk 软件包。Ports 是 FreeBSD 使用的一种系统,它对源码包进行下载、解压缩、打补丁、编译和安装等一系列操作。一个 port 包含一些文件来指导源码的下载和编译安装,系统会自动完成操作。YBS 由一个目录树构成,位于 /var/ybs/pbslib,它包含许多子
2、目录,每个子目录都属于某一类别,都以相应的可创建的软件包命名。此目录并不包含软件包或源代码,相对的它包含一个 pbs 文件和 files 目录。Package Build Script (简称 pbs)是一个脚本文本文件(包含对编译和打包过程的指示、包含源码包的下载地址等),files 目录则存放额外的一些文件,例如补丁文件等。YBS 最重要的部分就是 pbs 文件。1、获得 YBS 树以 root 身份运行1. #ybs -sync复制代码可以从服务器同步 YBS 树,git 管理。有了 YBS 树,用户可以自己定制,从源代码编译打包软件。YBS 包含以下结构和工具的完整工具箱:YBS 目录
3、树: /var/ybs/pbslib,包含所有软件的 pbs 文件和相关文件ybs 命令: 读取 pbs 文件,编译源代码并创建 ypk 包。pbs 文件: 记录有创建软件包的指示和源代码地址。2、YBS是用来做这些的:从源代码编译 Ylmf OS 官方源里没有的软件,当然首先要编写 pbs 文件。定制现有的软件包以满足你的特定需求,修改已存在的 pbs 文件,通常是开启或禁用相关配置选项用其它编译器的 flags 重新构建整个系统 。干净地编译安装你自己定制的内核,只需要修改内核的 pbs 文件。当然,你也可以按照传统的方式 configure/make/make install 来安装软件
4、,但是 ybs 可以使这个工作实现自动化。3、全局编译环境 /etc/ybs.conf 指明环境变量和编译器的 flags。1. $ cat /etc/ybs.conf 2. CC=gcc3. CXX=g+4. #CFLAGS=-march=native -mtune=native -O2 -fomit-frame-pointer -pipe5. CFLAGS=-march=i686 -mtune=i686 -O2 -pipe # 6. CXXFLAGS=$CFLAGS7. MAKEOPTS=-j6 # make 的进程数8. #YPINST_PREFIX=-prefix=/usr9. YPI
5、NST_PREFIX= 10. ACCEPT_REPO=stable # 分支 11. #YP_I18N=en zh_CN # 仅需要的语言,其它语言将会被丢掉12. YPPATH_DIST_URI= # 备用的源代码下载服务器 13. AUTO_INSTALL=yes # 编译打包成功后自动安装到系统14. YPPATH_PACKAGE=/var/ypkg/packages # 打包好的 ypk 包存放地址复制代码二、 pbs 文件介绍:1、pbs 文件的位置和命名规则是固定的。以 leafpad 例, 运行:1. # ybs -w leafpad2. /var/ybs/pbslib/app
6、-editors/leafpad/leafpad_0.8.18.1.pbs复制代码app-editors 软件类别leafpad 软件名leafpad_0.8.18.1.pbs 软件名_主版本号.pbs leafpad_0.8.18.1-ylmf1.pbs 软件名_主版本号-修正版本号.pbs2、简单的 pbs 文件:以 leafpad 例, 运行:1. $ cat /var/ybs/pbslib/app-editors/leafpad/leafpad_0.8.18.1.pbs2. #3. # YLmf_OS package build script4. #5.6. DESCRIPTION=G
7、TK+ based simple text editor.7. HOMEPAGE=http:/tarot.freeshell.org/leafpad/8. LICENSE=GPL-29. PACKAGER=10.11. SRC_URI=http:/savannah.nongnu.org/download/$N/$N-$V$R.tar.gz12.13. RDEPEND=atk cairo expat fontconfig freetype gcc glib2 glibc gtk+ libpng libX11 libXau libxcb libXcomposite libXcursor libXd
8、amage libXdmcp libXext libXfixes libXi libXrandr libXrender pango pixman zlib14. BDEPEND=libpng15.16. pbs_unpack() 17. ypkg_unpack18. 19.20. pbs_config() 21. ypkg_patch desktop-i18n.patch22. YPB_CONFIG+=-disable-print23. ypkg_config24. 25.26. pbs_build() 27. ypkg_make28. 29.30. pbs_install() 31. ypk
9、g_mkinstall32. 复制代码运行:1. #ybs -s leafpad 复制代码就可以查询到运行:1. #ybs -i leafpad 复制代码开始编译和打包 leafpad 2、ybs 可以使编译打包工作自动化,主要原因是 pbs 文件的编译规则。下面学习更为复杂的 pbs 文件。/var/ybs/pbslib/template.pbs 是一个模板,里面有详细的各个规则。1. $ cat /var/ybs/pbslib/template.pbs复制代码#1. # YLmf_OS package build script2. #复制代码# 简单的描述,推荐用英文1. DESCRIPT
10、ION= 复制代码# 软件主页1. HOMEPAGE=复制代码# 软件分支,testing 或者 stable, 默认是 stable1. REPO=复制代码# 许可协议1. LICENSE=GPL复制代码# 优先级,设置为 required,则在软件中心无法删除1. PRIORITY=required复制代码# 打包者,写上自己的名字和联系方式1. PACKAGER=Ylmf OS Developers 复制代码# 源代码包下载地址。# $N = 软件名, 例如 leafpad# $V = 主版本号, 例如 0.8.1# $R = 副版本号,例如 0.8.1-rc1 中的 -rc1 支持以下
11、 url:1. SRC_URI=2. SRC_URI=3. SRC_URI=4. SRC_URI=git:/5. SRC_URI=git:/复制代码如果已经源代码包是自己手动压缩的,复制到 $YPPATH_SOURCE(/var/ybs/sources), 则可以按照以下方式写:1. SRC_URI= 2. SRC_URI=$N-$V.tar.bz2 复制代码#绝对路径1. SRC_URI=$DIR/$N-$V.tar.bz2 复制代码# 依赖关系 运行时依赖,ybs 会事先安装; yget install 处理二进制包时也会自动安装。1. RDEPEND= 复制代码推荐依赖,ybs 不处理;
12、 yget install 处理二进制包时会自动安装。1. RECOMMENDED= 复制代码编译依赖, ybs 会事先安装; yget install-dev 会安装,yget install 不处理1. BDEPEND= 复制代码可选依赖,这里只是起到一个记录的作用。1. OPTIONAL=a: support a 2. b: support b复制代码冲突依赖,ybs 会在编译安装成功之后自动删除冲突包,yget install 处理二进制包时也会自动删除1. CONFLICT= 复制代码# 记录一些注意事项1. NOTES=复制代码# 指定 desktop 和 icon 文件1. DE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Ylmf OS 编译系统详Ylmf 编译系统详解 编译 系统 详解
限制150内