Как указать переменную среды корня?

Вы не можете использовать ни одного название машины в/etc/hosts, ни вероятно имя с сервера DNS.

Необходимо использовать или IP-адрес машины или название NetBIOS машины, указанной в Windows.

Для нахождения NetBIOS называют в Windows XP:

  1. Щелкните правой кнопкой по "My Computer"
  2. Нажмите "Properties"
  3. Нажмите вкладку "Computer Name"
  4. Считайте поле "Full computer name" до первого периода '.'
4
задан 15 November 2012 в 19:07
8 ответов

Сумасшедшая идея, но действительно ли Вы уверены, что сервер на самом деле работает как корень? Некоторые серверы указывают учетную запись, которую они выполняют под, поэтому даже при том, что Вы вызываете сценарий запуска как корень, который они на самом деле выполняют как другой пользователь.

1
ответ дан 3 December 2019 в 02:56
  • 1
    Таким образом, я попробовал: ENV sudo и это говорят, что USER=root, Который означает sudo действие, столь же базируется, правильно? –   4 September 2009 в 06:16
  • 2
    Да, sudo действует как корень. Мой вопрос был, делает сценарий запуска для выполнения сервера, делают sudo it' s владеют так, чтобы сам сервер на самом деле работал как другой пользователь. Широко распределенные серверы делают это все время. Например, если Вы работаете, sudo mysqld запускаются, и сценарий вызывается как корень, но сервер заканчивает тем, что работал как пользователь mysql. Это может иногда смешивать с вещами как пути к библиотеке. –  Catherine MacInnes 4 September 2009 в 15:27

Существует много способов сделать это, включая то, которое Insyte предлагает выше.

Если, однако, необходимо установить переменную среды, которая не принадлежит/etc/ld.so.conf, Вы могли также просто поместить его в/etc/environment

0
ответ дан 3 December 2019 в 02:56
  • 1
    Поместите $LD_LIBRARY_PATH =/usr/local/oracle_client/v8_1_7/lib в выход из системы/etc/environment и войдите снова.... в ту же ошибку... –   4 September 2009 в 00:44
  • 2
    Ожидайте... Вы включая " $ " там? Это должно просто быть: LD_LIBRARY_PATH =/usr/local/oracle_client/v8_1_7/lib, Какую ошибку Вы получаете точно? Можете Вы вставка копии сообщение здесь? –  DictatorBob 4 September 2009 в 17:49
  • 3
    лучше, помещенный/usr/local/oracle_client/v8_1_7/lib в/etc/ld.so.conf и выполненном ldconfig –  araqnid 19 December 2009 в 14:58

Если это - дистрибутив семейства Redhat:

echo 'export LD_LIBRARY_PATH=/usr/local/oracle/lib' > /etc/profile.d/oracle
0
ответ дан 3 December 2019 в 02:56
  • 1
    Я should' ve упомянул it' s человечность... там эквивалентный каталог как/etc/profile.d/oracle на человечности?спасибо. –   4 September 2009 в 06:21

Имейте Вас, попробовал это:

sudo su - root -c "LD_LIBRARY_PATH=/usr/local/oracle/lib <command to start the app>"

Обратите внимание, что нет никакой точки с запятой между установкой переменной среды и выполнением команды.

0
ответ дан 3 December 2019 в 02:56

Существуют способы добавить его к Вашему сценарию, но я предложил бы более легкое, больше устойчивого подхода должно будет добавить путь к конфигурации для динамического компоновщика непосредственно:

$ sudo editor /etc/ld.so.conf.d/railslibs

Добавьте путь, который Вы упоминаете в своем вопросе тому файлу и выполняете sudo ldconfig.

Это должно сделать ENV, портящий ненужный.

0
ответ дан 3 December 2019 в 02:56
  • 1
    Сопровождаемый Ваш подход и я нашли, вижу ли я sudo su - я, что корень действительно имеет тот путь к библиотеке. Однако я все еще can' t будят приложение и выполнение, все еще получил то же сообщение об ошибке. Какая-либо идея? –   4 September 2009 в 00:20
  • 2
    Хм... Моя точка была этим, если Вы добавляете его к конфигурации ld, Вы shouldn' t должен иметь его в LD_LIBRARY_PATH. Если Вы выполняете " sudo ldconfig-v" Ваш каталог оракула обнаруживается в выводе? –  Insyte 4 September 2009 в 19:54

Путем Вы достигли своих вопросов пользователя root здесь. Различные методы для "входа в систему" создают различные среды.

Например:

  • Если удар будет Вашей корневой оболочкой, то он будет читать .bashrc после запуска
  • Если удар будет Вашей корневой оболочкой, и это - оболочка "входа в систему", то это будет читать .bash_profile после запуска
  • Если Вы зарегистрируетесь на пути ssh, то это будет использовать .ssh/environment также
  • Если Вы регистрируете на пути вход в систему, который является от консоли, /etc/pam.d/login будет использовать pam_env.so для чтения/etc/security/pam_env.conf (в зависимости от дистрибутива) и/etc/environment (если будет readenv=1) на командной строке
  • и т.д.

Так, если Вы не получаете среду, Вы хотите - необходимо выяснить цепочку логинов, которая ведет Вас к программному обеспечению, которое Вы запускаете. Это могло бы быть чем-то как: gdm (X) вход в систему-> эмулятор терминала-> колотят оболочку-> su-> оболочка удара (корень)-> программное обеспечение.

Однако, если Вы просто хотите взять лучшее предположение, /etc/environment должен быть считан из каждого процесса в недавние дистрибутивы.

1
ответ дан 3 December 2019 в 02:56

Вы могли попытаться установить переменную среды из попытки процесса направляющих добавить что-то как ниже в $RAILS_ROOT/config/environment.rb

Rails::Initializer.run do |config|
   ENV['LD_LIBRARY_PATH'] = "/usr/local/oracle_client/v8_1_7/lib"
end

вероятно, необходимо удостовериться, что это установлено перед добавлением требования или операторов драгоценного камня для Вас привязка базы данных оракула.

0
ответ дан 3 December 2019 в 02:56

У меня была подобная проблема. Я заглянул мой /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.

Дополнительную информацию см. в этом другом ответе

6
ответ дан 3 December 2019 в 02:56

Теги

Похожие вопросы