首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装Rails、MySQL等--一切都出错了

问安装Rails、MySQL等--一切都出错了
EN

Stack Overflow用户
提问于 2010-12-27 03:52:04
回答 2查看 5.1K关注 0票数 1

我已经为这事挣扎了几个小时了。一切都停止了,我不能再让它起作用了。我是Ruby,Rails和终端的新手。这真的让我很沮丧,所以我只想尽可能详细地描述我的问题,希望有人能给我一个解决方案。

我在Mac雪豹上。我刚才根本不能让Rails工作:找不到宝石'rails‘头痛

但是在尝试重新安装它之后,它突然又起作用了。但是现在我无法让MySQL工作,有时它甚至会再次破坏Rails的安装。

我就是这样做的:

代码语言:javascript
复制
sudo gem uninstall rails
sudo gem uninstall mysql
sudo gem uninstall mysql2

在这些命令之后,我使用gem list检查已安装的gems。不再有MySQL创业板上市,但我仍然可以看到rails (2.3.5, 2.2.2, 1.2.6)。这是正常的吗?这是否意味着我安装了3个Rails?对我来说没什么意义。不管怎么说,那我就这么做:

代码语言:javascript
复制
sudo gem clean

完全失败了。我遇到了很多这样的错误:

试图卸载fcgi-0.8.7 无法卸载fcgi-0.8.7: Gem::InstallError:无法卸载,请检查gem list -d fcgi

它不会卸载任何东西。此时,我再次尝试安装所有的东西。首先,我要:

代码语言:javascript
复制
sudo gem install rails

它成功了(我想):

成功安装rails-3.0.3 成功安装构建器-2.1.2 安装2颗宝石 安装rails的ri文档-3.0.3. 文件未找到: lib

然后,我更新RubyGems:

代码语言:javascript
复制
sudo gem update --system
sudo gem install rubygems-update
sudo update_rubygems

然后它说我安装了1.3.7,所以它成功了,我想。所以现在我开始安装MySQL。我已经在我的机器上安装了MySQL 5.5.8。我做了一些关于在雪豹上安装MySQL的研究,似乎我必须使用以下命令:

代码语言:javascript
复制
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

我遇到了很多这样的错误:

time_set_neg没有定义 time_set_second_part没有定义 time_equal没有定义 error_errno没有定义

此时,我想我已经安装了Rails和MySQL gem,所以我尝试启动一个新项目。

代码语言:javascript
复制
rails new user_group -d mysql

它起作用了!Rails安装正确。现在,我试着生成一个模型。

代码语言:javascript
复制
cd user_group
rails generate model User

如果出现此错误,将失败:

无法在Gemfile中列出的任何gem源中找到gem 'mysql2 (>= 0,运行时)‘。 尝试运行bundle install。

所以我尝试运行bundle install。它安装了很多宝石。然后我再次尝试生成我的模型。我知道这个错误:

Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle,9):未加载的库: libmysqlclient.16.dylib (LoadError) 参考来源: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle 原因:找不到图像- /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

这是我所能得到的。我该怎么办?为什么要这么难..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-27 04:30:52

雪豹提供Ruby 1.8.7。Ruby1.8.7不会像1.9.2那样自动地将require 'rubygems'命令添加到Ruby脚本中,因此通常需要将其添加到脚本中。这解决了Ruby在很多情况下找不到代码调用的宝石的问题。Rails是另一种动物,但是版本1.8.7已经有了很好的文档说明,所以您应该很快就能找到一个修复程序。

雪豹提供的Ruby实际上是供自己使用的。用户可以使用它,但它是由苹果安装的,因为他们有使用它的应用程序。使用locate podcast | grep rb$查看。类似地,雪豹中的Perl和Python用于支持苹果已经安装的代码,因此对它们进行处理并不是一个好主意。更改内置的Ruby、Perl或Python通常不会导致系统爆炸,但当系统维护例程停止工作时,它可能会导致更多令人恼火和无法解释的问题。

通过使用sudo删除由Apple安装的宝石并添加新的宝石,您的系统Ruby在苹果的应用程序中处于一种意想不到的状态。与其使用苹果的Ruby,不如安装一个单独的Ruby,供您自己使用,使用Fink或MacPorts,或者使用源代码,或者使用RVM。

就我个人而言,我使用RVM是因为它在您的主目录中创建了一个~/.rvm沙箱,并使管理多个版本的Ruby变得更加容易。RVM要求您安装XCode开发库,您可以在免费注册后从http://developer.apple.com/technologies/下载该库。XCode也出现在您的系统DVD上,但是据报道该版本是错误的,所以使用下载的版本。

票数 5
EN

Stack Overflow用户

发布于 2010-12-27 04:00:50

确保使用以下代码将MySql gem添加到该项目gem文件:

代码语言:javascript
复制
  gem 'mysql', '2.8.1' 

运行一个包安装/更新并尝试它。您告诉它使用MySQL,甚至可以安装gem,但您没有加载它。

另外,您在几个点上都失败了:注意

代码语言:javascript
复制
File not found: lib

再一次,我可能完全错了--这是我试图为您的故障排除提供线索。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4536526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档