[2010-08-09 13:37:12]
>>>[osx]
>>>[gentoo]
>>>[haskell]
Gentoo/Prefixでの話です
% emerge -uaDNv ghc
だとこんなエラーになりました
Configuring installPackage-1.0... cabal-bin: ghc version >=6.4 is required but the version of /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.10.4-r1/work/ghc-6.10.4/ghc/stage2-inplace/ghc could not be determined.
poratageでは無理なのかと思って,MacPortsで入れちゃいました.
% sudo port install haskell-platform
そのインストール中に
@peccul あー、失敗しますよ。MacのHaskell Platformいれて、USE=ghcboorstrap emerge ghc して、Haskell Platform消す感じで。でも、あと少しebuildもいじらないといけないです
Lundi on Twitter: "@peccul あー、失敗しますよ。MacのHaskell Platformいれて、USE=ghcboorstrap emerge ghc して、Haskell Platform消す感じで。でも、あと少しebuildもいじらないといけないです"
とのことで,portsから入れ始めて良かったみたい.でもなかなか終わらないので放置して寝た.
起きたら終わってたので,
% USE=ghcbootstrap emerge -uaDNv ghc
すると
cd extensible-exceptions && /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.10.4-r1/work/ghc-6.10.4/libraries/cabal-bin /usr/bin/ghc /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.10.4-r1/work/ghc-6.10.4/libraries/bootstrapping.conf 1.6.0.3 configure --distpref=dist-bootstrapping --with-compiler=/usr/bin/ghc --with-hc-pkg=/usr/bin/ghc-pkg --package-db=/Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.10.4-r1/work/ghc-6.10.4/libraries/bootstrapping.conf.tmp Configuring extensible-exceptions-0.1.1.0... cabal-bin: failed to parse output of 'ghc-pkg dump' m
ふむ.これがconfigureの失敗ね
@peccul あ、あとなんかどうやら configure あたりにmac用に patch あててますね。ちょっと整理して github に持ってきます。
Lundi on Twitter: "@peccul あ、あとなんかどうやら configure あたりにmac用に patch あててますね。ちょっと整理して github に持ってきます。"
では偉大なるなおたさんのrepositoryを使ってみようと思います.
http://github.com/naota/gentoo-prefix-overlay ほいよ。Gentoo prefix用のrepository作ったでごわす。emacs-vcs と ghc あたりがそれっぽく動いてみたりするでごわすよ。全部重度の自己責任で。
Lundi on Twitter: "http://github.com/naota/gentoo-prefix-overlay ほいよ。Gentoo prefix用のrepository作ったでごわす。emacs-vcs と ghc あたりがそれっぽく動いてみたりするでごわすよ。全部重度の自己責任で。"
なんでもlaymanというものでoverlayしちゃうみたい.
laymanって,非標準のportage treeをあたかも標準portageのように使える仕組みみたい.→laymanで新しいoverlayを使う - 落穂拾い
というわけで偉大なるなおたさんのREADMEに従ってoverlayしてみる
${EPREFIX}/etc/layman/layman.cfg の overlays のところに
http://github.com/naota/gentoo-prefix-overlay/raw/master/repository.xml をこんな感じでに追加するoverlays : http://www.gentoo.org/proj/en/overlays/repositories.xml
http://github.com/naota/gentoo-prefix-overlay/raw/master/repository.xmlそして layman -a naota-prefix すれば使えるはず。
naota/gentoo-prefix-overlay · GitHub
でも$EPREFIX/etc/laymanがなかったので
% emerge -uaDNv layman
最後に説明が出てた
* Compilation and optimization of Python modules for CPython 2.6 ... [ ok ]
* You are now ready to add overlays into your system.
*
* layman -L
*
* will display a list of available overlays.
*
* Select an overlay and add it using
*
* layman -a overlay-name
*
* If this is the very first overlay you add with layman,
* you need to append the following statement to your
* /etc/make.conf file:
*
* source /Users/peccu/Gentoo/var/lib/layman/make.conf
*
* If you modify the 'storage' parameter in the layman
* configuration file (/Users/peccu/Gentoo/etc/layman/layman.cfg) you will
* need to adapt the path given above to the new storage
* directory.
*
* Please add the 'source' statement to make.conf only AFTER
* you added your first overlay. Otherwise portage will fail.>>> Recording app-portage/layman in "world" favorites file...
* Messages for package app-portage/layman-1.3.3:
* You do not have dev-vcs/subversion installed!
* While layman does not exactly depend on this
* version control system you should note that
* most available overlays are offered via
* dev-vcs/subversion. If you do not install it
* you will be unable to use these overlays.
*
* Select an overlay and add it using
*
* layman -a overlay-name
*
* If this is the very first overlay you add with layman,
* you need to append the following statement to your
* /etc/make.conf file:
*
* source /Users/peccu/Gentoo/var/lib/layman/make.conf
*
* If you modify the 'storage' parameter in the layman
* configuration file (/Users/peccu/Gentoo/etc/layman/layman.cfg) you will
* need to adapt the path given above to the new storage
* directory.
*
* Please add the 'source' statement to make.conf only AFTER
* you added your first overlay. Otherwise portage will fail.
>>> Auto-cleaning packages...>>> No outdated packages were found on your system.
* GNU info directory index is up-to-date.
ふむふむ.
- layman -L
- 使えるoverlayの一覧
- layman -a name
- nameのoberlayを使えるようにする
- はじめてlaymanを使うなら,$EPREFIX/etc/make.confに追記しろと
source /Users/peccu/Gentoo/var/lib/layman/make.conf
- storageをいじったら,make.confの記述もあわせるんやで.
- 上のsourceの行を追加するのは,overlayを使えるようにしてからにしろと
- たしかにまだそのディレクトリにはmake.confなかった
- layman -a nameでmake.confを作るんかな
- subversionがインストールされてなくて,laymanでも使うことがあるから必要ならインストールしてね
- リポジトリを更新するのはlayman -s ALL <<2010-08-10 00:24追記>>
こんなもんかな
というわけで偉大なるなおたさんのレポジトリを追加しますか
overlays : http://www.gentoo.org/proj/en/gentoo-alt/prefix/layman-prefix.txt
を
overlays : http://www.gentoo.org/proj/en/gentoo-alt/prefix/layman-prefix.txt http://www.gentoo.org/proj/en/overlays/repositories.xml http://github.com/naota/gentoo-prefix-overlay/raw/master/repository.xml
に変更したら,layman -Lが5個だったのに,238個になった笑
% layman -a naota-prefix * Binary /Users/peccu/Gentoo/usr/bin/git seems to be missing! Overlay type "git" not supported. Did you emerge dev-vcs/git?
あはは
% emerge -uaDNvj git
<<いまここ追記:2010-08-09 15:28>>
うまくいった
% layman -a naota-prefix
これで/Users/peccu/Gentoo/var/lib/layman/make.confができたので,
% echo 'source /Users/peccu/Gentoo/var/lib/layman/make.conf'>>$EPREFIX/etc/make.conf
% emerge -uaDNvj ghc These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-lang/ghc-6.12.3 USE="-bash-completion -binary -doc -ghcbootstrap" 119,892 kB [1] [ebuild N ] app-admin/haskell-updater-1.1.0.0 23 kB [1] Total: 2 packages (2 new), Size of downloads: 119,914 kB Portage tree and overlays: [0] /Users/peccu/Gentoo/usr/portage [1] /Users/peccu/Gentoo/var/lib/layman/naota-prefix Would you like to merge these packages? [Yes/No] y >>> Verifying ebuild manifests !!! A file listed in the Manifest could not be found: /Users/peccu/Gentoo/var/lib/layman/naota-prefix/dev-lang/ghc/files/ghc-apply-gmp-hack~
まさかのバックアップファイル?
~/Gentoo/var/lib/layman/naota-prefix/dev-lang/ghc/Manifestから以下の二行を削除
AUX ghc-apply-gmp-hack~ 2563 RMD160 3096051038c98ddae8aacb8f21e69f568534e40c SHA1 57c6024ed12aa351724ac6f21add4cd410b3937a SHA256 b6f6393a63d61d8c2d27bac8b87af197f4b9e0a8ec9873e3c02871ab633d6d2c ... MISC ghc-6.12.3.ebuild~ 13936 RMD160 f5caee9f301e0128fd14d399df2684b16595e3ad SHA1 519071d6cf599f9f6e20b75de39a8ec84a92ef1b SHA256 b0c75ade53deb6d768e2582a68c9bf66cf53e5528cd1f6f8cab5613986d0d148
% emerge -uaDNvj ghc
お,うまくいってるぽい
<<いまここ追記:2010-08-09 16:02>>
sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work/usr/bin/ghc-6.12.3: No such file or directory sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work//Users/peccu/Gentoo//usr/bin/ghc-6.12.3: No such file or directory sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work//Users/peccu/Gentoo//usr/bin/ghci-6.12.3: No such file or directory sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work//Users/peccu/Gentoo//usr/bin/ghc-pkg-6.12.3: No such file or directory sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work//Users/peccu/Gentoo//usr/bin/hsc2hs: No such file or directory sed: can't read /Users/peccu/Gentoo/var/tmp/portage/dev-lang/ghc-6.12.3/work//Users/peccu/Gentoo//usr/lib/ghc-6.12.3/package.conf.d/*: No such file or directory * ERROR: dev-lang/ghc-6.12.3 failed: * Relocating ghc from /usr to workdir failed * * Call stack: * ebuild.sh, line 53: Called call-ebuildshell 'src_unpack' * environment, line 797: Called src_unpack * environment, line 4033: Called die * The specific snippet of code: * sed -i -e "s|${EROOT}/usr|${WORKDIR}/${EROOT}/usr|g" "${WORKDIR}/${EROOT}/usr/bin/ghc-${PV}" "${WORKDIR}/${EROOT}/usr/bin/ghci-${PV}" "${WORKDIR}/${EROOT}/usr/bin/ghc-pkg-${PV}" "${WORKDIR}/${EROOT}/usr/bin/hsc2hs" "${WORKDIR}/${EROOT}/usr/$(get_libdir)/${P}/package.conf.d/"* || die "Relocating ghc from /usr to workdir failed";
あれ?なんかおかしいぞ.$EPREFIX/$EPREFIXみたいな...
<<いまここ追記:2010-08-09 16:09>>
~/Gentoo/var/lib/layman/naota-prefix/dev-lang/ghc/ghc-6.12.3.ebuildみてたらghcbootstrap忘れてたからかも
% USE=ghcbootstrap emerge -uaDNvj ghc
<<いまここ追記:2010-08-09 16:17>>
お,これでうまくいった!
偉大なるなおたさんがリポジトリを修正したので,上の修正,ghcbootstrapは必要なくなって,
% emerge -uaDNvj ghc
だけで入るようになりました<<2010-08-10 00:26追記>>
% sudo port uninstall haskell-platform
これでportでいれたのを消して,portageのんだけになったはず