やりたいこと
awscli をアップグレードしたい。
これをやれと書いてる。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html#post-install-upgrade
$ pip3 install awscli --upgrade --user
でも、 pip で入れてなくて、バンドルされたインストーラでインストールしてた。
macOS の場合
バンドルされたインストーラでのインストールが推奨されてる。
macOS に AWS Command Line Interface (AWS CLI) をインストールする方法としては、バンドルされたインストーラを使用することが推奨されます。バンドルされたインストーラにはすべての依存関係が含まれており、オフラインで使用できます。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-macos.html
ただ、どちらにせよ Python が必要。
バンドルされたインストーラのインストールプログラムが Python で実行されるので。
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
とりあえずバンドルされたインストーラの awscli をアンインストール
これやる。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-bundle.html#install-bundle-uninstall
$ sudo rm -rf /usr/local/aws
$ sudo rm /usr/local/bin/aws
はい、きれい。
pipenv 使ってみる
今までは普通に pyenv 使ってたが、改めて調べてみると、 anyenv やら pipenv やら色々出てくる。
結局どれ使ったら良いんだと葛藤し、結果 pipenv を使ってみることにした。
前提
$ brew --version
Homebrew 2.1.16
Homebrew/homebrew-core (git revision d82e8; last commit 2019-11-12)
Homebrew/homebrew-cask (git revision 64b5f; last commit 2019-11-12)
## Homebrew でインストール済み
$ python -V
Python 3.7.5
pipenv インストール
Homebrew でインストール。
pyenv も一緒にインストールしておくと良いことがあるよということなのでインストール。
$ brew install pipenv
$ brew install pyenv
適当なディレクトリで Python インストール
$ pipenv --python 3.7.5
Creating a virtualenv for this project…
Pipfile: /Users/matsuki/Pipfile
Using /Users/matsuki/.pyenv/versions/3.7.5/bin/python3 (3.7.5) to create virtualenv…
⠸ Creating virtual environment...Using base prefix '/Users/matsuki/.pyenv/versions/3.7.5'
New python executable in /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW/bin/python3
Also creating executable in /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /Users/matsuki/.pyenv/versions/3.7.5/bin/python3
✔ Successfully created virtual environment!
Virtualenv location: /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW
Creating a Pipfile for this project…
入る。
matsuki@matsuki1 ~> pipenv shell
Launching subshell in virtual environment…
Welcome to fish, the friendly interactive shell
matsuki@matsuki1 ~> source /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW/bin/activate.fish
確認。
(matsuki) matsuki@matsuki1 ~> python -V
Python 3.7.5
(matsuki) matsuki@matsuki1 ~> pip list
Package Version
---------- -------
pip 19.3.1
setuptools 41.6.0
wheel 0.33.6
OK
awscli インストール
pip 使ってインストールもできるけど今回は、バンドルされたインストーラでインストール。
コマンドはこれ。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-macos.html#install-bundle-macos
(matsuki) matsuki@matsuki1 ~> curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
unzip awscli-bundle.zip
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11.8M 100 11.8M 0 0 462k 0 0:00:26 0:00:26 --:--:-- 214k
Archive: awscli-bundle.zip
inflating: awscli-bundle/install
inflating: awscli-bundle/packages/simplejson-3.3.0.tar.gz
inflating: awscli-bundle/packages/colorama-0.4.1.tar.gz
inflating: awscli-bundle/packages/pyasn1-0.4.7.tar.gz
inflating: awscli-bundle/packages/botocore-1.13.15.tar.gz
inflating: awscli-bundle/packages/awscli-1.16.279.tar.gz
inflating: awscli-bundle/packages/virtualenv-15.1.0.tar.gz
inflating: awscli-bundle/packages/ordereddict-1.1.tar.gz
inflating: awscli-bundle/packages/argparse-1.2.1.tar.gz
inflating: awscli-bundle/packages/six-1.13.0.tar.gz
inflating: awscli-bundle/packages/colorama-0.3.9.tar.gz
inflating: awscli-bundle/packages/futures-3.3.0.tar.gz
inflating: awscli-bundle/packages/python-dateutil-2.8.0.tar.gz
inflating: awscli-bundle/packages/urllib3-1.22.tar.gz
inflating: awscli-bundle/packages/jmespath-0.9.4.tar.gz
inflating: awscli-bundle/packages/PyYAML-5.1.2.tar.gz
inflating: awscli-bundle/packages/docutils-0.15.2.tar.gz
inflating: awscli-bundle/packages/urllib3-1.25.7.tar.gz
inflating: awscli-bundle/packages/python-dateutil-2.6.1.tar.gz
inflating: awscli-bundle/packages/rsa-3.4.2.tar.gz
inflating: awscli-bundle/packages/s3transfer-0.2.1.tar.gz
inflating: awscli-bundle/packages/PyYAML-3.13.tar.gz
inflating: awscli-bundle/packages/setup/setuptools_scm-1.15.7.tar.gz
Password:
Running cmd: /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW/bin/python virtualenv.py --no-download --python /Users/matsuki/.local/share/virtualenvs/matsuki-hIH2zslW/bin/python /usr/local/aws
Running cmd: /usr/local/aws/bin/pip install --no-cache-dir --no-index --find-links file:///Users/matsuki/awscli-bundle/packages/setup setuptools_scm-1.15.7.tar.gz
Running cmd: /usr/local/aws/bin/pip install --no-cache-dir --no-index --find-links file:///Users/matsuki/awscli-bundle/packages awscli-1.16.279.tar.gz
You can now run: /usr/local/bin/aws --version
確認。
(matsuki) matsuki@matsuki1 ~> aws --version
aws-cli/1.16.279 Python/3.7.5 Darwin/18.7.0 botocore/1.13.15
venv 抜けて再確認。
(matsuki) matsuki@matsuki1 ~> exit
matsuki@matsuki1 ~> aws --version
aws-cli/1.16.279 Python/3.7.5 Darwin/18.7.0 botocore/1.13.15
awscli 使えるか確認。適当に。
$ aws s3 ls
結論
pipenv 便利。