雑なやつ

レベルを上げて技術で殴りたい

AWS SAM CLI を macOS (with fish shell) に導入する際のメモ

業務中に AWS SAM(Serverless Application Model) CLI が必要になったので導入したのですが、
シェル力が低くて手こずったのでメモに残します。
原因を先に書いておきますが、僕が fish shell 独自の記法に慣れていなかっただけです。

環境

bashzsh の場合

コマンドは AWS SAM CLI の公式リポジトリより引用。 github.com

AWS SAM CLI を pip で インストールします。

$ pip install --user aws-sam-cli

$USER_BASE_PATH に python のパスを設定し、
shell の profile に環境変数を Export すると完了です。

$ USER_BASE_PATH=$(python -m site --user-base)

## Standard bash --> ~/.bash_profile
## ZSH           --> ~/.zshrc
$ export PATH=$PATH:$USER_BASE_PATH/bin

fish の場合

fish の場合、記法が bashzsh と異なります。
他のシェルと違って、export コマンドがありません。
詳しくは、公式ドキュメントや非公式の日本語訳ページを参考にしてください。

fishshell.com fish.rubikitch.com

$USER_BASE_PATH に python のパスを設定する場合は下記のようになります。

$ set -x USER_BASE_PATH (python -m site --user-base)

$PATH に $USER_BASE_PATH と $USER_BASE_PATH/bin を Export する場合は下記の通りです。

$ set -x PATH $USER_BASE_PATH $USER_BASE_PATH/bin $PATH

fish 再起動時に環境変数が再設定されるように、上記をまとめてconfig.fishに記述しました。

# aws-sam
set -x USER_BASE_PATH (python -m site --user-base) $USER_BASE_PATH
set -x PATH $USER_BASE_PATH $USER_BASE_PATH/bin $PATH

以上です。