- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我无法在我的机器上安装许多 ruby gem,它们都因与编译 native 部分相关的问题而失败,而且我无法获得任何解决方案。
我很期待著名的 ruby 生产力,但在与这些安装问题斗争了一整天之后,我真的需要一些帮助来让数据库 gem 正常工作,这样我才能开始使用 RoR。
它首先发生在 mysql gem 上,但也发生在 sqlite3 上,甚至试图重新安装 ruby-debug gem。
操作系统:Mac OS X 10.9.2 (Mavericks)。
ruby -v =>
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin12.0]
rvm 列表 =>
> rvm rubies
> =* ruby-2.1.1 [ x86_64 ]
> # => - current
> # =* - current && default
> # * - default
rvm -v =>
rvm 1.25.24 (master) by Wayne E. Seguin , Michal Papis [https://rvm.io/]
gem -v =>
2.2.2
我有一个最新的 Xcode 5.1xcode-select -v => xcode-select 版本 2333.
我已经使用以下命令再次安装了命令行工具:xcode-select --install
然后我尝试了一些来自其他响应的 XCode 命令,包括:sudo xcode-select -s/Library/Developer/CommandLineTools/
我尝试了多个与 gcc 相关的答案以及使用符号链接(symbolic link)将 gcc4.2 链接到 gcc。
/usr/bin/gcc-4.2 -v =>
Using built-in specs. Target: i686-apple-darwin11 Configured with: /Volumes/Media/Builds/gcc-5666.3/build/obj/src/configure --disable-checking --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++,fortran --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Apple Inc. build 5666) (dot 3)
一个失败的例子是:
gem 安装 mysql2
Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension.
/Users/andrew/.rvm/rubies/ruby-2.1.1/bin/ruby extconf.rb checking for ruby/thread.h... yes checking for rb_thread_call_without_gvl() in
ruby/thread.h... yes checking for rb_thread_blocking_region()... yes checking for rb_wait_for_single_fd()... yes checking for rb_hash_dup()... yes checking for rb_intern3()... yes ----- Using mysql_config at /usr/local/mysql/bin/mysql_config ----- checking for mysql.h... yes checking for errmsg.h... yes checking for mysqld_error.h... yes ----- Setting rpath to /usr/local/mysql/lib ----- creating Makefile
make "DESTDIR=" clean
make "DESTDIR=" compiling client.c compiling infile.c compiling mysql2_ext.c compiling result.c linking shared-object mysql2/mysql2.bundle ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
make "DESTDIR=" install ./install -m 0755 mysql2.bundle ./.gem.20140427-52262-1rr56ob/mysql2 make: ./install: No such file or directory make: * [install-so] Error 1
make install failed, exit code 2
Gem files will remain installed in /Users/andrew/.rvm/gems/ruby-2.1.1/gems/mysql2-0.3.15 for inspection. Results logged to /Users/andrew/.rvm/gems/ruby-2.1.1/extensions/x86_64-darwin-12/2.1.0-static/mysql2-0.3.15/gem_make.out
有什么想法吗?
我看到的一篇帖子暗示混合使用 Ruby、Gems 等的一些 64 位和 32 位组件时会出现问题。但我没有看到解决方法,也没有看到我应该如何重新安装一组仅 32 位的组件。
附言看起来某个“Travis”应该尽量避免将对他自己的目录的引用放入代码中:
linking shared-object sqlite3/sqlite3_native.bundle ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib'
更新 1
echo $PATH
/Users/andrew/.rvm/gems/ruby-2.1.1/bin:/Users/andrew/.rvm/gems/ruby-2.1.1@global/bin:/Users/andrew/.rvm/rubies/ruby-2.1.1/bin:/Users/andrew/.rvm/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:.:/usr/lib/tuenti_tools/bin:/Users/andrew/bin:/Users/andrew/apache-maven-3.0.4/bin:/Users/andrew/android-sdk-macosx/platform-tools:/Users/andrew/android-sdk-macosx/tools:/Users/andrew/android-sdk-macosx/build_tools/17.0.0/:/Users/andrew/neo4j-community-2.0.0-M06/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:.:/usr/lib/tuenti_tools/bin:/Users/andrew/bin:/Users/andrew/apache-maven-3.0.4/bin:/Users/andrew/android-sdk-macosx/platform-tools:/Users/andrew/android-sdk-macosx/tools:/Users/andrew/android-sdk-macosx/build_tools/17.0.0/:/Users/andrew/neo4j-community-2.0.0-M06/bin:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/mysql/bin
最佳答案
通常,当依赖项和/或路径不正常时,您会从 exten.conf
中得到错误。首先确保您的路径按预期工作,并且命令行中的 ruby 来自 rvm:
# this should output the path to the ruby in the .rvm dir
which ruby
在尝试任何其他操作之前,请确保您的自制软件是最新的且健康:
# cd to the homebrew dir, typically here:
cd /usr/local/Cellar
git fetch origin
git reset --hard origin/master
brew update
在开始安装之前,请确保您的 PATH 加载正确。首先,您要先加载自制程序箱。在您的 .bash_profile
或 .bashrc
文件中,您可能有也可能没有 PATH 设置,但请确保您有一行将顺序固定为某些内容像这样:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:$PATH
您只想确保首先加载 /usr/local/bin
。还要确保在 .bash_profile
或 .bashrc
中正确加载了 RVM 函数:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
确保所有 brew 依赖项都对齐,并修复它可能说的任何内容:
brew missing
您还需要检查您的 brews 的健康状况,并修复它建议的任何内容(我知道您已经这样做了,但是在刷新您的本地存储库并从上一个命令中清理后可能会出现新问题):
brew doctor
不确定您是如何“修补”gcc 问题的,但是自制软件非常适合:
brew install apple-gcc42
毕竟,我可以放心这不是您本地自制程序设置的问题。我建议尽可能使用自制软件进行任何 native 扩展(包括 mysql/postgres/等)。如果您已经这样做了,请卸载并重新安装 brew:
brew uninstall mysql
brew install mysql
如果仍然出现错误,请尝试清理 rvm:
rvm cleanup
rvm repair
然后卸载/安装失败的 gem:
gem uninstall mysql2
gem install mysql2
祝你好运!
关于ruby-on-rails - 无法在 Mavericks 上安装带有 native 库的 gems(又名 Travis call home),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23326360/
sanitize 是什么意思在 Rails 中是什么意思? 我正在阅读 CanCanCan 的文档.它说: When using strong_parameters or Rails 4+, you
在过去的几个月里,我感觉自己对 Ruby on Rails (RoR) 开发的了解达到了极限。我为大/小客户和 friend /爱好项目开发了大大小小的应用程序。我知道如何开发这些应用程序,但开始感觉
我昨天参加了一个关于扩展 Rails 的聚会,其中一个主题是 Hexagonal Rails。然而,我只做了一年的 Rails,对 MVC 结构非常满意(也许太舒服了),所以我不太了解适配器和消息队列
我使用多个 Rails 应用程序,一些在 Rails 3.2/Ruby 2.0 上,一些在 Rails 2.3/Ruby 1.8.7 上。 他们的共同点是,随着他们的成长和添加更多的依赖项/ gem
这个问题在这里已经有了答案: Using Rails-UJS in JS modules (Rails 6 with webpacker) (5 个答案) 关闭 3 年前。 我正在尝试使用 UJS
我正在开发一个当前使用 Rails 1.2 的 Rails 应用程序,所以我现在离最新的稳定版本(Rails 2.3)还有很长的路要走。 我应该如何进行迁移到更新版本的 Rails 的过程? 我应该一
尝试按照 Ryan Bates Backbone.js 教程构建抽奖应用程序,但我已经遇到了第一段代码的问题。在 application.js 的 init 函数中,他初始化了 Raffler 路由的
我正在使用 Rails 3.2 并且我有一个数据库表,我想在其中找到符合以下条件的所有行: a = true and b = true and ( 0 true, :b =>
我有一个用户类和一个联系人,其中联系人是用户的子类。这两个类都存储在用户表中。 我的联系人可能有也可能没有电子邮件地址,而我的用户需要一个电子邮件地址(我的用户模型定义中有 validates_pre
我正在编写一个教程,我在其中演示了一些 rails 命令。在我的机器上 rails和 script/rails两者都同样有效。有“首选”形式吗?两者中哪一个更普遍? 最佳答案 当您运行 rails 时
我正在寻找有关通过我的应用程序前进的最佳方式的建议,这是我首次开始集成Elasticsearch。我是一名初学者,但是热衷于深入研究,以便原谅任何明显的错误! 我遵循了http://www.sitep
我刚刚用 Rails new 启动了一个新的 Rails 应用程序,将默认数据库设置更改为 PostgresSQL。我用 bin/rails s 启动服务器,结果很奇怪 2016-04-21 05:0
我收到一个参数并希望它是这样的字符串: "abc,efg" 或者像这样的数组 ["abc","efg"] 在第一种情况下,我想将它转换成一个数组,什么是好的方法? 这是我的想法 if params[:
我刚刚用 Rails new 启动了一个新的 Rails 应用程序,将默认数据库设置更改为 PostgresSQL。我用 bin/rails s 启动服务器,结果很奇怪 2016-04-21 05:0
我收到一个参数并希望它是这样的字符串: "abc,efg" 或者像这样的数组 ["abc","efg"] 在第一种情况下,我想将它转换成一个数组,什么是好的方法? 这是我的想法 if params[:
我有 Rails 4,这是我的默认版本(我仍然希望它是)。但我不想在我的电脑上添加 rails 3.2。在以下命令中:gem install rails -v 3.2.16 我有这个警告: railt
您好,我想使用 Sheevaplug 构建一个“Rails Brick”来自 Marvell(操作系统是开箱即用的 Ubuntu,但您可以在其上安装其他发行版)。它将成为家庭服务器和静音、低成本(99
我需要能够从 Rails 控制台发送我的 Rails 应用程序的 Postgres 数据库中所有未接受的邀请。 (我有一个名为 Invitations 的表,其中包含一个名为 accepted 的 b
validate :cannot_modify_if_locked, on: :update def cannot_modify_if_locked if self.locked erro
我正在学习教程(学习 Rails 播客),需要更改以下路由语法,以便它与 Rails 3.0 兼容。谁能帮忙? map.view_page ':name', :controller => 'viewe
我是一名优秀的程序员,十分优秀!