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たコマンドよりも優先されないようにするには、さまざまなLinuxbrewbinディレクトリが$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バージョンのコマンドに依存するパッケージを破損するかどうかは言えません。

おすすめ記事