Я не могу получить НИЧЕГО работающего над 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
Заранее спасибо!
Так, по-видимому, 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
Можно использовать -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
options iwlwifi 11n_disable=1 power_save=0 swcrypto=1
– impalle
27 August 2015 в 05:49
Причиной могла бы быть папка только для чтения. В моем случае 'Сделать' файл, который называет nvcc, был в папке только для чтения. Изменение настроек разрешения папки решило мою проблему.