这篇文章总结了我的痛苦,但最终成功(只是偶然)的方式来构建自己的conda包 netgen网格化工具与Python接口。由于tpaviot,我找到了netgen构建的recipe。 将存储库克隆到'netgen-conda'文件夹后,我运行了:
conda build netgen-conda/netgen-6.2-dev
报告“不满意的依赖”:'oce','gcc-5','binutils'。 所以我试着自己安装这些软件包。遗憾的是,文档并没有强调“conda build”使用自己的临时环境这一重要事实,因此安装(see)的内容并不重要。然而,即使手动安装'gcc-5'和'binutils'也几乎是不可能的。
其他新手的提示:在我了解详细信息about channels后,很多问题都消失了。
首先尝试从'salford_systems'频道suggested by anaconda安装'gcc-5'和'binutils':
conda install -c salford_systems binutils gcc-5
但结果是:
ERROR conda.core.link:_execute_actions(337): An error occurred while installing package 'salford_systems::gcc-5-5.3.0-0'.
LinkError: post-link script failed for package salford_systems::gcc-5-5.3.0-0
running your command again with
- V will provide additional information
location of failed script: /home/jb/miniconda3/envs/test/bin/.gcc-5-post-link.sh
使用详细输出('-v')不再提供信息。我还对以下事实感到困惑:脚本在给定路径上不存在(可能自动删除)。 根据目前的经验,我承认可以从'-vv'输出(reported issue)挖出问题的原因。经过一番尝试,我发现只有这样 安装两者是首先将'gcc-5'安装到干净的环境中,然后安装'binutils'。因为'conda build'安装了所有东西 从头开始,没有办法指定我被卡住的已安装软件包的顺序。
困扰我的另一个问题是'conda build'长前缀黑客。由于未知原因,他们使用极长的前缀作为辅助文件夹 这导致了各种各样的问题。我遇到过三个这样的问题:
最后,我发现不需要依赖'binutils'并成功构建包:
conda build --prefix-length 70 -c salford_systems -c conda-forge -c dlr-sc netgen-conda/netgen-6.2-dev
(开放式问题)摘要: