" blabla.so
찾을 수 없음"을 얻기 위해 LD_CONFIG_PATH에 경로를 추가하는 스크립트를 작성하려고합니다 . 문제는 내 스크립트가 내보내기를 통해 자체 컨텍스트를 수정할 수 있지만 다른 셸에는 영향을 미치지 않는다는 것입니다. 재부팅과 셸 사이에 지속되도록 변수를 전역 적으로 설정하고 싶습니다.
내 현재 스크립트는 다음과 같습니다.
LDPATH='/opt/mqm/lib64'
LD_LIBRARY_PATH="$LDPATH:$LD_LIBRARY_PATH"
ldconfig
내가 달리는
sudo ./set_my_ld_path.sh
$LD_LIBRARY_PATH
그리고 아무것도 반환하지 않습니다 ( LD_LIBRARY_PATH
비어 있음).
나는 또한 시도했다
LDPATH='/opt/mqm/lib64' env
LD_LIBRARY_PATH="$LDPATH:$LD_LIBRARY_PATH"
ldconfig
하지만 PATH / LANG / HOME / LC_TIME / ...과 같은 기존 변수 만 작성합니다.
예를 들어 powershell에서 다음 스크립트를 실행할 수 있으며 여기에서 원하는 작업을 수행합니다.
# setting an environment variable for current and descendant processes, same as bash `export`
$env:OPENCV_DIR = $OPENCV_DIR
# applying it machine-wide, persists between users/shells/reboots
[Environment]::SetEnvironmentVariable("OPENCV_DIR", $env:OPENCV_DIR, [EnvironmentVariableTarget]::Machine)
어떻게 할 수 있습니까?
우선 과제는 =
.
둘째, 자식 프로세스 (스크립트)에서 현재 환경에 영향을 미칠 수 없습니다.
스크립트 설정이 환경 변수를 실행하고, 그 변화는 현재의 환경에 영향을 가지려면 다음 중 하나를 사용하여 스크립트 소스 필요가있을 것이다 .
, 또는 (점) source
에서를 bash
.
또한 스크립트를 소스로 사용하지 않을 수도 있습니다 sudo
( sudo
이 경우에는 왜 사용하는지 불분명합니다 ).
이것은 다음과 같은 스크립트 파일을 가질 수 있음을 의미합니다.
LD_LIBRARY_PATH="/opt/mqm/lib64:$LD_LIBRARY_PATH"
다음 중 하나를 사용하여 소스
. ./file
또는
source ./file
대화 형 셸 ( ~/.bashrc
을 사용하는 경우) 용 셸 시작 파일에서 변수를 설정 (및 내보내기)하면 bash
"전역 적으로"(셸에서 시작된 모든 프로세스에 대해) 설정됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다