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
。これがbrew
Linuxbrewバージョンのコマンドに依存するパッケージを破損するかどうかは言えません。