从鸡蛋列表创建nix表达式的构建方法

collective.recipe.nix的Python项目详细描述


collective.recipe.nix

这是一个从 一份建造鸡蛋的清单。这是正在进行的工作。请,contribute

最小的构建部分应该包括recipeeggs

[releaser]recipe=collective.recipe.nixeggs=zest.releaser[recommended]

配方生成三种表达式:

  • 基于mkderivation的[name].nix可用于nix shell和nix build
  • 基于build env的[name]-env.nix可用于nix build
  • 基于[name]-[package].nix的buildpythonpackage可用于nix env-i-f

对于像plone这样的大型项目,建议使用本地镜像包 index/find-links以避免配方解析时出现连接问题 每个包获取url信息。可能的补救措施包括设置 allow-from-cachetrue允许配方使用配置的构建 下载缓存(并创建file://url),或者只运行构建 再次借助配方创建的累积缓存 ([~/][.]collective.recipe.nix.cfg)。

已知问题:如果需求包在 setup_requires,必须使用 此配方的已传播生成输入选项。

配方选项

鸡蛋
要为其生成表达式的包列表
name
用于定义结果派生和 生成的文件名(默认为部件名)
前缀
为生成的输出设置前缀(或路径)的字符串(默认为工作 目录)
部分
基于MKDebug的表达式中现有的构建部分的列表 (默认为除当前节之外的所有节)
输出
筛选要生成的输出的完整生成表达式文件名列表 (默认为“无”以全部生成)
allow from cache
允许生成的表达式使用来自 构建下载缓存(默认为false
生成输入
来自nixpkgs的生成表达式的其他生成输入列表(将 可用于nix shell环境)或^{tt12}列表$ 为每个包的 buildPythonPackage-表达式
传播的生成输入
要插入其他映射的package=other.package映射列表 对软件包的要求(通常启用一些附加功能)
nixpkgs
>使用现有包的^ {tt15}$映射列表 从nixpkgs而不是生成自定义的buildPythonPackage(对于 像枕头一样的包装,需要额外的护理才能正确制作)
url
显式定义包的package=url#md5=hash映射列表 如果配方无法解析,请下载url和md5校验和 它自动

See the project repository for configuration examples.

通用示例

首先,用buildout定义./default.nix

with import <nixpkgs> {};
stdenv.mkDerivation {
  name = "myEnv";
  buildInputs = [
    libxml2
    libxslt
    pythonPackages.ldap
    pythonPackages.pillow
    pythonPackages.readline
    pythonPackages.zc_buildout_nix
  ];
  shellHook = ''
    export SSL_CERT_FILE=~/.nix-profile/etc/ca-bundle.crt
  '';
}

以及示例./buildout.cfg

[buildout]parts=releaser[releaser]recipe=collective.recipe.nixeggs=zest.releaser[recommended]

运行构建:

$ nix-shell --run buildout-nix

现在您应该可以使用以下推荐的插件运行zest.releaser:

$ nix-shell releaser.nix --run fullrelease

或者使用以下命令将zest.releaser安装到当前的nix配置文件中:

$ nix-env -i -f releaser-zest_releaser.nix

See the project repository for more configuration examples.

构建plone

的示例

再加上nixpkgs优化的构建版本(nixpkgs中提供),这个 配方可用于使用与nix中相同的buildout install构建nix派生 派生生成器(请参见生成的基于mkderivation的表达式 当前示例实现):

[buildout]extends=https://dist.plone.org/release/5-latest/versions.cfgparts=ploneversions=versions[instance]recipe=plone.recipe.zope2instanceeggs=Ploneuser=admin:adminenvironment-vars=
    PTS_LANGUAGES en
    zope_i18n_allowed_languages envar=/tmp[plone]recipe=collective.recipe.nixparts=instanceeggs=${instance:eggs}outputs=plone.nix[versions]Pillow=setuptools=zc.buildout=zc.recipe.egg=
$ nix-shell --run buildout-nix
$ nix-build plone.nix -o plone
$ plone/bin/instance fg

更改日志

1.0.3(2015-08-30)

  • 使用某些已知的设置更新预定义的传播生成输入需要 [数据库]

1.0.2(2015-07-28)

  • 修复在生成的nix exp中包含c.recipe.nix部分的问题表达式 [数据库]

1.0.1(2015-07-28)

  • 修复BuildOut不能包含“字符”的问题 [数据库]
  • 修复以从生成的派生中删除~/.installed.cfg

1.0.0(2015-07-26)

  • 第一次释放。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从servlet向所有登录用户发送数据   java为什么需要ScheduledExecutorService。shutdown()使用我100%的CPU吗?   用于计算ArrayList中重复项的java嵌套循环无法正常工作   如何获取使用audioinputstream java下载文件的进度   java Kurento复合网格记录   识别方法的java问题   java on Markerclick listener绘制路线并计算距离   java在API级别16上创建/生成R.id   java如何修复HQL查询中的“意外令牌”错误   Java创建损坏的ZIP文件   JavaGSON。如何将json对象转换为json数组?   java需要配置Spring安全性和Hibernate   Vowpal Wabbit的Java API?