Проблема запуска Ruby на сервере Rails - PullRequest
1 голос
/ 22 апреля 2011

Я совершенно новичок в Ruby, Rails и MySQL. Я пытаюсь запустить новый проект и запустить сервер по умолчанию, и я получаю сообщение об ошибке, указанное ниже. У меня установлено следующее:

  • Ruby: ruby ​​1.8.7 (2008-08-11 patchlevel 72) [i686-darwin9.8.0]
  • Рельсы: рельсы (3.0.7)
  • MySql: mysql2 (0.2.7)
  • RubyGems: 1.7.2

Ошибка ниже:

$ rails s
/usr/local/lib/ruby/gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle: dlsym(0x251680, Init_mysql2): symbol not found - /usr/local/lib/ruby/gems/1.8/gems/mysql2-0.2.7/lib/mysql2/mysql2.bundle (LoadError)
    from /usr/local/lib/ruby/gems/1.8/gems/mysql2-0.2.7/lib/mysql2.rb:8
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:68:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:in `each'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:66:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in `each'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler/runtime.rb:55:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.12/lib/bundler.rb:120:in `require'
    from /Users/nelsonwittwer/Sites/simple_cms/config/application.rb:7
    from /usr/local/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:28:in `require'
    from /usr/local/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:28
    from /usr/local/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:27:in `tap'
    from /usr/local/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:27
    from script/rails:6:in `require'
    from script/rails:6

Я не совсем уверен, куда идти отсюда, и хотел бы получить любую помощь, которая вам может понадобиться. Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2011

Вам необходимо установить гем MySQL в вашей системе.

Теперь НЕ используйте apt-get для его установки, так как apt-get часто имеет старые версии библиотек ruby.

Кроме того, я настоятельно рекомендую вам использовать SQLite при запуске. И Bundler также очень полезен (описано в railstutorial )

В дистрибутивах на основе Ubuntu / Debian (и вы действительно хотите использовать MySQL):

Если вы используете ruby ​​1.8.x (проверьте с помощью ruby -v):

sudo apt-get install libmysqlclient-dev
sudo apt-get install ruby-dev
sudo gem install mysql2 

Если вы используете ruby ​​1.9.x:

sudo apt-get install libmysqlclient-dev
sudo apt-get install ruby1.9.1-dev
sudo gem install mysql2
0 голосов
/ 22 апреля 2011

убедитесь, что у вас установлен mysql2 gem в вашей системе ruby.Чтобы проверить это, используйте список драгоценных камней -d .Если gem mysql2 не найден, в Ubuntu вы должны установить следующую библиотеку до установки gem mysql2:

# sudo apt-get install libmysqlclient15-dev  (for mysql-5.*)

# sudo apt-get install  libmysql-ruby  ruby-dev

После этого вы можете установить с помощью sudo gem установить mysql2 и убедиться, что значение вашего адаптеравнутри database.yml есть mysql2.Другая проблема - библиотека не загружена, вы можете просмотреть эту ссылку, если проблема Библиотека не загружена: ошибка libmysqlclient.16.dylib при попытке запустить 'rails server' на OS X 10.6 с помощью mysql2 gem

...