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 nvccparasudo /path/to/nvcc - Crie um link simbólico para
nvccem 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