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
AND /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"
そのため、シェルが通常ソースするスタートアップファイルの1つにPATH
を設定しても、機能しません。ビルドを機能させるために、Sudo nvcc
を一時的に機能させたい場合は、2つのオプションがあると思います。
Sudo nvcc
の行をSudo /path/to/nvcc
に変更しますsecure_path
にリストされているディレクトリの1つにnvcc
へのシンボリックリンクを作成します:Sudo ln -s /path/to/nvcc /sbin/nvcc
UPDATE
nvcc
のパスを見つけるのに苦労している場合は、一致するまでこれらのコマンドをこの順序で(ゆっくりと遅くなるように)試すことができます。
which nvcc
find /usr/local/cuda-5.0 -name nvcc
find /usr/local/ -name nvcc
find /opt -name nvcc
find / -name nvcc
Sudo
の-E
オプションを使用して、ユーザー環境を維持できます。 manページから:
-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