我正在尝试构建一个包,由Linux中的离线conda环境来管理。我正在和py4j做一次模拟跑步。
在我的在线构建服务器上:
py4j食谱py4j-0.8.2.1.tar.gz)在我的脱机傀儡服务器上:
condabuildpy4j− conda install –use-local py4j$ conda index linux-64conda 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_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复制到/srv/www/yum/anaconda_pkgs/linux-64中的自定义回购(通道)中
我仍然不能从主机或puppet agent -t中执行puppet agent -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发布于 2015-02-16 17:20:08
--use-local只搜索conda-bld/linux-64频道。如果将包移动到另一个本地通道,则需要将其作为一个~/.condarc channels添加到file:// url中。
每当您将包添加到本地回购时,都需要在该目录上运行conda index。这将重新生成repodata.json文件。
发布于 2015-02-16 17:23:51
我将回答您有关各种json文件的问题,但请注意,您真的不需要关心这些文件中的任何一个。
./envs/_test/conda-meta/py4j-0.8.2.1-py27_0.json
这是构建过程中的残余。构建包后,将其安装到_test环境中,以便可以运行meta.yaml的test部分中的操作。每个环境都有一个conda-meta目录,其中包含安装在该环境中的每个包的元数据。
./pkgs/cache/ef2e2e6cbda49e8aeeea0ae0164dfc71.json
pkgs目录中的所有内容都是一个缓存。这是通道repodata的本地缓存,因此conda在“获取包元数据”时不需要重新下载它,如果它没有更改的话。
./pkgs/py4j-0.8.2.1-py27_0/info/replpe.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
这与第一个类似。它是安装到根环境中的包的环境元数据。
https://stackoverflow.com/questions/28533837
复制相似问题