내 상황은 다음과 같습니다. CentOS 시스템에 두 가지 버전의 PostgreSQL이 설치되어 있고 이 두 버전에는 두 개의 서로 다른 psql
대화형 터미널이 있습니다.
/usr/bin/psql
내가 달리면 하나가 위치되어 시작됩니다.psql -U username
또 다른 새로운 것이 있습니다 /usr/pgsql-9.1/bin/psql
.
psql
명령줄에서 실행할 때 기본적으로 최신 버전이 시작되기를 원합니다. 이것이 어떻게 달성될 수 있습니까?
답변1
또는 심볼릭 링크를 피하고 변경을 방지하려면 $PATH
해시 테이블에 명령을 추가할 수 있습니다.
hash -p /usr/pgsql-9.1/bin/psql psql
이렇게 하면 명령이 명령 해시 테이블에 저장되고 다른 명령보다 먼저 실행됩니다(사실 경로 검색은 수행되지 않습니다).
이전에 호출한 command 를 사용하는 경우 해당 명령 psql
은 이미 해시 테이블에 있으며 해당 명령을 검색할 때 첫 번째 적중이 됩니다. 이 경우 먼저 다음을 입력하여 이전 항목을 삭제하십시오.
hash -d psql
그런 다음 위의 명령을 실행하십시오. .bashrc
원하는 곳에서 받으실 수 있습니다 .
답변2
당신의 편집PATH
이런 식으로 /usr/pgsql-9.1/bin/
(최신) 것이 앞에 옵니다 /usr/bin/
.
패키지 관리자에게 덜 안전한 대안은 새 심볼릭 링크(테스트되지 않음)로 이동/제거/이름 바꾸기 psql
및 /usr/bin/
심볼릭 링크를 만드는 것입니다./usr/bin/
> cd /usr/bin
# move the old one however you like
> ln -s /usr/pgsql-9.1/bin/psql .