NetBSD/amd64 に awscli v2 をソースコードからインストールする

2 min read読了の目安(約2600字

AWS 公式のインストーラー(?) はあるけど...

AWS CLI バージョン 2 のインストール、更新、アンインストール - AWS Command Line Interface

Docker、Linux(x86_64 or aarch64)、macOS、Windows にしか対応していないので、それ以外の環境ではソースコードからインストールします。

環境

% uname -rsm
NetBSD 9.0 amd64

準備

awscli v2 は python 3.7 以上が必須です。

https://github.com/aws/aws-cli/blob/v2/CHANGELOG.rst#200

breaking-change:python: Removed support for older Python runtimes. AWS CLI V2 officially supports Python 3.7+. See #3588, #4901.

なので python 3.7 をインストールします。

/etc/mk.conf に以下を追加します。

PYTHON_VERSION_DEFAULT=37

インストールします。

% cd /usr/pkgsrc/lang/python
% sudo make update clean clean-depends

awscli インストール

インストールします

% sudo pip3.7 install https://github.com/aws/aws-cli/archive/v2.tar.gz
% sudo pip3.7 install https://github.com/boto/botocore/archive/v2.tar.gz

あるいはこう。ただし git が必要。

% sudo pip3.7 install -e git://github.com/aws/aws-cli.git@v2#egg=awscli
% sudo pip3.7 install -e git://github.com/boto/botocore.git@v2#egg=botocore

実行するとエラーになりました。

% aws --version
Traceback (most recent call last):
  File "/usr/pkg/bin/aws", line 19, in <module>
    import awscli.clidriver
  File "/usr/pkg/lib/python3.7/site-packages/awscli/clidriver.py", line 58, in <module>
    from awscli.autoprompt.core import AutoPromptDriver
  File "/usr/pkg/lib/python3.7/site-packages/awscli/autoprompt/core.py", line 16, in <module>
    from awscli.autoprompt.prompttoolkit import PromptToolkitPrompter
  File "/usr/pkg/lib/python3.7/site-packages/awscli/autoprompt/prompttoolkit.py", line 25, in <module>
    from awscli.autocomplete.local import model
  File "/usr/pkg/lib/python3.7/site-packages/awscli/autocomplete/local/model.py", line 20, in <module>
    from awscli.autocomplete import db
  File "/usr/pkg/lib/python3.7/site-packages/awscli/autocomplete/db.py", line 3, in <module>
    import sqlite3
  File "/usr/pkg/lib/python3.7/sqlite3/__init__.py", line 23, in <module>
    from sqlite3.dbapi2 import *
  File "/usr/pkg/lib/python3.7/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

たぶんこれかと。

% cd /usr/pkgsrc/databases/py-sqlite3
% sudo make update clean clean-depends

ひとまず実行できました。

% aws --version
aws-cli/2.1.7 Python/3.7.2 NetBSD/9.0 source/amd64 prompt/off

参考