ebuild 中的软件包依赖
Gentoo 的软件包管理器——Portage 中最有用的特性之一就是能够灵活的解决软件包的依赖问题,因为它解决了其他发行版的包管理系统不好解决的一些问题。本文只关注如何在 ebuild 文件中设定软件包的几种常规性依赖。至于 Portage 究竟有多么强大,可认真阅读 Portage 指南。 隐性的系统依赖在 Gentoo 中,所有的软件包在编译及运行时期都会存在一种隐性的依赖,被依赖的软件包都居于 若想看一下这些幕后的英雄,下面这条命令可使之浮出水面: root # emerge --pretend @system 软件包构建期依赖在 ebuild 文件中,可以通过 其他 Linux 发行版通常不需要设定软件包构建期间的依赖关系,因为它们是直接发布已经构建好的软件包,即特定版本的源码包的编译结果。 软件包运行时依赖将软件源码包的编译结果安装到系统中后,可以将此刻的状态视为软件已经安装至系统中,但是在运行软件的期间,可能还是需要其他软件包的支持,这就是软件包运行时依赖。这种依赖,也是大部分 Linux 发行版都致力解决的问题。 在 ebuild 文件中, 如果确定软件包的运行时依赖与构建期依赖相同,那么直接将 示例现在来解决上一次 oce-9999.ebuild 中的遗留问题,即 OCE 包的构建期依赖与运行时依赖。 能否为某个软件包设定完备的依赖关系,主要是凭借自己对这个软件包构建环境的熟悉程度。因此,这里面不存在什么规律。现在,我对 OCE 包的构建环境也不是很熟悉,但是好在 Gentoo 官方的 Portage 树中有 OpenCascade 的 ebuild。鉴于 OCE 项目本质上是 OpenCascade 项目的 fork,二者构建环境的依赖应该存在高度的相似性。因此,我决定从 OpenCascade 的 ebuild 中获得一些依赖信息。 我从 # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI=5 inherit git-2 cmake-utils DESCRIPTION="This project aims at gathering patches/changes/improvements from the OCC community over the latest release" HOMEPAGE="https://github.com/tpaviot/oce" EGIT_REPO_URI="git://github.com/tpaviot/oce.git" LICENSE="LGPL" SLOT="0" KEYWORDS="~amd64" DEPEND="media-libs/ftgl virtual/glu virtual/opengl x11-libs/libXmu" RDEPEND="${DEPEND}" src_configure() { local mycmakeargs=( -DOCE_INSTALL_PREFIX=/usr ) cmake-utils_src_configure } 下一步的目标目前,oce-9999.ebuild 还无法支持 USE 旗标(USE Flag),这意味着这个 ebuild 的用户无法在外围通过 USE 标签来定制 oce 软件包的功能。鉴于 USE 标签是 Portage 系统颇引以为豪特性,所以 oce-9999.ebuild 如果不支持这一特性,那就太遗憾了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |