SQLite3 v3.8이 설치되었지만 Mac 터미널은 기본적으로 여전히 이전 버전 3.6을 실행합니다.

SQLite3 v3.8이 설치되었지만 Mac 터미널은 기본적으로 여전히 이전 버전 3.6을 실행합니다.

SQLite3 v3.6이 사전 설치된 OS X 10.6.8을 실행하는 Mac이 있습니다. homebrew를 사용하여 v3.8을 설치했습니다. 하지만 터미널에 "sqlite3"을 입력하면 사전 설치된 이전 버전이 계속 실행됩니다. 도움이 필요하세요?

PATH 변수가 이와 관련이 있는지 확실하지 않지만 echo $PATH를 실행하면 다음이 생성됩니다: /usr/local/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/ bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

SQLite3의 새 버전은 다음 디렉터리에 있습니다: /usr/local/Cellar/sqlite

또한 바이너리 실행 파일을 데스크탑에 다운로드했는데 데스크탑에서 클릭하면 작동하지만 터미널에서는 작동하지 않는다는 점을 덧붙여야 합니다.

도움을 주시면 대단히 감사하겠습니다.

답변1

slm의 솔루션은 실제로는 올바르지 않습니다(작동하지만). Homebrew를 사용할 때 $PATH에 추가하면 안 됩니다 . 대신 $PATH(이미 수행한 작업)에 /usr/local/Cellar/*추가한 다음 Cellar에 있는 항목을 . 의도적으로 Homebrew를 사용하면 이 작업을 쉽게 수행할 수 있습니다./usr/local/bin/usr/local/bin

brew link sqlite

필요한 링크가 자동으로 생성됩니다. (이번에는 Homebrew가 이 작업을 자동으로 수행하지 않습니다. sqlite는 keg 전용이므로 수동으로 수행해야 합니다.)

참고/알림으로 /usr/local/bin시스템 경로에 추가하면 안 되며 사용자 경로에만 추가해야 합니다. 이는 Apple에서 제공하는 sqlite가 필요한 프로그램이 Homebrew에서 제공하는 버전을 찾아 문제를 일으키는 것을 방지하기 위한 것입니다.

답변2

$경로

PATH예, 다음과 같이 변수를 설정 해야 합니다 .

$ export PATH=/usr/local/Cellar/sqlite:/usr/local/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

해당 줄은 읽기가 약간 어려울 수 있으므로 여기서는 각 경로가 자체 줄에 있는 콜론으로 구분됩니다.

$ awk -v addPath="$1" 'BEGIN{RS=":";ORS=addPath "\n"}{$1=$1}1' <<< $PATH
/usr/local/Cellar/sqlite
/usr/local/bin
/Library/Frameworks/Python.framework/Versions/2.7/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/X11/bin

이것은 쉘이 프롬프트에 방금 입력한 내용을 검색할 $PATH디렉토리 목록입니다 - 콜론( )으로 구분됩니다. :순서가 중요하므로 sqlite둘 이상의 위치에 나타나는 경우 발견된 첫 번째 디렉터리는 해당 디렉터리가 사용된 위치입니다.

그 물건은 어디에 있나요?

type명령을 사용하여 특정 애플리케이션이 어디에서 왔는지 확인할 수 있습니다.

$ type -a sqlite3 
sqlite3 is /usr/bin/sqlite3

이것이 스위치와 함께 사용하는 방법이며 -a모든 항목을 표시합니다.

$ type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

관련 정보