2015-11-04 35 views
0

我正在寫一個dev命令行工具gem(比方說叫「工具」),我想在系統的任何地方使用它。我將RVM用於不同的項目,但這些工具應該在這些項目的命令行中提供。如何安裝gem,使其獨立於當前活動的RVM gemset執行?

如果我只是使用「gem install」(假設它安裝到/ usr/local/bin/tool)來全局安裝gem,那麼該可執行文件當然可以在其他項目中使用,但由於gemset在執行時發生了更改「工具」失敗,說它無法找到「工具」寶石(因爲「工具」從未安裝到該寶石上)。我不想將寶石添加到所有項目的所有Gemfiles中。

處理這個問題的最好方法是什麼?也許有一種方法可以在安裝時「鎖定」可執行文件中的gem_path/gem_home?

+0

我看到至少有一個選擇是將可執行調用封裝在「env -i」中,如下所述:http://unix.stackexchange.com/questions/48994/how-to-run-a-program-in -bash-environment-in-bash。 – astgtciv

+0

「,但由於gemset在執行」tool「時發生了變化,所以失敗時說它無法找到」tool「gem(因爲」tool「從未安裝到該gemset)」 - 你是什麼意思? 「我不想將寶石添加到所有項目的所有Gemfiles中。」 - 如果您需要項目中的工具,則應將其添加到Gemfile中。 – Hardy

+0

@Hardy我正在談論全系統的命令,例如可能已經使用brew安裝的東西。只有它恰好是一顆寶石。嗯,也許https://github.com/sportngin/brew-gem會做的伎倆,將檢查... – astgtciv

回答

相關問題