■作業前
rootユーザで作業を実施
# aws --version
aws-cli/1.16.102 Python/2.7.16 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.12.92
# which aws
/usr/bin/aws
■Python3系をインストール
<現在のPython2のインストール状況を確認>
# yum list installed python
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
インストール済みパッケージ
python.x86_64 2.7.16-3.amzn2.0.1 installed
<Python3.7をインストール>
# yum -y install python37
# which pip3 ※python37をインストールすることで自動的にpipがインストールされていることを確認
/usr/bin/pip3
# python3 --version
Python 3.7.4
■pipをアップグレード
<作業前のpipバージョン>
# pip3 --version
pip 9.0.3 from /usr/lib/python3.7/site-packages (python 3.7)
# pip3 install --upgrade pip
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting pip
Downloading https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl (1.4MB)
100% |????????????????????????????????| 1.4MB 886kB/s
Installing collected packages: pip
Found existing installation: pip 9.0.3
Uninstalling pip-9.0.3:
Successfully uninstalled pip-9.0.3
Successfully installed pip-19.3.1
# pip3 --version
-bash: /usr/bin/pip3: No such file or directory ※pip3のパスが通っていないが気にしない
# which pip3
/usr/local/bin/pip3
# vi .bash_profile
PATH=$PATH:$HOME/bin:/usr/local/bin/ ※「/usr/local/bin/」を末尾に追加
# source .bash_profile
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/bin/
<pipバージョンアップ後>
# pip3 --version
pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
# pip3 list -o
Package Version Latest Type
---------- ------- ------ -----
setuptools 38.4.0 42.0.2 wheel
■awscliのアップグレード
# pip3 install --upgrade --user awscli
~中略~
Successfully installed PyYAML-5.1.2 awscli-1.16.294 botocore-1.13.30 colorama-0.4.1 docutils-0.15.2 jmespath-0.9.4 pyasn1-0.4.8 python-dateutil-2.8.0 rsa-3.4.2 s3transfer-0.2.1 six-1.13.0 urllib3-1.25.7
# vi .bash_profile
PATH=/root/.local/bin/:$PATH:$HOME/bin:/usr/local/bin/ ※「PATH=/root/.local/bin/」を先頭に追加する。追加する際に、必ず先頭に入れること。仮に末尾に追加すると、awsコマンドのパスがデフォルトパスを見てしまい、古いバージョンのawscliが参照されてしまう。
# source .bash_profile
# echo $PATH
/root/.local/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/bin/:/root/bin:/usr/local/bin/
<awscliバージョンアップ後>
# aws --version
aws-cli/1.16.294 Python/3.7.4 Linux/4.14.152-127.182.amzn2.x86_64 botocore/1.13.30