簡體   English   中英

我顯然遺漏了一些東西……'ruby' 不起作用,但 './ruby' 起作用(centos 5.5,從源代碼安裝)

[英]I'm clearly missing something… 'ruby' doesn't work but './ruby' does (centos 5.5, installed from source)

試圖讓 Rails 服務器運行良好。

  • 使用來自 rails 頁面的鏈接下載了 ruby 1.8.7。
  • 做了./configure/make/install,安裝得很好。
  • 試過 ruby -v,一無所獲。
  • 從文件夾中嘗試過./ruby -v 並且它有效。

我覺得我已經從了解 unix 到完全迷失了。 顯然 ruby 作為“守護進程”工作,但沒有按應有的方式運行。 任何幫助將非常感激。 通過這個過程失去了太多的頭發:(

J。

你能看到 make install 把 ruby 可執行文件放在哪里了嗎?

如果這樣做,請檢查此目錄是否在您的 $PATH 中

echo $PATH

一般來說,unix 需要知道在哪里可以找到可執行文件才能運行它。 它使用 $PATH 來查找這個可執行文件。

因此,如果您鍵入“ruby”,它將 go 查看 $PATH,然后在每個目錄中查找名為“ruby”的文件。 如果它在任何這些目錄中都找不到它,那么它也應該在當前目錄中查找。

因此,如果出現以下情況,整個過程將失敗:a) 包含可執行 ruby 文件的目錄不在 $PATH 中的任何目錄中,並且 b) 可執行文件不在當前目錄中

...另一種選擇在這些目錄之一中可用...但實際上並未被您標記為可執行。 您可以通過確保您在包含 ruby 文件的 int e 目錄並鍵入“ls -l./ruby”來檢查這一點

這將列出 ruby 文件及其所有權限和擁有者。 它應該是這樣的:

lrwxrwxrwx 1 root root 7 2010-02-14 10:45 ./ruby

注意 rwx。 如果您的 ruby 沒有 x 那么您需要使用 chmod 添加可執行權限,例如:“chmod 755./ruby”

還要注意“root root”——這意味着它由 root 擁有——通常,這意味着只有 root 可以運行它。 在這個特定的例子中,它對每個人都有執行權限,所以每個人都可以運行它,但是如果你沒有這樣的執行權限集,那么這意味着如果你試圖以自己的身份運行它,你將沒有權限,並且您應該添加完整權限或嘗試使用以下命令運行它:“sudo ruby”

但是 - 聽起來 - 最可能的問題是您的 $PATH 中沒有 ruby 可執行文件的目錄。 即使您現在運行它,您也需要修復它 - 因為將來您需要從當前目錄以外的目錄運行 ruby。

您需要在 Google 上獲取有關將內容添加到 $PATH 的說明 - 因為它會根據您的 linux 版本和您當前的 shell 的不同而有所不同,但這並不是很困難。

您正在運行哪個 shell? 如果是 tcsh,您可能需要“重新散列”。 否則,正如 leifg 所說,將包含 ruby 可執行文件的目錄添加到您的路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM