在虚拟环境中构建Galaxy事物
项目描述
Starforge:在虚拟化中构建Galaxy事物
您可以使用Starforge做什么
构建Galaxy Tool Shed依赖项
构建Python Wheels(例如,用于Galaxy Wheels服务器)
重新构建Debian或Ubuntu源包(进行修改)
这些事物将在Docker中构建。此外,轮子还可以在QEMU/KVM虚拟化系统中构建。
文档可以在starforge.readthedocs.org找到
Starforge由Galaxy项目和社区维护。项目贡献者的列表可以在GitHub上找到。
快速开始
对于所有类型的构建,首先安装Docker。
工具库依赖项
根据可用的包配方,可以使用两个脚本
$ ./build.sh <package>
$ python build.py <package> --version 1.0
build.sh 是较旧格式,它简单地使用单个 <package>build.sh 文件,如Atlas。 build.py 是较新格式,它使用 <package>/<version>/build.yml 中的yaml元数据。
Galaxy包的基础镜像为Debian Squeeze。这有望产生可用于Galaxy目标平台(撰写本文时:CentOS 6+、Debian 6.0+、Ubuntu 12.04+)的二进制文件。
$ ./build galaxy <package>
$ python build.py <package>
若要针对不同的操作系统构建包,您可以使用–image标志,例如:
$ ./build <dist>[:tag] <package>
$ python build.py <package> --image <dist>[:tag]
例如:
$ ./build ubuntu:trusty nginx
$ python build.py nginx --image debian:squeeze
构建所有内容
存在一个单独的build-all.sh脚本,允许您使用它们首选的构建机制构建所有包。
关于两个构建脚本的说明
build.py
<version>选项是可选的,默认值为字符串'default',这对于没有特定版本更改的配方很有用(例如,bcftools 1.0的构建与1.2相同)。
Python Wheel
Starforge可以在Docker(在Linux下)和QEMU/KVM(在Mac OS X下)下构建纯Python和C扩展Python模块的wheel。为此,您需要使用pip install starforge安装Starforge(最好在Python虚拟env中安装)或使用python setup.py install从源代码安装。
要使用的Docker(和QEMU)镜像在starforge/config/default.yml中指定。要修改此文件,将其复制到$XDG_CONFIG_HOME/galaxy-starforge/config.yml($XDG_CONFIG_HOME默认为~/.config)。示例文件wheels/build/wheels.yml用于确定可以构建的wheel及其构建规则。要使用此文件,请使用--wheels-config参数调用starforge wheel或将wheels.yml复制到$XDG_CONFIG_HOME/galaxy-starforge/wheels.yml。
可以使用starforge wheel <package>构建wheel,例如:
$ starforge wheel pycrypto
$ starforge wheel --no-qemu pysam # only build on docker
有关使用Starforge命令行界面的帮助,请参阅starforge --help的输出。
拉取请求wheel构建器
对Starforge仓库的GitHub上的拉取请求,若修改wheels/build/wheels.yml,则可以由Galaxy Jenkins服务自动在专门的Starforge构建服务器上针对所有指定的平台进行构建。要使用,请相应修改wheels.yml并创建一个拉取请求。任何Galaxy Committers组成员都可以授权Jenkins启动构建。如果构建失败,您可以修改拉取请求,并且可以触发进一步的构建。
关于镜像的说明
Linux
构建wheel时使用的镜像已上传到Starforge Docker Hub仓库,并将按需拉取。通常您只会使用manylinux1-wheel和manylinux1-32-wheel镜像,这些是manylinux基于CentOS 5的镜像,通常会产生适用于所有Galaxy支持平台的wheel。
您还可以使用full-wheel图像集产生“特定平台”的wheel。如果您想要链接到非标准库的特定发行版的系统版本而不将其捆绑到wheel中,这将很有用。
Mac OS X
由于法律原因,不提供Mac OS X镜像。有关详细信息,请参阅osx文档。
历史
0.4.0 (2018-04-25)
0.3.6 (2018-04-25)
Python 3兼容的setup.py包装。 Pull Request 171
修复pip 10的问题。 c516bae
0.3.5 (2017-10-01)
支持为wheel构建提供xz/lzma tarballs Pull Request 166
0.3.4 (2017-09-12)
对auditwheel和delocate提供原生支持。(#160)
0.3.3 (2017-09-08)
默认情况下,不要使用wheel子命令构建sdists。(#155)
0.3.2 (2017-09-08)
修复了在构建具有多个源时设置错误工作目录的bug。(#154)
0.3.1 (2017-09-08)
修复了在macOS上使用sudo和brew install的bug。(#151)。
在OS X上短路平台缓存(#150)。
0.3 (2017-01-10)
删除对“Galaxy”wheel分叉的依赖,这使得安装变得更加容易。“平台特定的”wheel仍然可以构建。
在构建Docker镜像时,从本地源安装Starforge而不是从PyPI或Github安装。
0.2.1 (2016-05-27)
对缓存的tarball名称进行不区分大小写的比较(uWSGI的项目名称是uWSGI,但其源tarballs命名为uwsgi-*)。 7672547
0.2 (2016-05-19)
添加了对构建manylinux1 wheels的支持。 0dbecb7
0.1.1 (2016-01-20)
0.1 (2016-01-12)
将wheel构建脚本重新实现为一个库和starforge命令行
编写了一些文档
版本低于0.1
最初是Galaxy docker-build,后来更名为Starforge,但作为一个由不连续的shell脚本、Python和YAML组成的集合,用于构建Galaxy Tool Shed依赖项,以及重建带有修改的Debian和Ubuntu源包(这本身来自一个创建用于通过Vagrant和Ansible进行相同操作的项目,称为vadebuildsible)。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
starforge-0.3.6.tar.gz的散列
算法 | 哈希值 | |
---|---|---|
SHA256 | 1b31b563583bdd12270b745aa86b7cd84c3716b364f0ac67f4bb397f6126dd5e |
|
MD5 | e427097a5357679391b8f5fc04ac7815 |
|
BLAKE2b-256 | 61228845091eba84a7288fd4865d2b53c38c990b66ff12c2d14aea32d8b3e41a |
starforge-0.3.6-py2-none-any.whl 的哈希值
算法 | 哈希值 | |
---|---|---|
SHA256 | 4bf2f71ea3e8353d574b77b64a46d5b577503131daff191af5214c15834b3980 |
|
MD5 | 2d25fe2b70bcb7bf5e8894404f811df0 |
|
BLAKE2b-256 | bcbc8d38476429c39a028904dddc27678bd24e6b502544b8e8e989789af30470 |