构建软件包
项目描述
DLRN按照OpenStack上游提交流构建和维护yum仓库。(DLRN不是一个缩写或缩写词,可以发音为“dee el arr en”。)
文档可在http://dlrn.readthedocs.org/en/latest/找到
设置
# yum install git createrepo python-virtualenv mock gcc \
redhat-rpm-config rpmdevtools httpd libffi-devel \
openssl-devel yum-utils
将打算运行的用户添加到mock组中,然后重新登录。
$ git clone https://github.com/softwarefactory-project/DLRN.git
如果您想提供构建的软件包和状态报告,请启用httpd服务,然后在服务器配置中添加一个部分将URL映射到数据目录,或者创建一个符号链接
# systemctl start httpd
# cd /var/www/html
# ln -s <datadir>/repos .
准备
$ cd DLRN
$ virtualenv ../dlrn-venv
$ . ../dlrn-venv/bin/activate
$ pip install --upgrade pip
$ pip install -r requirements.txt
$ python setup.py develop
如有必要,编辑projects.ini。
初始化
有些项目需要其他项目先构建。因此,在初始化存储库时,使用特殊选项 --order 来按照 spec 文件中 BuildRequires 和 Requires 字段计算出的顺序进行构建。
$ dlrn --order
使用此特殊选项时,在 specs 中定义了一个特殊变量 repo_bootstrap,其值为 1。如果需要,可以使用此变量来打破包之间的依赖循环。例如
%if 0%{?repo_bootstrap} == 0
BuildRequires: package-with-circular-dependency
%endif
运行
一旦所有包都已构建一次,就可以根据提交的时间戳顺序构建包。
$ dlrn
故障排除
如果在模拟构建过程中中断 dlrn,可能会出现错误
OSError: [Errno 16] Device or resource busy: '/var/lib/mock/dlrn-fedora-x86_64/root/var/cache/yum'
解决方案是作为 root 清除遗留的绑定挂载
# umount /var/lib/mock/dlrn-fedora-x86_64/root/var/cache/yum
其他要求
如果 git clone 操作对某个包失败,DLRN 将尝试使用 sudo 删除源目录。请确保运行 DLRN 的用户可以无密码运行 rm -rf /path/to/dlrn/data/*,否则 DLRN 将无法处理新的提交。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
DLRN-0.26.1.tar.gz (577.0 kB 查看散列)
构建分布
DLRN-0.26.1-py3-none-any.whl (206.5 kB 查看散列)