2022年6月13日作成

Arch Linuxで最新のAWS CLI v2をインストールする

AWS CloudWatchのログをみるとき、今まではAURのawslogsを使っていたけど、 6/10頃からpacman -Syuしたときに以下のエラーで失敗するようになった。

$ sudo pacman -Syu
:: Synchronizing package databases...
core is up to date
extra is up to date
community is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing python-jmespath (1.0.0-1) breaks dependency 'python-jmespath<1.0.0' required by awslogs

AWS CLI v2にあるaws logs tailコマンドでawslogs相当のことが行えるらしいが、 Arch LinuxのCommunityパッケージにあるaws-cliはv1で、 AURにあるaws-cli-v2はバージョンが古く、どちらも要件を満たせない。

次に、AWS CLI v2をpipからインストールしてみたを参考にpipで試すと、 2022年時点ではbotocorev2ブランチに動きがなく、 Cのソースファイルをビルドするところでエラーになったので諦めた。

仕方がないのでバイナリパッケージを入れる。

# 古いコマンドは消しておく
$ sudo pacman -Rs awslogs aws-cli

$ curl https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -o awscliv2.zip
$ unzip awscliv2.zip
$ ./aws/install -i ~/pkg/aws -b ~/bin

これで、Arch Linuxの標準では~/.local/binawsコマンドがインストールされる。 アップデートする場合は、新しいインストーラをダウンロードしてinstall -uするといいらしい。

これを調べている時に知ったけど、今はpython -mpipとするらしい。 また、GitHubのURLを渡すと直接インストールできる。

$ python -m pip install git+https://github.com/aws/aws-cli.git@v2

# アーカイブの場合はこれ
$ python -m pip install https://github.com/aws/aws-cli/archive/v2.tar.gz