跳转到主要内容

构建软件包

项目描述

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 查看散列)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面