跳转到主要内容

在虚拟环境中构建Galaxy事物

项目描述

Starforge Logo

Starforge:在虚拟化中构建Galaxy事物

您可以使用Starforge做什么

这些事物将在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-wheelmanylinux1-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)

0.3.5 (2017-10-01)

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上使用sudobrew 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)

  • 仅在wheel构建期间运行prebuild(而不是sdists)过于天真,因为这将阻止在prebuild操作中更改sdists的版本号(prebuild操作的常见用途)。相反,允许有单独的wheelsdistall prebuild操作。撤销了9008c57的行为。问题 64

  • 从Github安装Galaxy pip而不是wheels.galaxyproject.org,以便在发布之前用新的Galaxy pip版本构建Starforge镜像。97b4ba4

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

上传时间

构建分发

starforge-0.3.6-py2-none-any.whl (35.8 kB 查看散列)

上传时间 Python 2

由以下支持

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