
내 루비 폴더 구조를 이해하도록 도와주실 수 있나요? 내 보석이 왜 여기저기 흩어져 있는지, 명령을 인식하지 못하는 이유를 모르겠습니다.
먼저 설치가 어떻게 보이는지 설명하겠습니다.
/usr/bin/ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1
첫 번째는 "ruby" 명령이 터미널에서 작동하지 않았기 때문에 ruby1.9.1에 대한 소프트 링크입니다. 나는 "보석"에 대해서도 똑같이했습니다. 여기에서 setup.rb를 다운로드하고 추출한 후 실행하여 rubygems를 설치했습니다. ("ruby" 폴더를 만들었습니다.)
/home/pc/ruby/rubygems-1.7.2/setup.rb
/usr/bin/gem
/usr/bin/gem1.8
/usr/bin/gem1.9.1
"sudo gem install"을 사용하여 몇 가지 gem을 설치했습니다.
> gem list
*** LOCAL GEMS ***
compass (0.10.6)
haml (3.0.25)
mustache (0.99.3)
rake (0.8.7)
여태까지는 그런대로 잘됐다? 글쎄요, "나침반 버전"이라는 명령이 존재하지 않는 것 같습니다. 내가 조사하는 각 폴더마다 혼란이 커집니다. 예를 들어 다음 경로는 나에게 이해가 되지 않습니다. 왜 숨겨져 있을까요? 왜 이 폴더 안에는 콧수염이 유일한 보석인가요?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
우선, 여기 "gem 환경"이 있습니다. 이는 훨씬 덜 의미가 있습니다. 첫 번째 단락에서 말씀드린 것처럼 rubygems-1.7.2를 확실히 설치했기 때문입니다.하지만 여기에는 고대 버전 1.3.7이 표시됩니다. 왜?어제 우분투를 설치했습니다.
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /var/lib/gems/1.9.1/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /var/lib/gems/1.9.1
- /home/pc/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
ruby --version은 "ruby 1.8.7"을 반환합니다........... 또한, 모든 gem은 이 폴더에 설치됩니다. (콧수염도 마찬가지입니다! 이미 다른 폴더에 있음에도 불구하고) , "루비 환경"이 주장하는 것처럼:
/var/lib/gems/1.9.1/gems
하지만 이 보석 중 어느 것도 작동하지 않습니다. 레이크 외에는 어떤 것도 부를 수 없습니다. 그래서 여기서 제가 실수했을 것 같습니다. "gem install rake" 외에 "apt-get install rake"도 사용한 것 같습니다. "rake" 명령이 인식되지 않았고 명령 프롬프트에서 이를 제안했기 때문입니다. Rubygems로도 그렇게 했을 수도 있습니다. 저는 Linux를 처음 접했고 명령 프롬프트에서 이 기능을 올바르게 설치하는 방법을 알고 있다고 생각했습니다.
.
syslink를 전체적으로 생성해야 하는 것은 정상일 수 없겠죠?Windows에서는 이 문제가 발생하지 않았습니다.
답변1
rvm을 설치했는데 왜 이렇게 엉망이 되었는지 아직도 모르겠습니다. 하지만 이제 특정 Ruby 버전을 쉽게 강제 적용할 수 있고 모든 보석이 어디에 설치되는지 알 수 있습니다. (rvm 디렉토리에) 저에게 효과적입니다.
답변2
RubyGems
귀하의 문제는 apt-get이 아닌 수동으로 설치하는 것 같습니다 . 아마도 동일한 작업을 수행했거나 ruby
수동으로 생성한 심볼릭 링크를 포함하는 메타 패키지가 누락되었을 수 있습니다.
/var/lib/gems/1.9.1/bin
이는 모든 바이너리가 있는 디렉토리가 $PATH에 없는 것과 같은 이유이기도 합니다 . 따라서 이러한 gem에 대한 실행 파일을 찾을 수 없습니다.
Ruby 1.8에서 Ruby 1.9.3으로 업그레이드하는 경우 Ruby 1.8과 함께 설치된 gem은 여전히 Ruby 1.8 폴더에 있습니다. 다른 Ruby 버전으로 RubyGems를 설치했을 수 있습니다.
예를 들어 다음 경로는 나에게 이해가 되지 않습니다. 왜 숨겨져 있을까요? 왜 이 폴더 안에는 콧수염이 유일한 보석인가요?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
분명히 sudo 없이 콧수염을 설치했습니다.
gem install mustache
그러면 사용자를 위해 설치되며 사용자 설치 디렉토리는 입니다 $HOME/.gem/
. 실수로 삭제하지 않도록 폴더가 숨겨져 있습니다. $PATH에 추가해야 할 수도 있습니다(또는 로 설치 --no-user-install
).
해결책:
RubyGems(및 Ruby)를 수동으로 다운로드하여 설치하지 마세요. 패키지 관리자 사용( aptitude
)
aptitude
나중에 또는 다음을 사용하여 gem을 설치할지 결정할 수 있습니다 gem install
:
설치 패키지를 통해-apt-get-or-gem.