Homebrew가 Python3을 대체합니다. 어떻게 되돌리나요?

Homebrew가 Python3을 대체합니다. 어떻게 되돌리나요?

Linux 시스템에 AWS SAM CLI를 설치하려고 하면 Homebrew/Linuxbrew를 설치해야 합니다. AWS 패키지는 시스템에 설치한 Python 3에 의존합니다. 홈브류 설치 로그 중간에 다음이 표시됩니다.

==> Pouring python-3.7.4.x86_64_linux.bottle.tar.gz
==> /home/linuxbrew/.linuxbrew/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/home/linuxbrew/.linuxbrew/Cellar/python/3.7.4
==> /home/linuxbrew/.linuxbrew/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/home/linuxbrew/.linuxbrew/Cellar/python/3.7.4
==> /home/linuxbrew/.linuxbrew/Cellar/python/3.7.4/bin/python3 -s setup.py --no-user-cfg install --force --verbose --install-scripts=/home/linuxbrew/.linuxbrew/Cellar/python/3.7.4
==> Caveats
Python has been installed as
  /home/linuxbrew/.linuxbrew/bin/python3

Unversioned symlinks `python`, `python-config`, `pip` etc. pointing to
`python3`, `python3-config`, `pip3` etc., respectively, have been installed into
  /home/linuxbrew/.linuxbrew/opt/python/libexec/bin

다음:

$ which python3
/home/linuxbrew/.linuxbrew/bin/python3

이것은 실제로아니요이전에 나에게 경고하지 않았으므로 선택의 여지가 없으므로 걱정하지 마십시오. 나는 홈브류보다 내 배포판을 더 신뢰합니다.

내 첫 번째 생각은 패키지를 제거하는 것이었습니다.

$ brew uninstall python3
Error: Refusing to uninstall /home/linuxbrew/.linuxbrew/Cellar/python/3.7.4
because it is required by aws-sam-cli, which is currently installed.
You can override this and force removal with:
  brew uninstall --ignore-dependencies python3

즉, 간단히 삭제할 수는 없습니다.

이제 종속성을 설치하는 것은 허용되지만 내 시스템의 기본 패키지를 대체하는 경우 내 질문은 다음과 같습니다.

홈브류에게 알릴 수 있는 방법이 있나요?아니요앞으로 내 시스템이 엉망이 되어 내 기본 Python이 다시 복구될까요?

답변1

Linuxbrew는 설치하는 패키지에 대한 종속성을 제공하는 패키지를 필요에 따라 설치합니다. 때로는 이러한 종속성(또는 설치하는 소프트웨어 패키지 brew)이 시스템에 이미 있는 소프트웨어와 동일한 서비스나 도구를 제공하는 경우도 있습니다. Linuxbrew는 그렇지 않습니다.바꾸다설치하는 소프트웨어가 (설계상) 완전히 별도의 위치에 설치되기 때문에 다른 방법으로 시스템에 설치된 소프트웨어입니다.

제공된 명령이 brew설치된 명령보다 우선하지 않도록 하려면 다양한 Linuxbrew bin디렉토리가 $PATH, 또는 최소한뒤쪽에bin시스템의 "기본" 명령을 보관하는 디렉터리입니다.

나는 Linuxbrew가 사용자의 항목에 다음을 추가한다고 생각합니다 ~/.bash_profile(또는 사용자가 추가하도록 요구하지만 기억이 나지 않습니다).

eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)

(또는 이와 유사한 것).

그러면 다음 명령이 실행됩니다.

export PATH="/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH"

실행하면 Linuxbrew 경로가 추가됩니다.앞쪽당신의 $PATH.

brew shellenv터미널에서 명령을 실행하고 해당 출력을 파일에 복사하고 ( 문이 ~/.bash_profile많아야 함 export) 거기에서 해당 호출을 완전히 바꿀 수 있습니다.변화명령 export PATH입력

export PATH="$PATH:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin"

이렇게 하면 기본(Linuxbrew가 아닌) 명령이 명령 $PATH보다 우선합니다 brew. 이것이 brewLinuxbrew 버전의 명령에 의존하는 패키지를 손상시킬지 여부는 말할 수 없습니다 .

관련 정보