【问题标题】:MySQL gem in OS X Snow Leopard with RVM and REE 1.8.7 never builds correctly带有 RVM 和 REE 1.8.7 的 OS X Snow Leopard 中的 MySQL gem 无法正确构建
【发布时间】:2011-08-16 16:56:15
【问题描述】:

问题已解决: MySQL 2.8.1 Gem 不能很好地与 MySQL 5.5.x 配合使用

解决方案是卸载 MySQL(使用可用的说明 here)。然后使用 MySQL.com 的 x86_64 安装程序安装 MySQL 5.1.56

我按照以下建议重置了我的 .rvm 文件夹权限,然后根据 RVM 站点上的说明安装了 MySQL gem。

成功了!

原问题:

我正在跑步:

  • Core2Duo 64 位 Macbook Air 上的 OSX 10.6.7
  • RVM 1.6.5
  • ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-darwin10.7.0], MBARI 0x6770, Ruby Enterprise Edition 2011.03 / Mach-O 64-bit executable x86_64 (此 Ruby 版本设置为 --default )
  • MySQL 5.5.11 / Mach-O 64 位可执行 x86_64(使用 MySQL.com DMG 安装程序安装)

我尝试使用网络上的每个命令安装 MySQL gem。运行rake db:migrate 会产生错误uninitialized constant MysqlCompat::MysqlRes

以下安装命令的结果都是uninitialized constant MysqlCompat::MysqlRes

  1. rvmsudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
  2. sudo env ARCHFLAGS="-arch x86_64" rvmsudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
  3. sudo env ARCHFLAGS="-arch x86_64" rvmsudo gem install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include

而且这些命令甚至都没有安装。我刚收到这个错误:Permission denied - /Users/Jake/.rvm/gems/ree-1.8.7-2011.03/gems/mysql-2.8.1/COPYING

  1. gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
  2. env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
  3. sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
  4. sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include

我也将rvm_archflags="-arch x86_64" 放入~/.rvmrc。没有效果。

我已经内爆了 RVM 并从头开始了两次。我也卸载并重新安装了 MySQL。

我做错了什么?我还能尝试什么?感谢您的帮助!

【问题讨论】:

  • "未初始化的常量 MysqlCompat::MysqlRes" 有点像你的 database.yml 文件不正确的味道。我怀疑这是因为它定义了您的数据库类型(MySQL、Postgresql 等)。Rails 应该读取该信息并自动使用正确的 gem,它应该自动包含 MysqlCompat::MysqlRes 常量。

标签: mysql ruby rake rvm


【解决方案1】:

使用 RVM 时的规则 #1。 Do NOT use sudo

不要使用 sudo...

使用 RVM gems。当您执行 sudo 时,您是以 root 身份运行命令,另一个 shell 中的另一个用户,因此当命令在 sudo 下运行时,RVM 为您完成的所有设置都将被忽略(例如 GEM_HOME 等)。因此,重申一下,一旦您“sudo”以 root 系统用户身份运行,这将清除您的环境以及它创建的任何文件,您的用户无法修改并导致奇怪的事情发生。 (你会开始认为有人拥有你的应用程序的巫毒娃娃......)

你的权限都搞砸了,因为你使用了sudo,所以,你必须解决这个问题:

sudo chown -R Jake ~/.rvm

应该将所有文件的所有权恢复给您。

然后,关注the directions on the RVM site for dealing with MySQL。不要按照互联网上的指示进行操作,因为没有人比 RVM 的作者更了解如何使用它。

【讨论】:

    【解决方案2】:

    以后,您可能想尝试使用 Homebrew 安装 mysql。以下是我在 OS X 上多次运行的一些完整的安装步骤:

    http://michaelfarmer.info/preferred-rails-3-and-mysql-installation-on-o

    【讨论】:

      【解决方案3】:

      试试这个

      cd `rvm gemdir`
      gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
      

      【讨论】:

        猜你喜欢
        • 2010-11-24
        • 2013-02-24
        • 2011-11-13
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 2012-07-24
        相关资源
        最近更新 更多