千辛万苦总算和论坛上的大神一起找到了一个不算解决办法的办法,需要种种魔改来成功,不过至少可以跑起来了…

首先我们弄到脚本之后设定环境变量.

export EPREFIX="$HOME/gentoo"
export PATH="$EPREFIX/usr/bin:$EPREFIX/bin:$EPREFIX/tmp/usr/bin:$EPREFIX/tmp/bin:/usr/bin:/bin"

然后我们开始编译 stage1

chmod 755 bootstrap-prefix.sh
./bootstrap-prefix.sh $EPREFIX stage1

OK,现在你就有了一个能工作的 stage1。

现在我们先跑一次 stage2,肯定中间会失败,然后我们就可以修复了(ry。

./bootstrap-prefix.sh $EPREFIX stage2

我们指定使用 10.10 的 Profile,因为 10.11 的目前还是问题频出.

cp -r $EPREFIX/usr/portage/profiles/prefix/darwin/macos/10.10$EPREFIX/usr/portage/profiles/prefix/darwin/macos/10.11

使用 xcode-select 强制指定到 command-line-tools 而不是 Xcode 来防止在编译 llvm-3.4.2 的时候出现 ld: library not found for -lc++ 的错误.

sudo xcode-select -s /Library/Developer/CommandLineTools

接下来就可以跑起来了

./bootstrap-prefix.sh $EPREFIX stage2

接下来就是 stage3 了,当然也是问题很多,不过同理,出了错误我们才可以修复它(ry。

./bootstrap-prefix.sh $EPREFIX stage3

如果 perl-5.22.0 编译出错提示 ld: library not found for -lgcc_s.10.4 ,需要手动创建那个被神隐的链接。

ln -s /usr/lib/libgcc_s.1.dylib $EPREFIX/usr/lib/libgcc_s.10.4.dylib

接下来一般出错的就是 python-3.3.3 了,首先出现的错误可能是 dyld: Library not loaded: $EPREFIX/usr/lib/libpython3.3.dylib ,重新链接可解。

ln -s $EPREFIX/tmp/var/tmp/portage/dev-lang/python-3.3.3/work/x86_64-apple-darwin14/libpython3.3.dylib $EPREFIX/usr/lib/libpython3.3.dylib
rm -rf $EPREFIX/usr/lib/libpython3.3.dylib; ebuild $EPREFIX/usr/portage/dev-lang/python/python-3.3.3.ebuild qmerge clean

接下来抛出的应该就是 fatal error: too many errors emitted, stopping now [-ferror-limit=] 了,这个主要是因为 Xcode 版本的问题。我们下个 Xcode6.4

cp -rv /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk $HOME/Downloads
echo SDKROOT=$HOME/Downloads/MacOSX10.10.sdk >> $EPREFIX/etc/portage/make.conf

修复之后如果 mhash-1.4 报错 “mhash.c:23:10: fatal error: ‘mhash.h’ file not found” ,那就把上面的 SDKROOT 注释掉就行了。

接下来就可以完成 stage3 了

./bootstrap-prefix.sh $EPREFIX stage3

stage3 完成之后我们需要更新组件,所以

USE="-git" emerge -u system

这里也会出错,一般常见的就是几个包相互 block 以及 libintl 的问题。利用 package.mask 来防止出错。

vim $EPREFIX/etc/portage/package.mask

添加如下

>=dev-lang/python-2.7.8:2.7
>=dev-lang/python-3.3.3
>=app-eselect/eselect-python-20140125
>=dev-lang/python-exec-2.0.2
=virtual/libintl-0-r2

同时添加 -xattr 到你的 USE 里面。

vim $EPREFIX/etc/portage/make.conf

在 USE= 处添加 -xattr

之后应该就可以成功使用了, Cheers !


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.