2014-03-05 3 views
29

Sinatra 프로젝트에 data_mapper를 설치했습니다. 호기심, 왜 내가 gem install brew을 할 때, 내가 할 수 $ which brew과 그 위치의 경로를 얻을 data_mapper 수 없습니까? 이것은 일부 보석에 적용되며 다른 보석에는 적용되지 않습니다.보석이 설치되어 있는지 확인하는 방법은 무엇입니까?

보석이 제대로 설치되었는지 어떻게 확인합니까? 버전을 확인하면 보석이 올바르게 다운로드되었는지 확인할 수 있습니까?

+0

:

gem list -i <gem_name> 

은 또한 버전 옵션을 추가 당신은 이것을 시도 할 수 있습니다 http://stackoverflow.com/a/32986687/3728916 – ImranNaqvi

답변

33

일반 솔루션

설치되어 보석의 목록을 가져 gem list을보십시오.

특정 보석을 테스트하려면 -i에 정규식 : gem list -i "^gem_name$"을 사용할 수 있습니다. (이 기술에 대한 코멘트에 티모에 감사드립니다.)

당신이 data_mapper을 찾을 수없는 경우 OP에 대한

특정 솔루션, 그것은 보석의 이름은 당신이 기대하는 것과 다른 것을 할 수있다.

또한 brew를 찾기 위해 which brew을 수행하는 경우 brew라는 보석을 찾지 못하면 BREW 실행 가능 파일의 위치를 ​​찾습니다. 대신 gem which brew을 시도하십시오.

편집 : 당신이 which data_mapper을 수행하여 data_mapper을 찾고 있다면

, 당신은 아마 그것을 찾을 수 없습니다. which은 유닉스 실행 파일을 찾는 유닉스 프로그램이고, data_mapper는 아마도 유닉스 실행 파일을 가지고 있지 않을 것이다.

귀하의 목표는 보석이 올바른 버전으로 설치되었는지 확인하는 것이므로 gem list을 사용하십시오. gem list data_mapper을 사용하여 특정 보석으로 제한 할 수 있습니다.

이 설치되었고으로 작동하는지 확인하려면 require 보석을 시도한 다음 코드에서 사용해야합니다.

스크립트에서 수표를 사용하려는 경우
+0

'gem list'는 내가 data_mapper를 가지고 있음을 보여주었습니다. 실행 가능한 것을 찾을 수있는'보석류'보석인가? .rb 파일처럼 보입니다. – andy4thehuynh

+1

'gem은 somegemname'이'require 'somegemname''을 할 때로드하는 파일에 대한 경로를 보여줍니다. 일반적으로, 보석은 '유닉스'를 통해 발견 할 수있는 방식으로 '실행 파일'을 갖고 있지 않습니다. –

31

, 이것은 더 나은 출력을 제공합니다 (true 또는 false) 적절한 종료 코드 :

gem list -i <gem_name> -v version 
+0

'gem list'는 일치하는 정규 표현식을 인자로 취합니다. 그러므로'gem list -i zip'과 같은 것을 말하면 잠재적으로 매우 많은 다른 보석이 있습니다 ('gem list -r zip | wc -l'는이 글을 쓰는 시점에서 197을 반환합니다). 그러나 당신이 특히 지퍼 보석에 관심이 있다면 regexp zip, 즉'보석 목록 -i^zip $'에서 말하도록해야합니다. 그렇지 않으면'gem install spain_zip_codes && gem list -i zip' => true가 될 것입니다. – Timo

+0

정확한 이름을 테스트하려면'-em'와 같이'gem list -ie zip'을 사용하십시오. – artm

관련 문제