환경 변수를 영구적으로 설정하는 방법 LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib ORACLE_HOME=/usr/lib/oracle/11.2/client64 이러한 변수를 영구적으로

내 변수는

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64

이러한 변수를 영구적으로 저장하는 방법은 무엇입니까?



답변

파일 .profile또는 로그인 쉘 프로파일 파일 (홈 디렉토리에 있음)에 파일 을 추가 할 수 있습니다 .

환경 변수를 “영구적으로”변경하려면 최소한 다음 상황을 고려해야합니다.

  1. 로그인 / 비 로그인 셸
  2. 대화식 / 비 대화식 셸

세게 때리다

  1. 로그인 쉘과 같은 배쉬로드 /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile순서대로
  2. 비 로그인 대화식 쉘로 Bash가로드됩니다 ~/.bashrc
  3. 비 로그인 비 대화식 쉘로 Bash는 환경 변수에 지정된 구성을로드합니다. $BASH_ENV
$EDITOR ~/.profile
#add lines at the bottom of the file:
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64

zsh

$EDITOR ~/.zprofile
#add lines at the bottom of the file:
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64

ksh

$EDITOR ~/.profile
#add lines at the bottom of the file:
     export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     export ORACLE_HOME=/usr/lib/oracle/11.2/client64

시내

$EDITOR ~/.profile
#add lines at the bottom of the file:
     LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
     ORACLE_HOME=/usr/lib/oracle/11.2/client64
     export LD_LIBRARY_PATH ORACLE_HOME

csh 또는 tcsh

$EDITOR ~/.login
#add lines at the bottom of the file:
     setenv LD_LIBRARY_PATH /usr/lib/oracle/11.2/client64/lib
     setenv ORACLE_HOME /usr/lib/oracle/11.2/client64

모든 사용자에 대해 영구적으로 만들려면 /etc/, 예 /etc/profile를 들어 Bourne과 같은 쉘, /etc/csh.login(t) csh /etc/zsh/zprofile/etc/zsh/zshrczsh에 해당하는 파일을 편집 할 수 있습니다 .

다른 옵션은 /etc/environmentLinux 시스템에서 PAM 모듈이 읽고 pam_env쉘 스타일 확장이 아닌 간단한 할당 만 지원 하는 을 사용 하는 것입니다 . ( 이것에 대한 데비안 가이드 를 참조하십시오 .)

이러한 파일에는 이미 일부 지정이 포함되어있을 수 있으므로 파일에 이미있는 구문을 따르십시오.

변경 사항을 적용하려면 셸을 다시 시작하고 사용자를 다시 로그인하십시오.

시스템 전체 환경 변수를 추가해야하는 경우 변수 /etc/profile.d를 초기화하기위한 sh 스크립트가 포함 된 폴더가 있습니다.
내보내는 모든 변수와 함께 sh 스크립트를 여기에 배치 할 수 있습니다.
데비안에서 env에 변수를 추가하는 표준 방법으로 사용해서는 안되지만 조심하십시오.


답변

배포판에 따라 모든 사용자 / 쉘에 대해 수행하려면 /etc/environment또는을 사용할 수 있습니다 /etc/profile. /etc/profile.d패키징 시스템의 업데이트와 충돌 할 가능성이 적으므로 새 파일을 만드는 것이 좋습니다 (있는 경우).

년은 /etc/environment, 변수는 일반적으로 설정되어 name=value, 예를 들면 :

ORACLE_HOME=/usr/lib/oracle/11.2/client64

에서 다음 /etc/profileexport같은 스크립트이므로 사용해야합니다 .

export ORACLE_HOME=/usr/lib/oracle/11.2/client64

아래의 파일도 동일하게 /etc/profile.d적용되며 파일이 작동하려면 이름 지정 제한 사항이 충족되어야합니다. 데비안에서, 파일은 확장자를 가져야합니다 .sh(소스 파일이므로 뱅 라인 또는 실행 권한이 필요하지는 않지만). 배포 문서를 확인하거나 /etc/profile스크립트를보고 이러한 파일이 어떻게로드되는지 확인하십시오.

또한 보안 위험을 포함하여 LD_LIBRARY_PATH영구적으로 설정하면 문제가 발생할 수 있습니다. 대안으로, 나는 LD_LIBRARY_PATH실행하기 전에 명령 줄이 시작될 필요가있는 각 프로그램의 시작 부분 을 앞에 추가하는 방법을 찾는 것이 좋습니다 . 예 :

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib myprog

이를 수행하는 한 가지 방법은 랩퍼 스크립트를 사용하여 프로그램을 실행하는 것입니다. 당신은 당신의 프로그램으로이 같은 이름을주고에 넣을 수 /usr/local/bin나타나 어느 곳이나 이전 에 프로그램의 위치 PATH. 다음은 예제 스크립트입니다 (스크립트를 잊지 마십시오 chmod +x).

#!/bin/sh
LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib /real/location/of/myprog "$@"


답변

oracle을 설치할 때 oracle은 확인을 클릭하기 전에 일부 스크립트를 실행하도록 요청했습니다. 이 스크립트는 .bash_profileoracle 사용자 홈 디렉토리에 더미 설정을 넣습니다 . 파일을 보려면 ls -al모든 숨겨진 파일을 표시합니다.

nano bash_profile파일을 열려면 입력 하십시오. 호스트 이름과 적절한 sid 이름을 반영하도록 파일을 변경하십시오. 수정이 필요한 다른 설정을 확인하십시오. 저장하려면 제어 x를 누르고 저장 여부를 물으면 y를 입력하십시오. 리턴 키를 눌러 저장하십시오. 컴퓨터를 다시 시작하십시오. Oracle 사용자로 로깅 입력하여 데이터베이스를 시작하십시오

sqlplus / as sysdba

startup


답변