우분투와 함께 보석을 어떻게 사용합니까?
-
05-09-2019 - |
문제
최근에 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