加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 升级到osx lion,bundler获取本机扩展错误 –

发布时间:2020-12-17 03:35:23 所属栏目:百科 来源:网络整理
导读:我遇到了一个让我陷入困境一天半的问题,我想要一些帮助. 我一直在我的iMac和我的macbook pro之间移动我最新的rails 3应用程序,只需一个简单的副本,直到现在,我没有遇到任何问题. fyi,我使用rvm来管理我的项目版本. 我有一个新的iMac,安装了Lion,在我运行捆绑
我遇到了一个让我陷入困境一天半的问题,我想要一些帮助.

我一直在我的iMac和我的macbook pro之间移动我最新的rails 3应用程序,只需一个简单的副本,直到现在,我没有遇到任何问题.

fyi,我使用rvm来管理我的项目版本.

我有一个新的iMac,安装了Lion,在我运行捆绑更新之前,一切似乎都很好.从那时起,我一直无法让捆绑器工作.构建gem原生扩展时会出现问题.

一旦我运行捆绑更新,我的iMac(osx lion)机器上的任何设备都无效.我可以继续在我的笔记本电脑上运行捆绑更新(Snow Leopard).

所以我希望能够在我的Lion机器上继续开发.这是我到目前为止所做的:

最初,我在编译器方面遇到了一些错误,但是由于我重新安装了xcode并运行了安装程序,我不再是那些错误了.

我仍然继续在我的nokogiri版本上出错.有一次,我遵循了一些博客说明(并做了:

sudo port upgrade --enforce-variants libxml2 +universal

但它似乎对建立nokogiri没有任何区别.

现在,当我进行捆绑更新时,我得到:

Installing nokogiri (1.5.0) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlHasFeature()... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile

make
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_XMLHASFEATURE -DHAVE_XMLFIRSTELEMENTCHILD -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETPARSERSTRUCTUREDERRORS -DHAVE_XMLRELAXNGSETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETVALIDSTRUCTUREDERRORS -DHAVE_XMLSCHEMASETPARSERSTRUCTUREDERRORS -I/opt/local/include/libxml2 -I/usr/local/include/libxml2 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/libxml2 -I/opt/local/include -I/usr/local/include -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include -I/usr/include -I/usr/include/libxml2 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -g -DXP_UNIX -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline  -o html_document.o -c html_document.c
make: gcc-4.2: No such file or directory
make: *** [html_document.o] Error 1


Gem files will remain installed in /Users/tayloredwebsites/.rvm/gems/ruby-1.9.2-p136@current/gems/nokogiri-1.5.0 for inspection.

在做了这个waaaay太多次之后,我决定从我的Gemfile中删除capybara和lanuchy,这样我就可以通过这个错误了.瞧,捆绑更新让我再次无法构建原生扩展:

Installing sqlite3 (1.3.5) with native extensions /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError)

        /Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... yes
checking for sqlite3_initialize()... yes
checking for sqlite3_backup_init()... yes
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile

make
gcc-4.2 -I. -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/x86_64-darwin10.6.0 -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1/ruby/backward -I/Users/tayloredwebsites/.rvm/rubies/ruby-1.9.2-p136/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_BACKUP_INIT -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe  -o backup.o -c backup.c
make: gcc-4.2: No such file or directory
make: *** [backup.o] Error 1

因此,对于同一组代码,我的构建似乎没有出现这样的文件错误,其中一台机器在Lion上的基本区别是另一台机器在Snow Leopard上.

所以也许有人可以帮我解决这些问题:

在我的调查中,我注意到在nokogiri构建中,libxml2被要求在3个地方(其中两个不存在!!!!).任何人都知道如何控制如何控制这些参数,以便我可以删除那些不存在的参数?

当我查看sqlite3构建时,我没有注意到任何丢失的文件,但我似乎仍然得到它们.这可能是nokogiri问题的遗留问题吗?如果是这样,有谁知道我如何清除这些?

我想知道丢失了什么文件,我似乎无法在错误消息中找到它.有没有办法从捆绑更新中获取调试器详细信息?

另外我注意到在make中,include目录包含一个以旧版本ruby命名的目录.这已经有很长一段时间了,没有任何问题,所以我怀疑这不会是问题,但只是想指出来.

解决方法

Lion上几乎没有这样的文件或目录gcc-4.2.当我尝试“rvm install ruby??-1.9.3”时,我遇到了这个问题,这与你报告的内容类似.修复是指定CC命令,如“CC = gcc rvm install ruby??-1.9.3”.如果CC = gcc选项无法传递给bundler,那么“sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2”可能更简单,只需创建它要查找的符号链接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读