2013-04-03 7 views
1

Я пытаюсь установить сопроцессор Xeon Phi. Конкретное поведение, вероятно, связано с задействованными инструментами - мой вопрос носит более общий характер.Разная среда при запуске sudo как root?

Когда я выполняю команду как root, я получаю ошибку сегментации. Когда я исполняю его как корень, но (на мой взгляд, излишне) использовать sudo, он работает:

i72:~ # whoami 
root 
i72:~ # micctrl -s 
Segmentation fault 
i72:~ # sudo micctrl -s 
[no segfault] 

Какие различия существуют в условиях micctrl запущен в?

(Изменить :) Я думаю, что мы исключили переменные окружения в качестве опции ниже.

Система SLES 11.2.

Спасибо!

ответ

2

sudo удаляет LD_LIBRARY_PATH, LD_PRELOAD из среды (я подозреваю, что он делает это как для обычных, так и для обычных пользователей). Это может привести к загрузке различных библиотек для программы.

Судо может быть настроен на то, что переменная она сбрасывает/очищает - см http://brandonhutchinson.com/wiki/Sudo_and_environment_variables

+0

Спасибо. Переменные среды - хорошая идея. 'env -i bash' должен воссоздать ту же среду' sudo', верно? Однако в этом случае 'micctrl -s' segfaults снова. – mrks

+2

@mdsl Я бы пошел на 'sudo bash', а затем запустил' micctrl -s' и проверил. –

+0

Nope. Такой же секрет. :/ – mrks

1

Оказывается, что Судо просто скрывает сообщение «ошибка Segmentation». Это все еще происходит, но не отображается на терминале. Мы узнали, потому что micctrl никогда не давали нам выхода, даже если это должно было быть.

Редактировать: Кроме того, если кто-то столкнулся с проблемой с micctrl: В нашем случае система Phi не была правильно распознана системой. lspci нашел его, но его не указали в /sys/class/mic.