我爲Sinatra項目安裝了data_mapper。好奇,爲什麼當我做gem install brew
,我可以$ which brew
並得到它的位置的路徑,不能爲data_mapper?這適用於一些寶石,並不適用於其他寶石。如何檢查是否安裝了寶石?
如何驗證寶石是否正確安裝?將檢查版本確保寶石是否正確下載?
我爲Sinatra項目安裝了data_mapper。好奇,爲什麼當我做gem install brew
,我可以$ which brew
並得到它的位置的路徑,不能爲data_mapper?這適用於一些寶石,並不適用於其他寶石。如何檢查是否安裝了寶石?
如何驗證寶石是否正確安裝?將檢查版本確保寶石是否正確下載?
通用的解決方案
嘗試gem list
得到安裝的寶石的名單。
要測試一個特定的寶石,你可以使用-i
與正則表達式:gem list -i "^gem_name$"
。 (感謝蒂莫在這種技術的意見。)爲OP
如果你不能找到data_mapper
具體的解決方案,這可能是因爲創業板的名字是與預期的不同。
另外,如果您只是在做which brew
來查找brew,那麼您沒有找到名爲brew的gem,您正在查找brew可執行文件的位置。改爲嘗試gem which brew
。
編輯:
如果你正在做which data_mapper
尋找data_mapper,你可能不會發現它。 which
是一個用於查找unix可執行文件的unix程序,data_mapper可能沒有。
由於您的目標是驗證是否安裝了正確版本的gem,請使用gem list
。您可以通過使用gem list data_mapper
來限制特定的寶石。
要驗證它的安裝和工作,你必須嘗試require
的寶石,然後在你的代碼中使用它。
'gem list'顯示我有data_mapper。 'gem哪個brew'找到可執行文件?它看起來像一個.rb文件 – andy4thehuynh
'gem which somegemname'顯示的路徑(我認爲)當您執行'require'somegemname''時加載的文件。一般來說,寶石沒有像你通過常規unix發現的程序那樣有'可執行文件'。 –
如果你要使用的支票在腳本中,這給出了一個更好的輸出(true或false)和相應的退出碼:
gem list -i <gem_name>
或者添加版本選項:
gem list -i <gem_name> -v version
你可以試試這個http://stackoverflow.com/a/32986687/3728916 – ImranNaqvi