Установка Rails, MySQL и т. Д. Все идет не так - PullRequest
1 голос
/ 27 декабря 2010

Я боролся с этим в течение нескольких часов. Все просто перестало работать, и я больше не могу заставить его работать. Я новичок в Ruby, Ruby on Rails и терминале в целом. Это действительно расстраивает меня, поэтому я просто пытаюсь описать мою проблему как можно более подробно, надеясь, что кто-то может дать мне решение.

Я на Mac OS X Snow Leopard. Сейчас я не могу заставить Rails работать вообще: Не могу найти головные боли у 'gem' rails '

Но после некоторых попыток переустановить его вдруг снова заработало. Но сейчас я просто не могу заставить MySQL работать, а иногда он даже ломает установку Rails снова.

Вот что я делаю:

sudo gem uninstall rails
sudo gem uninstall mysql
sudo gem uninstall mysql2

После этих команд я проверяю установленные гемы с помощью gem list. Больше нет MySQL гемов, но я все еще вижу rails (2.3.5, 2.2.2, 1.2.6) . Это нормально? Значит ли это, что у меня есть 3 установки Rails? Это не имеет смысла для меня. Во всяком случае, тогда я делаю это:

sudo gem clean

Который терпит неудачу полностью. Я получаю кучу ошибок, подобных этой:

Попытка удаления fcgi-0.8.7
Невозможно удалить fcgi-0.8.7:
Gem :: InstallError: не может удалить, проверьте gem list -d fcgi

Это ничего не удаляет. На данный момент я пытаюсь установить все снова. Я начинаю с:

sudo gem install rails

Что успешно (я думаю):

Успешно установленные рельсы-3.0.3
Успешно установлен строитель-2.1.2
Установлено 2 драгоценных камня
Установка ri документации на рельсы-3.0.3 ...
Файл не найден: lib

Затем я обновляю RubyGems:

sudo gem update --system
sudo gem install rubygems-update
sudo update_rubygems

Тогда он говорит, что у меня установлена ​​1.3.7, так что, думаю, все прошло успешно. Итак, теперь я приступаю к установке MySQL. Я уже установил MySQL 5.5.8 на мою машину. Я провел некоторые исследования по установке MySQL на Snow Leopard, и мне кажется, что я должен использовать эту команду:

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, поэтому я пытаюсь начать новый проект.

rails new user_group -d mysql

Это работает! Rails установлен правильно. Теперь я пытаюсь сгенерировать модель.

cd user_group
rails generate model User

Ошибка с этой ошибкой:

Не удалось найти камень 'mysql2 (> = 0, время выполнения)' ни в одном из источников драгоценных камней, перечисленных в вашем файле Gemfile.
Попробуйте запустить bundle install.

Итак, я пытаюсь запустить bundle install. Он устанавливает много драгоценных камней. Затем я пытаюсь сгенерировать свою модель снова. Я получаю эту ошибку:

Библиотека / 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

Это насколько я могу получить. Что я должен делать? И почему это должно быть так сложно ...

Ответы [ 2 ]

5 голосов
/ 27 декабря 2010

Snow Leopard поставляет Ruby 1.8.7.Ruby 1.8.7 не добавляет автоматически команду require 'rubygems' в скрипт Ruby, как это делает 1.9.2, поэтому в общем случае вам нужно добавить это в ваш скрипт.Это устраняет проблемы с тем, что Ruby во многих случаях не находит гемы, вызываемые вашим кодом.Rails - это другое животное, но версия с 1.8.7 хорошо документирована, поэтому вы должны были найти исправление довольно быстро.

Ruby, поставляемый Snow Leopard, действительно для собственного использования.Пользователи могут воспользоваться этим, но он установлен Apple, потому что у них есть приложения, которые его используют.Используйте locate podcast | grep rb$, чтобы увидеть.Точно так же Perl и Python в Snow Leopard используются для поддержки кода, установленного Apple, поэтому возиться с ними не очень хорошая идея.Замена встроенного Ruby, Perl или Python обычно не приводит к взрыву системы в огне, но может вызвать раздражающие и необъяснимые проблемы в будущем, когда процедуры обслуживания системы перестанут работать.чтобы удалить драгоценные камни, установленные Apple, и добавить новые, вы оставили свою систему Ruby в неожиданном состоянии, что касается приложений Apple.Вместо того, чтобы связываться с Apple Ruby, вам следует установить отдельный Ruby для собственного использования, используя Fink или MacPorts, или из исходного кода, или с помощью RVM .

Лично я использую RVM , поскольку он создает «песочницу» ~/.rvm в вашем домашнем каталоге и позволяет легко управлять несколькими версиями Ruby и гемов.RVM требует установки библиотеки разработки XCode, которую вы можете скачать с http://developer.apple.com/technologies/ после бесплатной регистрации.XCode также есть на вашем системном DVD, но эта версия, как сообщается, содержит ошибки, поэтому используйте загруженную версию.

0 голосов
/ 27 декабря 2010

Обязательно добавьте гем MySql в этот файл проектов со следующим кодом:

  gem 'mysql', '2.8.1' 

Запустите пакетную установку / обновление и попробуйте. Вы сказали ему использовать MySQL, и гем, возможно, даже установлен, но вы не загружаете его.

Кроме того, вы ошибаетесь в нескольких моментах: обратите внимание на

File not found: lib

Опять же, я могу быть совершенно неправ по этому поводу - это моя попытка дать подсказку для устранения неполадок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...