构建由脱机conda/puppet环境管理的包的过程
我正在尝试构建一个由离线构建由脱机conda/puppet环境管理的包的过程,puppet,anaconda,conda,Puppet,Anaconda,Conda,我正在尝试构建一个由离线conda环境管理的包 在Linux中。我正在用py4j进行试运行 在我的联机生成服务器上: 我下载了py4j配方 并下载源代码发行版(py4j-0.8.2.1.tar.gz) 将配方和源分发复制到脱机傀儡 服务器 在我的脱机puppet服务器上: 调整配方以指向源发行版的副本 condabuildpy4j− conda安装–使用本地py4j $conda index linux-64 conda index linux-64将py4j配置写入repodata.json。
conda
环境管理的包
在Linux中。我正在用py4j
进行试运行
在我的联机生成服务器上:
py4j
配方py4j-0.8.2.1.tar.gz
)condabuildpy4j− conda安装–使用本地py4j
$conda index linux-64
conda index linux-64
将py4j
配置写入repodata.json
。我
可以看到py4j
位于repodata.json
中。还有一个
py4j-0.8.2.1-py27_0.json
在/opt/anaconda/conda meta/
我们有一个自定义频道映射到/srv/www/yum/anaconda\u pkgs/
$ cat .condarc
channels:
- http://10.1.20.10/yum/anaconda_pkgs/
我可以看到py4j
配置被添加到以下文件中:
./envs/_test/conda-meta/py4j-0.8.2.1-py27_0.json
./pkgs/cache/ef2e2e6cbda49e8aeeea0ae0164dfc71.json
./pkgs/py4j-0.8.2.1-py27_0/info/recipe.json
./pkgs/py4j-0.8.2.1-py27_0/info/index.json
./conda-bld/linux-64/repodata.json ./conda-bld/linux-64/.index.json
./conda-meta/py4j-0.8.2.1-py27_0.json
有人能解释一下这些json文件应该做什么吗
我还可以看到在中有一个repodata.json
和.index.json
/srv/www/yum/anaconda_-pkgs/linux-64
已更新但没有
py4j
的配置
我手动将我的py4j-0.8.2.1.tar.gz
复制到我的自定义repo中
(频道)在/srv/www/yum/anaconda_-pkgs/linux-64中
我仍然无法执行conda安装–从主机或服务器使用本地py4j
傀儡代理-t
。我得到以下信息:
err: /Stage[main]/Anaconda::Packages/Anaconda::Install_pkg[py4j]/Package[py4j]/ensure: change from absent to present failed: Execution of ‘/opt/anaconda/bin/conda install –yes –quiet py4j’ returned 1: Fetching package metadata: ..
Error: No packages found in current linux-64 channels matching: py4j
您可以使用在Binstar上搜索此软件包
binstar search -t conda py4j
——使用本地
仅搜索conda bld/linux-64
频道。如果将包移动到另一个本地频道,则需要将其添加到~/.condarc
频道
,作为文件://
url
无论何时向本地回购添加包,都需要在该目录上运行conda index
。这将重新生成repodata.json
文件。我将回答您有关各种json文件的问题,但请注意,您确实不需要关心这些文件
./envs/_test/conda meta/py4j-0.8.2.1-py27_0.json
这是构建过程中的遗留问题。构建包后,将其安装到\u test
环境中,以便可以运行meta.yaml
的test
部分中的操作。每个环境都有一个conda meta
目录,其中包含该环境中安装的每个包的元数据
./pkgs/cache/ef2e2e6cbda49e8aeeea0ae0164dfc71.json
pkgs
目录中的所有内容都是缓存。这是通道repodata的本地缓存,这样conda在“获取包元数据”时就不必重新下载它(若它并没有更改)
./pkgs/py4j-0.8.2.1-py27_0/info/recipe.json
同样,这是一个缓存。当p4js
包安装在任何地方时,它将被解压缩到pkgs
目录中。在包内部的info
目录中,是包的所有元数据。此文件是用于创建包的配方中的元数据。Conda没有在任何地方使用此元数据,只是为了方便起见才包含它
./pkgs/py4j-0.8.2.1-py27_0/info/index.json
这是包含在包本身中的包的元数据。这就是conda index
将用于创建repodata.json
的内容
./conda bld/linux-64/repodata.json
这是您构建的包的特殊频道的回购元数据(与--use local
一起使用的频道,由conda build
自动使用)
./conda bld/linux-64/.index.json
这是一个特殊的缓存文件,由conda index
内部使用
./conda meta/py4j-0.8.2.1-py27_0.json
这与第一个类似。它是您安装到根环境中的包的环境元数据。是
py4j-0.8.2.1.tar.gz
打字错误吗?它应该被称为py4j-0.8.2.1-py27_0.tar.gz
。