Je ne peux rien faire fonctionner sur Linux. Je suis essaye de compiler CudaMiner . Sortie de 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
Donc, assez intéressant. Sortie de nvcc
:
nvcc fatal : No input files specified; use option --help for more information
Alors que le résultat de Sudo nvcc
:
Sudo: nvcc: command not found
J'ai des exportations identiques répertoriées dans ~/.bashrc
AND /etc/bash.bashrc
. (Nvcc se trouve dans: /usr/local/cuda-5.0/bin/nvcc
)
J'ai aussi essayé de changer le chemin actuel, en vain:
$ 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
Merci d'avance!
Donc, apparemment, nvcc
n'est pas sur le PATH
lorsque vous l'exécutez avec Sudo
. Vous pouvez le confirmer avec:
Sudo bash -c 'echo $PATH'
La solution la plus simple consiste à appeler Sudo
avec le chemin absolu de nvcc
:
Sudo $(which nvcc)
Lorsque vous exécutez des commandes sans chemin absolu comme nvcc
, Sudo
utilise la valeur de la configuration secure_path
dans /etc/sudoers
comme PATH
, par exemple dans mon système:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Ainsi, même si vous définissez PATH
dans l'un des fichiers de démarrage normalement fournis par le shell, cela ne fonctionnera pas. Si vous voulez que Sudo nvcc
fonctionne temporairement, juste pour que votre construction fonctionne, je pense que vous avez deux options:
Sudo nvcc
en Sudo /path/to/nvcc
nvcc
dans l'un des répertoires répertoriés dans secure_path
, comme ceci: Sudo ln -s /path/to/nvcc /sbin/nvcc
UPDATE
Si vous avez du mal à trouver le chemin de nvcc
, vous pouvez essayer ces commandes, dans cet ordre (elles ralentissent), jusqu'à ce que vous trouviez une correspondance:
which nvcc
find /usr/local/cuda-5.0 -name nvcc
find /usr/local/ -name nvcc
find /opt -name nvcc
find / -name nvcc
Vous pouvez utiliser l’option -E
de Sudo
pour préserver votre environnement utilisateur. De la page de manuel:
-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.
Vous pouvez tester cela avec:
$ Sudo bash -c 'echo $PATH'
puis
Sudo nvcc