2010-12-27 2 views
1

나는 몇 시간 동안이 문제에 시달렸습니다. 모든 것이 작동을 멈추었으므로 더 이상 작동하지 않습니다. 나는 루비, 루비 레일 및 터미널 일반적으로 멍청한 녀석입니다. 이것은 정말 실망 스럽습니다. 그래서 저는 누군가가 저에게 해결책을 줄 수 있기를 바랍니다. 가능한 한 자세하게 문제를 설명하려고 노력합니다.레일, MySQL 등 설치가 잘못되었습니다.

저는 Mac OS X Snow Leopard를 사용 중입니다. 나는 지금 당장 레일스가 작동하지 못하게했다 : Could not find gem 'rails' headaches

그러나 다시 설치하려고 시도한 후에 갑자기 다시 작동했다. 하지만 이제는 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 

완전히 실패했습니다. 다음과 같은 오류가 발생합니다.

Attempting to uninstall fcgi-0.8.7
Unable to uninstall fcgi-0.8.7:
Gem::InstallError: cannot uninstall, check gem list -d fcgi

아무 것도 제거하지 않습니다. 이 시점에서 모든 것을 다시 설치하려고합니다. 그럼 내가 1.3.7가 설치되어 말한다

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

, 그래서 :

Successfully installed rails-3.0.3
Successfully installed builder-2.1.2
2 gems installed
Installing ri documentation for rails-3.0.3...
File not found: lib

그럼, 업데이트 젬 : 성공

sudo gem install rails 

(내 생각) : I로 시작 성공했다. 이제 MySQL 설치를 진행합니다. 이미 MySQL 5.5.8이 내 컴퓨터에 설치되어 있습니다. 나는 스노우 레오파드 (Snow Leopard)에서 MySQL 설치에 대한 몇 가지 조사를했다, 그리고 내가이 명령을 사용해야 할 것 같습니다 : 나는 가정이 시점에서

No definition for time_set_neg
No definition for time_set_second_part
No definition for time_equal
No definition for error_errno

:이 같은 오류의 무리를 얻을 수

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

을 Rails와 MySQL 보석을 모두 설치 했으므로 새로운 프로젝트를 시작하려고합니다.

rails new user_group -d mysql 

작동합니다! 레일즈가 올바르게 설치되었습니다. 이제 모델을 생성 해 봅니다.

cd user_group 
rails generate model User 

은이 오류와 함께 실패합니다

Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile.
Try running 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): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle

이것은 가능한 한 얻을 수 있습니다. 어떻게해야합니까? 그리고 왜 이렇게 열심히해야합니까 ...

답변

5

Snow Leopard는 Ruby 1.8.7을 지원합니다. Ruby 1.8.7은 1.9.2와 같이 Ruby 스크립트에 require 'rubygems' 명령을 자동으로 추가하지 않으므로 일반적으로 스크립트에 추가해야합니다. Ruby가 많은 경우에 코드에 의해 호출 된 보석을 찾지 못하는 문제를 수정했습니다. Rails는 다른 동물이지만, 1.8.7 버전은 잘 문서화되어 있으므로 수정 사항을 빨리 찾아야합니다.

Snow Leopard에서 제공하는 Ruby는 실제로 자체적으로 사용됩니다. 사용자는이를 피기 백 할 수는 있지만 사용하는 응용 프로그램을 가지고 있기 때문에 Apple에 의해 설치됩니다. 보려면 locate podcast | grep rb$을 사용하십시오. 비슷하게, Snow Leopard의 Perl과 Python은 Apple이 설치 한 코드를 지원하기 위해 사용되기 때문에 그들을 망쳐 놓는 것은 좋은 생각이 아닙니다. 내장 Ruby, Perl 또는 Python을 변경해도 시스템이 화염으로 폭발하지는 않지만 시스템 유지 보수 루틴이 작동을 멈추었을 때 자극적이거나 설명 할 수없는 문제가 발생할 수 있습니다.

sudo를 사용하여 Apple에서 설치 한 보석을 제거하고 새 것을 추가하면 Apple의 응용 프로그램과 관련하여 시스템 루비가 예기치 않은 상태가되었습니다. 애플의 루비를 망치기보다는, Fink 나 MacPorts를 사용하거나 소스 코드를 사용하거나 RVM을 사용하여 별도의 Ruby를 설치해야한다.

개인적으로 홈 디렉토리에 ~/.rvm 샌드 박스를 만들고 Ruby와 보석의 여러 버전을 쉽게 관리 할 수 ​​있기 때문에 개인적으로 RVM을 사용합니다. RVM을 사용하려면 무료 등록 후 http://developer.apple.com/technologies/에서 다운로드 할 수있는 XCode 개발 라이브러리를 설치해야합니다. XCode도 시스템 DVD에 있지만 해당 버전은 버그가있는 것으로보고되므로 다운로드 한 버전을 사용하십시오.

+0

좋아요, 저는 RVM과 Ruby 1.9.2, Rails 3.0.3을 설치했습니다. 여태까지는 그런대로 잘됐다. 그런 다음 MySQL 설치와 동일한 명령을 실행했습니다. 오류 :'ERROR : MySQL 설치 중 오류가 발생했습니다 : ERROR : gem 네이티브 확장을 빌드하지 못했습니다 .' 그런 다음'rails' 명령을 다시 사용할 수 없으며'bundle install '을 실행하도록 권유 받았습니다. 그래서 나는 그것을했고 그것은 성공했다. 그런 다음 레일을 다시 사용할 수 있습니다. 그래서 내 모델을 만들고 .. 붐! 똑같은 오류 :'라이브러리가로드되지 않았습니다 : libmysqlclient.16.dylib (LoadError)'. 이 시점에서 나는 열매 맺을 것입니다. – Rits

+1

MySQL에 관한 http://rvm.beginrescueend.com/integration/databases/의 문서를 읽었습니까? 일반적으로 드라이버가 관련되어 있고 "보석을 만들지 못했습니다"또는 "모듈을 만들지 못했습니다"라는 일종의 언어가 생기면 언어는 파일이 설치된 위치를 알아야합니다. 이는 대개 DBM 라이브러리를 가리 키도록 환경 변수를 설정하거나 DBM 구성 응용 프로그램을 포함하도록 PATH를 조정하거나 사용 가능한 DBM 소스 헤더가 있는지 확인하는 것을 의미합니다. –

+0

나는 내가 한 일을 모르고 있지만 갑자기 작동합니다. 감사. – Rits

0

그 다음 코드를 gemfile 프로젝트에 MySQL의 보석을 추가해야합니다 :

gem 'mysql', '2.8.1' 

것은/번들이 설치 업데이 트를 실행하고 그것을 시도. MySQL을 사용하라고 말했고 보석이 설치되어있을 수도 있지만로드하지는 않습니다.

또한,이 점 몇 가지에 실패하고 : 나는 이것에 대해 완전히 잘못 될 수있다, 그런 다음 다시

File not found: lib 

알 - 그것은 당신의 문제 해결을위한 단서를 제공하려고 시도한입니다.

+0

내 Gemfile에 다음 줄이 포함되어 있습니다 :'gem 'mysql2''. 나는 당신의 제안에 따라'gem 'mysql', '2.8.1'을 그 아래에 추가했다. 그런 다음 번들 업데이트를 실행했습니다. 모델을 만들려고 할 때 나는 똑같은 오류를 얻는다. 어떤 아이디어? – Rits

관련 문제