Вы не можете использовать ни одного название машины в/etc/hosts, ни вероятно имя с сервера DNS.
Необходимо использовать или IP-адрес машины или название NetBIOS машины, указанной в Windows.
Для нахождения NetBIOS называют в Windows XP:
'.'
Сумасшедшая идея, но действительно ли Вы уверены, что сервер на самом деле работает как корень? Некоторые серверы указывают учетную запись, которую они выполняют под, поэтому даже при том, что Вы вызываете сценарий запуска как корень, который они на самом деле выполняют как другой пользователь.
Существует много способов сделать это, включая то, которое Insyte предлагает выше.
Если, однако, необходимо установить переменную среды, которая не принадлежит/etc/ld.so.conf, Вы могли также просто поместить его в/etc/environment
Если это - дистрибутив семейства Redhat:
echo 'export LD_LIBRARY_PATH=/usr/local/oracle/lib' > /etc/profile.d/oracle
Имейте Вас, попробовал это:
sudo su - root -c "LD_LIBRARY_PATH=/usr/local/oracle/lib <command to start the app>"
Обратите внимание, что нет никакой точки с запятой между установкой переменной среды и выполнением команды.
Существуют способы добавить его к Вашему сценарию, но я предложил бы более легкое, больше устойчивого подхода должно будет добавить путь к конфигурации для динамического компоновщика непосредственно:
$ sudo editor /etc/ld.so.conf.d/railslibs
Добавьте путь, который Вы упоминаете в своем вопросе тому файлу и выполняете sudo ldconfig
.
Это должно сделать ENV, портящий ненужный.
Путем Вы достигли своих вопросов пользователя root здесь. Различные методы для "входа в систему" создают различные среды.
Например:
.bashrc
после запуска.bash_profile
после запуска.ssh/environment
также/etc/pam.d/login
будет использовать pam_env.so для чтения/etc/security/pam_env.conf (в зависимости от дистрибутива) и/etc/environment (если будет readenv=1) на командной строкеТак, если Вы не получаете среду, Вы хотите - необходимо выяснить цепочку логинов, которая ведет Вас к программному обеспечению, которое Вы запускаете. Это могло бы быть чем-то как: gdm (X) вход в систему-> эмулятор терминала-> колотят оболочку-> su-> оболочка удара (корень)-> программное обеспечение.
Однако, если Вы просто хотите взять лучшее предположение, /etc/environment
должен быть считан из каждого процесса в недавние дистрибутивы.
Вы могли попытаться установить переменную среды из попытки процесса направляющих добавить что-то как ниже в $RAILS_ROOT/config/environment.rb
Rails::Initializer.run do |config|
ENV['LD_LIBRARY_PATH'] = "/usr/local/oracle_client/v8_1_7/lib"
end
вероятно, необходимо удостовериться, что это установлено перед добавлением требования или операторов драгоценного камня для Вас привязка базы данных оракула.
У меня была подобная проблема. Я заглянул мой /etc/sudoers
файл и я видели эти строки:
Defaults env_reset Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \ LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \ LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \ LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \ _XKB_CHARSET XAUTHORITY"
Чтобы заставить мою переменную среды быть там, я должен был добавить ее имя после "XAUTHORITY". В Вашем случае Вы имели бы:
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \ LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \ LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \ LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \ _XKB_CHARSET XAUTHORITY LD_LIBRARY_PATH"
Дайте этому попытку.
Также удостоверьтесь, что Вы устанавливаете BASH_ENV="~/.bashrc"
в /etc/environment
.