[再注:hwrepos已经停止维护,fedora.cn现在主要以yum仓库形式提供软件,fedora.cn的ybuild repository暂时只在开发者中使用,未来会以RPM形式发布
关于fedora.cn yum仓库:
http://www.linuxsir.cn/bbs/showthread.php?t=263806
]
ybuild system 0.1.0 & hwrepos 0.1 发布
0 简介
0.1 什么是ybuild system?
ybuild system是fedora cn(https://gro.clinux.org/projects/fedora/)的一个子项目,是一个用于构建RPM仓库的
工具集合。使用这个系统,你只需要拥有一个包含RPM spec模板(specin)文件和相应的补丁组成的目录树,就可以建
造出一组RPM来。同时,建造RPM过程中可以自动解决相应的依赖性问题。生成的RPM也可以通过yum提供的工具生成一
个yum仓库。
0.2 什么是hwrepos?
hwrepos = hellwolf's repository, 是第一个使用ybuild维护的仓库,用于ybuild初期的测试和开发用,其最终将
被fedora cn的repository所代替。
1 适用系统和依赖性
1.1 ybuild 0.1.0
ybuild由两个包组成:ybuild 和 perl-Ybuild, ybuild需要安装有perl-Ybuild和createrepo工具,perl-Ybuild
需要perl,perl-RPM2和perl-Expect。ybuild目前已在FC5上测试,但不保证其他版本FC的适用性。
1.2 hwrepos 0.1
hwrepos只适用于FC5
2 下载和安装
2.1 RPM-GPG-KEY
目前的RPM由hellwolf打包,RPM-GPG-KEY可以从下面的地址得到:
https://gro.clinux.org/scm/cvswe ... &cvsroot=fedora
将其另存为一个文件后,用rpm --import命令导入该文件即可。
2.2 ybuild 0.1.0
perl-RPM2, perl-Expect目前还不在FC5的官方仓库中(包含base,updates和extras),fedora cn提供了这两个
包的RPM:perl-Expect-1.17-1.fc5.y2.noarch.rpm,perl-RPM2-0.66-10.fc5.y9.i386.rpm。都可以从 https://gro.clinux.org/frs/?group_id=730 得到。
perl-Ybuild-0.1.0-1.fc5.y3.noarch.rpm和ybuild-0.1.0-1.fc5.y3.i386.rpm也可从https://gro.clinux.org/frs/?group_id=730 得到。
如还有其他依赖新问题都可从官方仓库用yum解决。
2.3 hwrepos 0.1
直接下载
https://gro.clinux.org/frs/download.php/1633/hwrepos-0.1.tar.gz
解压到任意目录即可。
3 使用简介
3.1 基本设置
默认的配置文件为/etc/ybuild.conf
最简化的配置:
{
reposdir => '/data/share/softwares/hwrepos/',
distfilesdir => '/data/share/softwares/distfiles/',
ybuilddir => '/data/share/softwares/ybuild/',
}
reposdir为repository的目录,这里使用的是hwrepos。
distfilesdir为下载的源代码所存放的目录。
ybuilddir为编译出来的RPM所存放的位置。
3.2 初始化repos
正确设置好/etc/ybuild.conf后,你要做的就是初始化repository。
你可以使用ybuild-initrepos工具。
$ybuild-initrepos
Are you sure to go on?(yes/no)yes
ybuild add app-text/acroread
Add packages in directory app-text/acroread
db in app-text/acroread is missing, updating
Add package: acroread
ybuild add app-text/chmsee
Add packages in directory app-text/chmsee
db in app-text/chmsee is missing, updating
Add package: chmsee-debuginfo
Add package: chmsee
......
3.3 查询命令
初始化成功后,运行
ybuild list
查看现在一共有多少RPM包可以创建
ybuild list -f
列出所有包,并且打印出该包目前的状态,比如:
[U I]chmsee
第一个标志表示包的数据是否最新,若最新则显示U
第二个标志表示包是否构造了最新的RPM,如果已经有了最新的RPM则显示B
地三个标志表示系统是否安装有最新的RPM,如果是则显示I
ybuild info chmsee
查看chmsee的相关信息
ybuild info -s chmsee
查看由模板生成的spec文件
3.4 建造RPM
在这之前首先要做一些设定。
因为建造和安装RPM过程中可能需要运行rpm或者yum进行包的安装,而这些命令是需要root权限的,为了能让普通
用户权限也能建造和安装RPM,ybuild模仿mock,用/usr/sbin/ybuild-helper来执行这些特权命令:
-rwsr-x--- 1 root ybuilder 5.6K Jul 3 16:53 /usr/sbin/ybuild-helper
从权限设置上,你可以看出,只要你是ybuilder组的用户(这个组在RPM安装过程中自动添加)就可以运行它。
为了把你加入到ybuilder组中,你可以运行
#gpasswd -a #username# ybuilder
或者使用工具system-config-users
加入到该组之后,重新登录(如果你在X,那么需要注销一下)后运行groups命令你会看到类似的输出:
users fuse ybuilder
说明你已经是ybuilder组的成员了。
好了,现在开始你就可以建造RPM了,这里用chmsee为例,看一下建造过程:
运行
就这么简单,中间有一次用yum安装软件,你需要按一下输入一次y来确认——你也可以通过build命令的-y选项来
跳过确认步骤。
3.5 安装RPM
执行
ybuild install chmsee
即可,同样依赖性问题会得到适当的解决。
3.6 卸载RPM
ybuild uninstall chmsee
这个命令执行的其实就是yum remove
4 其他命令简介
ybuild-mkmanifest, 生成ybuild包的Manifest文件,开发者使用。
ybuild-updateyumrepos, 该命令调用createrepos命令使你的ybuilddir成为一个yum仓库,你可以方便的维护自
己的yum仓库了。
ybuild-cleandistfiles, 清理不用的distfile
5 Bug报告
fedora cn还在建设中,目前你可以到
https://gro.clinux.org/tracker/? ... 730&func=browse
提交bug。
ybuild还在初步阶段,非常欢迎你的加入和测试:)
附录 hwrepos 0.1现有的包列表:
$ybuild list -d| sort
app-i18n/cce/
app-text/acroread/
app-text/chmsee/
CPAN/perl-Expect/
CPAN/perl-RPM2/
CPAN/perl-Ybuild/
media-fonts/acroread-fonts-chs/
media-fonts/fonts-chinese-extras/
media-libs/alsa-oss/
media-libs/win32codecs/
net-im/eva/
sys-base/fuse-convmvfs/
sys-devel/ybuild/ |