我只是嘗試在我有一段時間沒有使用的 FreeBSD 機器上運行 ruby 腳本,並得到“ruby:找不到命令”。所以我想我只是之前沒有安裝它。前往 /usr/ports/lang/ruby22 並執行 make install clean。這告訴我 ruby22 已經安裝了。
然後我做了一個 pkg version -v,這表明它實際上已經安裝了。然後我想它可能有一個 bin 目錄,由於某種原因從 $PATH 中刪除了,或者類似的東西,所以我做了一個 make deinstall,然後做了一個 make install。它聲稱已經安裝得很好,但我仍然收到“ruby:找不到命令”錯誤。
進一步調查,它確實安裝了 /usr/local/bin/ruby22 可執行文件,我想我可以創建一個指向它的符號鏈接,但是......這裡出了什麼問題嗎?是否有一些我沒有採取的安裝步驟可以讓 FreeBSD 知道我真的非常想使用這個特定版本的 Ruby 作為機器的預設「ruby」?
如果重要的話,這是 10.1 RELEASE amd64,而 ports 樹是完全最新的,所有安裝的軟體包也是如此。
答案1
據介紹/usr/ports/UPDATING:20150301
,目前 Ruby 的預設版本是 2.1。如果您想使用 2.2 作為預設值,您應該更新以下DEFAULT_VERSIONS
旋鈕/etc/make.conf
:
DEFAULT_VERSIONS+=ruby=2.2
然後,您需要重新安裝 Ruby 2.2,以確保安裝的二進位檔案和腳本具有預期的名稱(即沒有版本後綴)。