문제

최근에 Ubuntu 9.04로 업그레이드했으며 보석을 사용하는 문제가 있습니다. apt-get을 사용하여 Ruby, Rubygems 및 Rails를 설치했습니다. 그만큼 rails 명령이 작동합니다.

그런 다음 Capistrano 및 Heroku와 같은 다른 보석을 설치했습니다. 그렇게하기 위해 명령을 사용했습니다.

sudo gem install XXX

내가 사용하고 싶을 때 cap 명령은 작동하지 않습니다.

bash: cap: command not found

다른 보석 명령과 동일합니다.

보석 명령이 작동하도록 특별한 일이 있습니까?

도움이 되었습니까?

해결책

내 보석은 어디에 있습니까?

보석을 사용하여 보관하는 위치를 찾을 수 있습니다. gem environment 명령. 예를 들어:

chris@chris-laptop:~$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.2

  - RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
     - /home/chris/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:

"Gem Paths :"섹션을 보면 보석이 내 노트북의 두 곳에 보관할 수 있음을 알 수 있습니다. /usr/lib/ruby/gems/1.8 또는 .gem 내 집에있는 디렉토리.

실행 파일 이이 경우 실행 파일에 저장되어 있음을 알 수 있습니다. /usr/bin.

왜냐하면 /usr/bin 내 길에 이것은 나를 달리게 할 수 있습니다 cap, merb, rails 등.

당신의 길을 업데이트합니다

어떤 이유로 든 실행 가능 디렉토리가 경로에 있지 않은 경우 (예 : /var/lib/gems/1.8/bin 인 경우) 경로 변수를 업데이트해야합니다.

배쉬 쉘을 사용하고 있다고 가정합니다. 쉘 프롬프트에서 다음을 입력하여 현재 세션에 대해 빠르게이를 수행 할 수 있습니다. 추가하고 싶은 척하자 /var/lib/gems/1.8/bin 길로 :

export PATH=$PATH:/var/lib/gems/1.8/bin

그리고 귀환을 누릅니다. 이는 새 디렉토리에 현재 경로의 끝에 추가됩니다. 사이의 결장에 주목하십시오 $PATH 그리고 /var/lib/gems/1.8/bin

모든 세션의 값을 설정하려면 편집해야합니다. .profile 또는 .bashrc 파일의 끝에 동일한 줄을 추가하십시오. 나는 보통 내 편집 .bashrc 그 외에는 내가 항상 한 일 이외의 이유없이 파일을 파일하십시오. 완료되면 파일을 저장 한 다음 다음을 입력하여 환경을 새로 고치십시오.

bash

쉘 프롬프트에서. 그로 인해 발생할 것입니다 .bashrc 다시 읽기 위해.

언제든지 현재 값을 확인할 수 있습니다. $PATH 입력하여

echo $PATH

쉘 프롬프트에서.

다음은 내 사용자 이름이 "Chris"이고 기계 이름은 "Chris-Laptop"인 내 서버 중 하나의 샘플입니다.

chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$ 
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$ 

내 보석이로드되지 않습니다!

"Ruby Gems는 설치하더라도로드되지 않습니다"여러 다른 버전의 루비를 사용하여 일반적인 문제를 강조합니다. 때로는 보석 환경과 보석 경로가 동기화되지 않습니다.

rb(main):003:0> Gem.path

=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit

여기의 모든 루비 과정은 보석을 위해 한 곳에서만 찾고 있습니다.

:~/$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
  - INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
  - EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1
     - /home/mark/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

보석 환경의 출력을주의 깊게 살펴보십시오.

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

이것은 gem.path에 의해 반환 된 것과 같은 경로가 아닙니다.

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

정확히 원인을 말하기는 어렵습니다 lib/ruby 변경합니다 lib/ruby1.9 그러나 개발자는 아마도 여러 루비 버전으로 작업하고 있었을 것입니다. 빨리 mv 또는 ln 문제를 해결합니다.

여러 루비 버전으로 작업 해야하는 경우 실제로 사용해야합니다. RVM.

다른 팁

@chris가 언급했듯이 보석 환경을 경로에 추가해야합니다. 다음을 수행 할 수 있습니다.

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

보석이있는 폴더 저장 예를 들어 내 경로에 있어야합니다.

/home/victor/.gem/ruby/1.8/bin

입력하여 경로를 확인하십시오

echo $PATH

Ubuntu 9.04에 Rubygems를 설치할 때이 문제가 있습니다. "Gem Environment"에서 실행 디렉토리는 "/usr/bin"대신 "/var/lib/gems/1.8/bin"이라는 것을 알았습니다. 이것은 Rubygems 또는 Ubuntu 9.04와 관련된 문제입니다.

내가 만난 솔루션은 다음을 수행하는 내 $ 경로에 "/var/lib/gems/1.8/bin"을 추가하는 것입니다. 내보내기 경로 = $ path : /var/lib/gems/1.8/bin이지만 저장되지 않습니다. ... 내 길을 어떻게 저장할 수 있습니까?

감사...

Resolvi : Coloquei o Export Path = $ path : /var/lib/gems/1.8/bin no ~/.bashrc! =

MKMF는 Ruby1.9.1-Dev 패키지의 일부입니다. 이 패키지에는 Ruby 1.9.1의 확장 라이브러리에 필요한 헤더 파일이 포함되어 있습니다. 수행하여 Ruby1.9.1-Dev 패키지를 설치해야합니다.

sudo apt-get 설치 Ruby1.9.1-dev

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top