我无法在os x 10.6.8上构建couchbase ruby gem
我的目标是通过构建本机扩展来安装couchbase ruby gem,但是我发现gem和libcouchbase C库之间的架构不匹配。以下是一些背景:我无法在os x 10.6.8上构建couchbase ruby gem,ruby,xcode,gcc,osx-snow-leopard,couchbase,Ruby,Xcode,Gcc,Osx Snow Leopard,Couchbase,我的目标是通过构建本机扩展来安装couchbase ruby gem,但是我发现gem和libcouchbase C库之间的架构不匹配。以下是一些背景: 我正在运行OSX10.6.8,使用rvm和从源代码构建的Ruby1.9.2-p320 直到昨天,我还在运行OS X 10.6.7和Xcode 3.2.5,但我无法以本机方式构建libcouchbase 然后,我安装了brew,这有助于简化libcouchbase的安装,brew告诉我需要升级到至少Xcode 3.2.6 我为雪豹下载了难以捉摸
- 我正在运行OSX10.6.8,使用rvm和从源代码构建的Ruby1.9.2-p320
- 直到昨天,我还在运行OS X 10.6.7和Xcode 3.2.5,但我无法以本机方式构建libcouchbase
- 然后,我安装了brew,这有助于简化libcouchbase的安装,brew告诉我需要升级到至少Xcode 3.2.6
- 我为雪豹下载了难以捉摸的Xcode4.2,因为它比雪豹小2千兆 Xcode 3.2.6,我想我会得到最新版本
- Xcode不会安装,因为我发现证书错误是由于系统安装程序中的错误造成的,修复方法是升级到OS X 10.6.8,然后应用系统更新
- 几个小时后重新启动,我正在运行安装了XCode 4.2的OS X 10.6.8,libcouchbase通过brew编译,没有任何问题
- 我现在尝试安装couchbase gem,但构建本机扩展失败。它表示,即使显式传递库的位置,也无法找到libcouchbase
- 查看mkmf.log显示以下内容(添加了粗体强调,但我可能对该问题的看法是错误的!
非常感谢您的帮助,尤其是如果您以前在OS X上构建过couchbase gem。我认为这是一个好问题,因为我记得自己也曾经历过类似的痛苦,试图构建gem。但是那是很久以前的事了,我手头没有文件等,无法记住我做了什么,或者我的错误是否与您的一样
我知道这不如直接回答好,但我认为你应该可以在这里联系gem作者:或者通过Twitter上的@avsej。尝试以下步骤,这为我解决了问题:
brew unlink libcouchbase
brew install libcouchbase@2
brew link --force --overwrite libcouchbase@2
brew update && brew upgrade
然后尝试bundle安装或gem安装
bundle install
我最终安装了一个新的ruby 1.9.3(通过rvm)它只构建了64位。这样就可以构建64位gem并使用64位libcouchbase。我想,继续前进,我不可能也不应该担心构建32位gem/库。我们会看到的。谢谢你的帮助。编辑:我还应该提一下,我给作者发了一封电子邮件,告诉他其他一些事情,他确实回复了,并且得到了帮助pful,也感谢@avsej所做的一切。
/* begin */
1: #include "ruby.h"
2:
3: #include <libcouchbase/couchbase.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { void ((*volatile p)()); p = (void ((*)()))libcouchbase_server_versions; return 0; }
/* end */
/* begin */
1: #include "ruby.h"
2:
3: #include <libcouchbase/couchbase.h>
4:
5: /*top*/
6: int main() {return 0;}
7: int t() { libcouchbase_server_versions(); return 0; }
/* end */
interpreter: "ruby"
version: "1.9.2p320"
date: "2012-04-20"
platform: "universal.x86_64-darwin10.8.0"
patchlevel: "2012-04-20 revision 35421"
full_version: "ruby 1.9.2p320 (2012-04-20 revision 35421) [universal.x86_64-darwin10.8.0]"
brew unlink libcouchbase
brew install libcouchbase@2
brew link --force --overwrite libcouchbase@2
brew update && brew upgrade
bundle install