
다양한 버전의 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에서 "동적" 경로를 설정하는 올바른 방법은 무엇입니까? (안드로이드 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
경로를 추가/변경할 수 있습니다.파일 생성