さまざまなバージョンのCUDAがインストールされており/usr/local/cuda-...
、さまざまなプロジェクトに適した正しいバージョンを選択する方法が必要です。
頑張った
export CUDA_HOME=/usr/local/cuda-10.0
export PATH=\$CUDA_HOME/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=\$CUDA_HOME/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
しかし、PATHの変数は拡張されていないようです。
これまでの私の最高のアイデアは次のとおりです。
BASEPATH=$PATH:$HOME/installed/pycharm-community-2020.2/bin
LIBBASEPATH=$LD_LIBRARY_PATH
function env100() {
CUDA_HOME=/usr/local/cuda-10.0
setpaths
}
function env101() {
CUDA_HOME=/usr/local/cuda-10.1
setpaths
}
function setpaths() {
export PATH=$BASEPATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=$LIBBASEPATH:$CUDA_HOME/lib64
}
しかし、これが私がやりたいことをする最も簡単な方法だとは思えません。そして、私はそれがどのような奇妙な方法で爆発する可能性があるかを知るのに長い間それを使用しませんでした。 (編集:最初に爆発するもの:Python virtualenvs。)
関連項目: この質問に似た作業をしようとしています。Bashで「動的」パスを設定する正しい方法は何ですか? (Android SDKに適用可能)
それではあなたの提案を聞きましょう!
答え1
やりたいことに関する追加情報がなければ、何かを推薦するのは難しいです。
パス拡張は次のように実行されます。
PATH=$PATH:$CUDA_HOME/bin:/foo/otherpath
.bashrc
各ユーザーエクスペリエンスに特定のPATHを設定して、より多くのユーザーを作成できます(bashを使用している場合)export
。ユーザーを切り替えるには、su username
runを実行してexit
もう一度切り替えます。whoami
方向を見つけるために走ります。実行して、echo $SHLVL
現在のシェルレベルが何であるかを確認します。最初のシェルでは、SHLVL
カウンタ var は 1 で始まり、毎回 1 ずつsu
増減します。exit
PATH
export
ingなしでシェルスクリプトでvarを設定します。これはPATH
スクリプトが実行されるサブシェルのみを変更します。
テストファイル
#!/bin/bash
PATH=/home/foo
echo $PATH
走る./test.sh;echo $PATH
- コンパイルされたコードを使用している場合は、
make
パスを追加/変更できます。ファイルの生成