2010-03-11 4 views
5

업데이트 II 문제가 해결되었지만 왜? 이것은 가장 큰 두통입니다. 내 문제는 해결되었지만이 작업을 어떻게 수행했는지 전혀 모른다. 또한 다음 결과는 의미가 없습니다. 내 .profile 경로 (/ usr/local/bin)는 현재 작동중인 경로 (/ usr/bin /)와 다릅니다. OSX Snow Leopard의 터미널을 닫은 후 작업 경로가 갑자기 나타났습니다. 여기서 무슨 일이 일어나고있는거야?열차 사고. 레일즈가 필요합니다 RubyGems> = 1.3.2

$ rails -v 
Rails 3.0.0.beta 
$ ruby -v 
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0] 
$ gem -v 
1.3.6 
$ whereis ruby 
/usr/bin/ruby 
$ whereis rails 
/usr/bin/rails 
$ whereis gem 
/usr/bin/gem 
$ which gem 
/usr/bin/gem 
$ which ruby 
/usr/bin/ruby 
$ which rails 
/usr/bin/rails 
$ mate ~/.profile 

.profile 파일 : 여기

이 작업 경로와 혼란의 .profile 파일입니다

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH" 
if [[ -s /Users/justinz/.rvm/scripts/rvm ]] ; then source /Users/justinz/.rvm/scripts/rvm ; fi 

업데이트 나는 루비와 whereis 루비는 다른 위치가있는 것을 알

which ruby 
/opt/local/bin/ruby 
whereis ruby 
/usr/bin/ruby 

최근에 루비를 ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin10] 그리고 나는 레일을 부러 뜨렸다 고 생각합니다. 레일을로드하려고 할 때. 나는 이상한 메시지를 받는다. 도와주세요!

$ ruby ​​스크립트/서버 레일에는 RubyGems 이상 = 1.3.2가 필요합니다. 젬을 설치하고 다시 시도하십시오 : http://rubygems.rubyforge.org

$ which ruby 
/usr/local/bin/ruby 
$ whereis ruby 
/usr/bin/ruby 
$ which rails 
/usr/local/bin/rails 
$ whereis rails 
/usr/bin/rails 
$ which gem 
/usr/local/bin/gem 
$ whereis gem 
/usr/bin/gem 
$ ruby -v 
ruby 1.8.7 (2008-08-11 patchlevel 72) [i686-darwin10.2.0] 
$ rails -v 
Rails 2.3.5 
$ gem list 

*** LOCAL GEMS *** 

actionmailer (2.3.5) 
actionpack (2.3.5) 
activerecord (2.3.5) 
activeresource (2.3.5) 
activesupport (2.3.5) 
builder (2.1.2) 
bundler (0.9.11) 
columnize (0.3.1) 
erubis (2.6.5) 
fastercsv (1.5.1) 
ffi (0.6.3) 
gbarcode (0.98.16) 
i18n (0.3.5) 
linecache (0.43) 
mail (2.1.3) 
memcache-client (1.8.0) 
prawn (0.8.4) 
prawn-core (0.8.4) 
prawn-layout (0.8.4) 
prawn-security (0.8.4) 
rack (1.1.0, 1.0.1) 
rack-mount (0.6.1) 
rack-test (0.5.3) 
rails (2.3.5) 
rake (0.8.7) 
ruby-debug (0.10.3) 
ruby-debug-base (0.10.3) 
rubygems-update (1.3.6) 
sqlite3 (0.0.8) 
text-format (1.0.0) 
thor (0.13.4) 
tzinfo (0.3.17) 
$ sudo gem install sqlite3-ruby 
Password: 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/usr/local/bin/ruby extconf.rb 
checking for fdatasync() in -lrt... no 
checking for sqlite3.h... yes 
checking for sqlite3_open() in -lsqlite3... no 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/local/bin/ruby 
    --with-sqlite3-dir 
    --without-sqlite3-dir 
    --with-sqlite3-include 
    --without-sqlite3-include=${sqlite3-dir}/include 
    --with-sqlite3-lib 
    --without-sqlite3-lib=${sqlite3-dir}/lib 
    --with-rtlib 
    --without-rtlib 
    --with-sqlite3lib 
    --without-sqlite3lib 


Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5 for inspection. 
Results logged to /usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.5/ext/sqlite3_api/gem_make.out 
+0

내가 sudo는 보석 업데이트를 시도했습니다 추가해야 --system –

+0

당신은 현재 내가이 같은 문제로 내 머리 밖으로 당겨 오전 (보석 -v) –

+0

나는 1.3.6 –

답변

2

Ruby 버전 관리자 또는 rvm (http://rvm.beginrescueend.com/)을 들여다 보았습니까? 나는 리눅스와 Mac OS X에서 작동한다는 것을 알고있다.

기본적으로 이것은 다른 버전의 루비와 관련된 모든 "조각"을 관리하는 도구이다.나는 친구가 그것을 시도하는 것이 좋습니다 때 비슷한 문제가 있었는데, 그것은 나를 위해 그것을 해결했습니다.

0

내가 잠시 전으로 내 기억이 맞다 전적으로 모르겠지만, 나는 레일로 레일 2.3.4에서 업그레이드 할 때 나는 비슷한 문제가 있다고 생각 2.3.5. 이 경우 문제는 Rack 1.1.0과 Rack 1.0.1 (Rack 1.1.0이 Rails 업그레이드 중에 설치됨)을 모두 설치함으로써 발생했다고 생각됩니다. 나는 1.1.0을 없애고 다시 일하기 시작했다.

Ruby 1.8.6에서 (Windows의 경우) 1.8.7로 업그레이드 할 때 어떤 문제도 발생하지 않았습니다.

나는 틀릴 수도 있지만 어쩌면 시도 할 새로운 방향을 제시 할 것입니다.

+0

불행히도이 간단한 수정은 내 시스템에서 작동하지 않습니다. –

1

방금이 같은 문제가 수정되었습니다. 나는 가장 효율적인 있는지 그 모르겠지만, hivelogic에 설명 된대로 나는 루비와 루비 보석을 설치, 모든 것을 처음부터 다시에 '/ usr/지방'

내 경로 변경 기억 :

export PATH=/usr/local/bin:$PATH 
+0

내보내기 경로를 설명해 주시겠습니까? 어떻게 변경합니까? 나는 스노우 레오파드 설치의 모든 단계를 따라 갔다. 처음에는 똑같은 문제가 발생했다. –

+0

경로는 기본적으로 쉘/터미널 프로그램이 명령을 입력 할 때 그 명령을 처리하는 방법에 대한 지침을 나타냅니다. 튜토리얼에서 루비를 재 빌드 할 때/usr/local에 모든 것을 설치 했으므로 여기에서 확인하는 디렉토리 목록에이 디렉토리를 추가합니다. – ethyreal

+0

터미널에 내보내기 명령을 입력하면 해당 세션에만 존재하므로 터미널을 시작할 때마다 터미널을 시작할 때마다 .profile 또는 .bash_login 파일의 끝에이 줄을 추가해야합니다. 명령을 입력 할 수 있지만 쉘을 시작할 때마다 수동으로 내보내기 명령을 입력 할 수도 있습니다. – ethyreal

-3

을 두 개의 다른 디렉토리 사이에 기호 링크를 작성해야합니다.

sudo를 에선 -s/옵션/지방/빈/루비는/usr/빈/루비

당신이 난에 표시되는 '다윈'에서 추측하고있어 맥 (에서이 작업을 실행하는 경우
+0

나쁜 생각. Mac을 사용하고있는 것처럼 보이며 그렇게하면 시스템에 설치된 Ruby가 문제를 일으킬 수 있습니다. – mipadi

+0

이 명령을 실행 취소하려면 어떻게해야합니까? 나는 어제 그것을 실행했다 : ( –

+0

@JZ 명령을 실행 취소한다. sudo rm -rf/usr/bin/ruby ​​ @mipadi @mipadi 그는 맥에 대해 잘 알고있다. 그리고 그것은 잘 작동했습니다.나는 그것이 모든 문제가 디렉토리에 대한 링크를 만들 때 실제로 어떻게 파일이나 폴더를 이동시키지 않을 때도 발생할 수있는 방법을 보지 못합니다. 그렇다면 문제는 어디서 발생 했습니까? 그는 문제가 해결 된 것처럼 보이기 때문에 내가 사용했던 명령을 사용 했음에 틀림 없다. 당신은 당신이 무슨 말을하고 있는지 절대 모릅니다. – mike

1

당신의 흔적), 때때로 sudo gem whatever 대신 gem whatever을 입력하는 경우 이와 같은 문제가 발생할 수 있습니다. ~/.gem 또는 ~/.gems 디렉토리를 확인하여 실수로 거기에 보석이 설치되어 있는지 확인하십시오.

그렇다면 삭제하거나 다시 설치하십시오.

0

실제로이 문제가 발생했습니다. 내 문제는 루비 업그레이드로 인한 것입니다. 나는 Ruby 1.8.6을 실행하는 약간 오래된 EC2 AMI로 시작했고, 나는 더 새로운 1.8.7에서 실행하고 싶었다. 나는 최신 1.8.7 Ruby를 다운로드하고 컴파일하여 1.8.6에 대한 링크를 제거했다. (데비안 서버이므로/usr/bin/ruby는 /usr/bin/ruby1.8에 대한 심볼릭 링크 였으므로주의하라.)/usr/local/bin/ruby에서 새 루비를 실행 시켰습니다. 괜찮 았어. 그런데 나는 위에서 언급 한 "Rails requires RubyGems> = 1.3.2"오류를 포함하여 이상한 행동을하기 시작했습니다. 내가 젬을 제거하고 다시 설치

  • : 여기에 다른 사람에 따라 다를 수 있지만 희망이 도움이 될 것입니다 내가 확인 할 필요가 결국 것들이었다을 다운로드 한 다음 "젬을 제거 apt-get을" rubyforge에서 설치하고 설치하십시오. 이것은 완전히 필요하지는 않을 수도 있지만, 나는 깨끗한 것들을 확인하고 싶었습니다. 보석은 루비 버전과 관련되어 있으므로 업그레이드하면 어쨌든 모든 보석을 다시 설치해야 할 수도 있습니다. 이 문제에 대한 해결 방법이 있는지 확실하지 않지만, 그렇다면 알고 싶습니다.

  • 필자는 사기 쳤다. 내가 1.8.6 -> 1.8.7에서 시작 했으므로 나는 오래된 루비 위치에서 새로운 것으로 보석을 복사하기로 결정했다 : "cp -R /usr/lib/ruby/gems/1.8/ usr/local/lib/ruby ​​/ gems "를 참조하십시오. 그것은 나를 위해 일했지만 여전히 테스트 중이며 문제를 일으킬 수 있으므로주의해야합니다. 물론 모든 것을 다시 설치하는 것보다 훨씬 편리합니다.

  • 나는 nginx로 승객을 운영하고 있습니다. Passenger config에는 Ruby 바이너리와 Passenger gem을 가리키는 항목이 있습니다. 이것들을 바꾸십시오! 보석이 사라져도 내 응용 프로그램이 여전히 제대로 시작되고 있는지 궁금해하는 데는 몇 분이 걸렸습니다 ... nginx의 구성이 /usr/bin/ruby1.8에 직접 지정되어 있었기 때문입니다.

이 정보가 도움이되기를 바랍니다.

관련 문제