Portanto, aparentemente, nvcc
não está no PATH
quando você o executa com sudo
. Você pode confirmar isso com:
sudo bash -c 'echo $PATH'
A solução mais fácil é chamar sudo
com o caminho absoluto de nvcc
:
sudo $(which nvcc)
Ao executar comandos sem caminho absoluto como nvcc
, sudo
usa o valor da configuração secure_path
em /etc/sudoers
como PATH
, por exemplo, em meu sistema:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Portanto, mesmo que você defina PATH
em um dos arquivos de inicialização que o shell normalmente origina, não funcionará. Se você quiser que sudo nvcc
funcione temporariamente, apenas para que sua construção funcione, acho que você tem duas opções:
- Edite o script do instalador e altere as linhas com
sudo nvcc
parasudo /path/to/nvcc
- Crie um link simbólico para
nvcc
em um dos diretórios listados emsecure_path
, desta forma:sudo ln -s /path/to/nvcc /sbin/nvcc
UPDATE
Se você tiver dificuldade em encontrar o caminho de nvcc
, você pode tentar esses comandos, nesta ordem (eles ficam mais lentos e mais lentos), até encontrar uma correspondência:
which nvcc
find /usr/local/cuda-5.0 -name nvcc
find /usr/local/ -name nvcc
find /opt -name nvcc
find / -name nvcc