首页 > 系统 > Mac OS > 正文

mac上gentoo-prefix系统安装git svn分布式

2024-09-09 21:59:17
字体:
来源:转载
供稿:网友

本文是记录在mac的gentoo-prefix上安装git svn的问题总结,感兴趣的朋友可以参考一下,或许你也会遇到这些小问题折腾,之前在mac上安装了gentoo-prefix,但是在emerge git的时候,会发现如果增加了subversion这个USE,就会编译失败.

从编译失败的错误上,可以看出,编译失败的来源是svn相关的代码,然后错误是链接的时候提示一些符号找不到,代码如下:

  1. Undefined symbols for architecture x86_64: 
  2.   "_libintl_ngettext", referenced from
  3.       _show_date_relative in libgit.a(date.o) 
  4.   "_libintl_gettext", referenced from
  5.       _show_date_relative in libgit.a(date.o) 
  6.       _warn_on_inaccessible in libgit.a(wrapper.o) 
  7.       _xgetpwuid_self in libgit.a(wrapper.o) 
  8. ld: symbol(s) not found for architecture x86_64 
  9. --Vevb.com 

大致可以看出,是intl相关的库没有链接,在gentoo的bugzilla上也查到了类似的bug,按照附件提供的补丁,需要判断当前系统为mac的时候,增加-lintl,以链接intl这个库.

除了这个库之外,还有一个iconv相关的符号找不到,bug里面没有描述,在另一台gentoo的机器上用e-file查询了之后,发现原生linux的iconv是由glibc提供的,但是prefix是不能自由安装glibc的库的,但是系统里面已经安装了dev-libs/libiconv这个包,提供了iconv相关的库,因此和前面一样,需要手工在链接的时候增加-liconv.

最后修改完的ebuild文件大致为,代码如下:

  1. --- git-1.9.2.ebuild.old    2014-04-20 15:10:34.000000000 +0800 
  2. +++ git-1.9.2.ebuild    2014-04-20 15:09:54.000000000 +0800 
  3. @@ -324,6 +324,7 @@ 
  4.  
  5.     if use subversion ; then 
  6.         cd "${S}"/contrib/svn-fe 
  7. +       [[ ${CHOST} = *-darwin* ]] && EXTLIBS="${EXTLIBS} -lintl -liconv" 
  8.         git_emake EXTLIBS="${EXTLIBS}" || die "emake svn-fe failed" 
  9.         if use doc ; then 
  10.             git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed" 
  11. No Comments

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表