菜谱使用¶
很多时候一个包并不会在carbin_deps.txt文件中列出它的依赖项,或者它需要特殊的定义或自定义的cmake(参见:ref:custom-cmake)。菜谱可以简化这个过程,通过允许一个包使用一个简单的菜谱名称来安装,而不需要更新原始包源。
菜谱的格式¶
一个菜谱是一个包含 package.txt 文件和一个可选的 carbin_deps.txt 文件的目录。如果没有提供 carbin_deps.txt ,那么将使用包中的requirements文件,否则将使用菜谱中的requirements文件,而包的carbin_deps.txt将被忽略。
这两个文件遵循:any:requirements 中描述的格式。 package.txt 文件只列出一个包,这是要安装的包。carbin_deps.txt 列出要安装的依赖包,也可以引用其他菜谱。
所有菜谱目录都在``$CARBIN_PREFIX/etc/carbin/recipes/`` 目录下搜索。一个cmake包可以通过carbin安装额外的菜谱。
例如,我们可以为zlib构建一个简单的菜谱,这样我们就不必每次都记住url。通过添加文件 $CARBIN_PREFIX/etc/carbin/recipes/zlib/package.txt ,包含url,如下所示:
http://zlib.net/zlib-1.2.11.tar.gz
现在我们可以只用 carbin install zlib 来安装zlib。此外,我们也可以设置额外的选项。例如,如果我们想安装boost,我们可以写 $CARBIN_PREFIX/etc/carbin/recipes/boost/package.txt 来使用boost的cmake(参见 Boost):
http://downloads.sourceforge.net/project/boost/boost/1.62.0/boost_1_62_0.tar.bz2 --cmake boost
我们也可以将zlib作为boost的依赖项,通过编写一个列出zlib的 $CARBIN_PREFIX/etc/carbin/recipes/boost/carbin_deps.txt 文件:
zlib
所以,现在我们可以很容易地使用 carbin install boost 来安装boost,它也会自动安装zlib。
获取菜谱¶
菜谱可以通过git仓库来获取。例如,carbin-recipes 仓库维护了许多包的菜谱。可以通过以下命令轻松安装:
carbin install gottingen/carbin-recipes
这将克隆仓库到 $CARBIN_PREFIX/etc/carbin/recipes/ 目录下。然后可以使用 carbin install <package> 来安装包。
carbin-recipes 仓库中有多个分支,如 EA 有独立的分支,可以通过以下命令来安装:
carbin install gottingen/carbin-recipes@ea
如果你的包特殊的需要可以fork仓库,然后提交你的菜谱。