nvcc, не найденный, но только при использовании sudo

Я не могу получить НИЧЕГО работающего над Linux. Я пытаюсь скомпилировать CudaMiner. Вывод sudo make:

ypt-jane.o `test -f 'scrypt-jane.cpp' || echo './'`scrypt-jane.cpp
mv -f .deps/cudaminer-scrypt-jane.Tpo .deps/cudaminer-scrypt-jane.Po
nvcc -g -O2 -Xptxas "-abi=no -v" -arch=compute_10 --maxrregcount=64 --ptxas-options=-v -I./compat/jansson -o salsa_kernel.o -c salsa_kernel.cu
/bin/bash: nvcc: command not found
make[2]: *** [salsa_kernel.o] Error 127
make[2]: Leaving directory `/var/progs/CudaMiner'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/progs/CudaMiner'
make: *** [all] Error 2

Так, довольно интересный. Вывод nvcc:

nvcc fatal   : No input files specified; use option --help for more information

Принимая во внимание, что вывод sudo nvcc:

sudo: nvcc: command not found

Мне перечислили идентичный экспорт в ~/.bashrc И /etc/bash.bashrc. (Nvcc расположен в: /usr/local/cuda-5.0/bin/nvcc)

Я также пытался изменить текущий путь, напрасно:

$ sudo bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ PATH=$PATH:/usr/local/cuda-5.0/bin/nvcc
$ sudo bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Заранее спасибо!

2
задан 9 January 2017 в 02:57

3 ответа

Так, по-видимому, nvcc не находится на PATH когда Вы выполняете его с sudo. Можно подтвердить это с:

sudo bash -c 'echo $PATH'

Самое легкое решение состоит в том, чтобы звонить sudo с полным путем nvcc:

sudo $(which nvcc)

При выполнении команд без полного пути как nvcc, sudo использует значение secure_path конфигурация в /etc/sudoers как PATH, например, в моей системе:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Таким образом, даже если Вы устанавливаете PATH в одном из файлов запуска, которые обычно получает оболочка, она не будет работать. Если Вы хотите сделать sudo nvcc работайте временно, только для получения работы сборки, я думаю, что у Вас есть две опции:

  • Отредактируйте сценарий установщика и измените строки с sudo nvcc кому: sudo /path/to/nvcc
  • Создайте символьную ссылку на nvcc в одном из каталогов, перечисленных в secure_path, как это: sudo ln -s /path/to/nvcc /sbin/nvcc

ОБНОВЛЕНИЕ

Если Вам нелегко находить путь nvcc, можно попробовать эти команды в этом порядке (они становятся медленнее и медленнее), пока Вы не находите соответствие:

which nvcc
find /usr/local/cuda-5.0 -name nvcc
find /usr/local/ -name nvcc
find /opt -name nvcc
find / -name nvcc
4
ответ дан 9 January 2017 в 02:57

Можно использовать -E опция sudo для сохранения пользовательской среды. Из страницы справочника:

 -E, --preserve-env
             Indicates to the security policy that the user wishesto preserve their existing environment
             variables.  The security policy may return an error if the user does not have permission to
             preserve the environment.

можно протестировать это с:

$ sudo bash -c 'echo $PATH'

и затем

sudo nvcc
0
ответ дан 9 January 2017 в 02:57
  • 1
    Это находится в моем файле конфигурации: options iwlwifi 11n_disable=1 power_save=0 swcrypto=1 – impalle 27 August 2015 в 05:49

Причиной могла бы быть папка только для чтения. В моем случае 'Сделать' файл, который называет nvcc, был в папке только для чтения. Изменение настроек разрешения папки решило мою проблему.

-1
ответ дан 9 January 2017 в 02:57
  • 1
    Никакая подсказка, что Bednar всего лишь, если команда работает тогда mplayer, не имеет поддержку dvdnav. Я сохраняю некоторые недавние сборки здесь для пользователей, хотя Не обеспечивают mencoder & вероятно, никогда не будет - launchpad.net/~mc3man/+archive/ubuntu/mplayer-test I' m, вероятно, собирающийся переключать устройство DVD по умолчанию от текущего/dev/dvd до/dev/sr0 в будущих сборках столько won' t должен определить устройство. – doug 20 August 2015 в 15:17

Другие вопросы по тегам:

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