Полагаю, M ODULEPATH
в выводе, производном от Emacs, является просто опечаткой копирования и вставки.
Различия между двумя env
выходами намного больше, чем я ожидал; Я выбрал те, которые кажутся мне немного подозрительными:
$ diff -u works fails
--- works 2011-10-24 15:04:02.000000000 -0700
+++ fails 2011-10-24 15:12:36.000000000 -0700
...
+LD_LIBRARY_PATH=/usr/lib64/R/lib:/usr/local/lib64:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/java/lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
...
-PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/opt/dell/srvadmin/bin
-PWD=/home/dleb
...
+PATH=/bin:/usr/bin:/usr/sbin:/usr/local/bin
...
+PWD=/home/a-m/dleb/pecan
...
В сеансе, производном от emacs, ваша переменная окружения LD_LIBRARY_PATH
может изменять специфику использования динамически связанных библиотек при выполнении ruby
. Если вы ssh
зашли на свой сервер и выполнили foo.rb
с измененным LD_LIBRARY_PATH
, это сработает или не получится?
LD_LIBRARY_PATH=/usr/lib64/R/lib:/usr/local/lib64:/usr/lib/jvm/jre/lib/amd64/server:/usr/lib/jvm/jre/lib/amd64:/usr/lib/jvm/java/lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib ./foo.rb
Переменная среды PATH
между двумя сеансами различна; возможно, у вас есть разрешение на выполнение /usr/local/bin/ruby
(или библиотеки в /usr/local/lib/ruby/
), но не /usr/bin/ruby
(или библиотеки в /usr/lib/ruby/
). Использует ли ваш скрипт #!env ruby
или #!/usr/bin/ruby
(или какой-либо другой фиксированный путь)?
Ваш pwd
в одном случае равен /home/dleb
, в другом /home/a-m/dleb/pecan
- но HOME
установлен на /home/a-m/dleb
в обеих системах. /home/dleb
- это символическая ссылка или она существует отдельно от /home/a-m/dleb
? (Это действительно цепляет за соломинку - я не думаю, что это так, но эта проблема является сбивающей с толку.)
Последнее, что нужно учитывать: ограничен ли ваш сервер такими инструментами, как AppArmor , SELinux , TOMOYO или SMACK ? Любой из этих инструментов обязательного контроля доступа может предотвратить запись приложения в определенных местах, возможно, они еще не настроены для вашего сайта. Проверьте вывод dmesg(1)
, чтобы увидеть, есть ли какие-либо сообщения об отклонении, большинство или все эти инструменты записывают в dmesg(1)
, если auditd(8)
не работает.