Я явно что-то упускаю ... 'ruby' не работает, но './ruby' делает (centos 5.5, установлен из источника) - PullRequest
1 голос
/ 29 апреля 2011

Попытка заставить сервер rails работать нормально.

  • скачал ruby ​​1.8.7 по ссылке со страницы rails.
  • сделал ./configure/make/install, установил его нормально.
  • попробовал ruby ​​-v, ничего не получил.
  • попробовал ./ruby -v из папки и все заработало.

Я чувствую, что ушел от понимания чего-то о Unix, до полной потери. Очевидно, что ruby ​​работает как «демон», но работает не так, как должен. Любая помощь приветствуется. Потеря слишком большого количества волос в результате этого процесса: (

J.

Ответы [ 3 ]

3 голосов
/ 29 апреля 2011

вы видите, где make install устанавливает исполняемый ruby?

если вы это сделаете, проверьте, находится ли этот каталог в вашем $ PATH, по

echo $PATH

2 голосов
/ 16 мая 2011

В общем, unix должен знать, где найти исполняемый файл, чтобы иметь возможность его запустить.Он использует $ PATH, чтобы найти этот исполняемый файл.

Так что, если вы наберете «ruby», он посмотрит на вас $ PATH и затем в каждом из этих каталогов найдет файл с именем «ruby».Если он не может найти его ни в одном из этих каталогов, он должен , а затем также заглянуть в текущий каталог.

Итак, весь этот процесс завершится ошибкой, если: a) каталог, содержащийисполняемый файл ruby ​​не находится ни в одном из каталогов в $ PATH И b) исполняемый файл не находится в текущем каталоге

... еще одна альтернатива состоит в том, что является доступным в одном изэти каталоги ... но на самом деле они не помечены как исполняемые вами.Вы можете проверить это, убедившись, что вы находитесь в каталоге с файлом ruby, и набрав «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 - inВ общем, это означает, что только root может запустить его.В этом конкретном примере у него есть разрешение eXecute для всех, так что каждый может его запустить, но если у вас нет такого разрешения, как это, то это означает, что если вы пытаетесь запустить его от себя, у вас не будет разрешения, иВы должны либо добавить полные права доступа, либо попробовать запустить его с помощью: "sudo ruby"

Однако, судя по звукам, наиболее вероятной проблемой является то, что у вас просто нет каталога исполняемого файла ruby ​​в вашем $ PATH,Вам нужно будет это исправить, даже если вы запустите его прямо сейчас - потому что в будущем вам нужно будет запускать ruby ​​из каталогов, отличных от текущего.

Вам нужно будет зайти в Google для получения инструкций по добавлению вещей.на ваш $ PATH - потому что он отличается в зависимости от вашей версии linux и вашей текущей оболочки, но это не очень сложно.

1 голос
/ 29 апреля 2011

Какую оболочку вы используете? Если tcsh, вам может понадобиться перефразировка. В противном случае, как говорит leifg, добавьте в свой каталог каталог, содержащий исполняемый файл ruby.

...