https://devmanual.gentoo.org/general-concepts/dependencies/index.html
http://www.gentoo.org/doc/ja/policy.xml
http://www.atzm.org/gentoo/ebuilds2.html
http://insnvlovn.blogspot.jp/2013/08/memo-hhvm.html
hhvmの依存パッケージをemerge --depcleanで消したくない。
# /var/lib/portage/world(emerge --oneshot => emerge --noreplace)登録では
# 後で何でインストールした?となることがある。
# 全部libevent-1.4.14b-stableみたいにソースから入れれば良かったのでは?
$ /usr/local/hhvm/2013-08-11/hiphop-php/hphp/hhvm/hhvm --version HipHop VM v2.1.0-dev (rel) Compiler: heads/master-0-g67ec381c907f1cb0c20fd7ae39bac594cce5260f Repo schema: c1d8348ed4576c1d8bea8d67f007c715860f7c6d
そんな時はvirtualパッケージを登録する。
# もっと楽にできたような気がする。コマンド的な何かで一発登録。
$ grep /usr/local/portage/test /etc/portage/make.conf PORTDIR_OVERLAY="${PORTDIR_OVERLAY} /usr/local/portage/test" mkdir -p /usr/local/portage/test/virtual/hhvm cd /usr/local/portage/test/virtual/hhvm cp -i /usr/portage/virtual/acl/acl-0-r1.ebuild hhvm-2.1.0.ebuild
RDEPENDだけ修正する。
# ={$packagename}-{$version} でバージョン固定で依存("="のかわりに"~"で-r1とかOK.)
# {$packagename}[useflag1,useflag2] で依存パッケージにuseflagを要求。
# もっと細かく指定可能なのでマニュアルを閲覧する。
# 個人の用途であれば説明とか修正しなくても動く。
# たまたま元から入っていた依存パッケージもあるので、それも書かないと後で動作しなくなる。
# バージョン書いてないのにもバージョン指定があったような気がした。インストール時のエラーメッセージで。
$ cat hhvm-2.1.0.ebuild # Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/virtual/acl/acl-0-r1.ebuild,v 1.3 2013/03/22 16:03:21 jer Exp $ EAPI="3" DESCRIPTION="Virtual for acl support (sys/acl.h)" HOMEPAGE="" SRC_URI="" LICENSE="" SLOT="0" KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~ia64-linux ~x86-linux" IUSE="" DEPEND="" RDEPEND=" dev-libs/boost dev-cpp/glog[unwind] =dev-libs/libmemcached-0.39 media-libs/gd[jpeg,png] dev-cpp/tbb net-nds/openldap =dev-libs/libdwarf-20120410 net-libs/c-client "
インストールする。
ebuild hhvm-2.1.0.ebuild manifest sudo emerge -avt hhvm
確認する。
$ grep hhvm /var/lib/portage/world virtual/hhvm
チェックする。
逆にuseflagがあってはいけない、と変更する。
... dev-cpp/glog[-unwind] ...
インストールはしないが、どうなるか確認する。
$ ebuild hhvm-2.1.0.ebuild manifest $ sudo emerge -avtp hhvm The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by virtual/hhvm-2.1.0::x-test # required by hhvm (argument) >=dev-cpp/glog-0.3.3 -unwind These are the packages that would be merged, in reverse order: Calculating dependencies ... done! [ebuild R ] virtual/hhvm-2.1.0::x-test 0 kB [ebuild R ] dev-cpp/glog-0.3.3 USE="-gflags -static-libs {-test} -unwind*" 0 kB Total: 2 packages (2 reinstalls), Size of downloads: 0 kB
戻す。
$ grep unwind hhvm-2.1.0.ebuild dev-cpp/glog[unwind] $ ebuild hhvm-2.1.0.ebuild manifest $ sudo emerge -avtp hhvm These are the packages that would be merged, in reverse order: Calculating dependencies .... done! [ebuild R ] virtual/hhvm-2.1.0::x-test 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB
0 件のコメント:
コメントを投稿