Git, Python3のインストール – Cisco DevNetのRedhat系OS向け学習環境構築

スポンサーリンク

Redhat系OS環境(Fedora, CentOS, Redhat等)にコマンドラインツール群をインストールする方法をまとめます。Cisco DevNetの学習を行うには、git, python3, python2あたりをよく使います。Redhat系OSはパッケージ管理システムが優れていますので、コマンド1つで容易にインストールできます。

操作コマンドはCentOS8.2を前提としています。ディストリビューションによって、若干コマンドが変わる可能性がある事をご了承ください。

Git インストール

Cisco CCNA DevNetの学習ではGitをよく使用します。Gitをインストールしておきましょう。

dnf install git

動作確認としてリポジトリのクローンが可能な事も確かめておきましょう。

[root@centos82 ~]# git clone https://github.com/CiscoDevNet/dne-dna-code
Cloning into 'dne-dna-code'...
remote: Enumerating objects: 1504, done.
remote: Total 1504 (delta 0), reused 0 (delta 0), pack-reused 1504
Receiving objects: 100% (1504/1504), 2.49 MiB | 1.98 MiB/s, done.
Resolving deltas: 100% (751/751), done.

Python3 インストール

Python3.6 インストール

Python3を導入します。

dnf install python3

Python3が導入された事を確認します。

[root@centos82 ~]# python3 --version
Python 3.6.8

Python3.8 インストール

Python3.6ではなく最新のPython3.8系を使用したい方は、以下コマンドでPython3.8も導入可能です。なお、Python3.6とPython3.8は共存可能です。

dnf install python38

Python3.8が導入された事を確認します。

[root@centos82 ~]# python3.8 --version
Python 3.8.0

Python3 venvの動作確認

pythonはvenvと呼ばれる機能を使うと、pythonの仮想的な実行環境を作る事ができます。この実行環境を複数作る事ができれば、機能別にpython実行環境を作ったり、段階的なバージョンアップを実現できたりします。

それではvenvが使用できるかどうか動作確認してみましょう。

まずは何らかの名前でvenvの環境を作ります。Python3.6とPython3.8の2つの環境を作成する例を紹介します。以下コマンドは環境名をpy36-sampleとpython38-sampleとしていますが、名前は好きなものにして差支えございません。

python3 -m venv py36-sample
python3.8 -m venv py38-sample

py3-sampleというディレクトリが作成された事を確認します。venvは仮想的なpython実行環境ですので、作成だけでなく削除も用意です。この環境が不要になった時はディレクトリごと削除すれば、跡形もなく削除処理が完了します。

[root@centos82 ~]# ls -l
合計 8
-rw-------.  1 root root 1360  8月 30 22:09 anaconda-ks.cfg
drwxr-xr-x  15 root root 4096  9月  2 14:13 dne-dna-code
drwxr-xr-x   5 root root   74  9月  2 14:23 py36-sample
drwxr-xr-x   5 root root   74  9月  2 14:23 py38-sample

venvを使用するには、bin/activateというスクリプトを読み込みます。ターミナルに(py38-sample)と現在有効になっているvenv環境が表示される事にも着目ください。

[root@centos82 ~]# source py38-sample/bin/activate
(py38-sample) [root@centos82 ~]# python --version
Python 3.8.0
(py38-sample) [root@centos82 ~]# 

動作確認のために、いくつかpythonモジュールをインストールしてみましょう。

(py38-sample) [root@centos82 ~]# pip install ansible
Collecting ansible
  Downloading https://files.pythonhosted.org/packages/32/62/eec759cd8ac89a866df1aba91abf785486fed7774188a41f42f5c7326dcb/ansible-2.9.13.tar.gz (14.3MB)
     |████████████████████████████████| 14.3MB 5.8MB/s 
Collecting jinja2 (from ansible)
  Downloading https://files.pythonhosted.org/packages/30/9e/f663a2aa66a09d838042ae1a2c5659828bb9b41ea3a6efa20a20fd92b121/Jinja2-2.11.2-py2.py3-none-any.whl (125kB)
     |████████████████████████████████| 133kB 4.7MB/s 

 <omitted>

Installing collected packages: MarkupSafe, jinja2, PyYAML, pycparser, cffi, six, cryptography, ansible
  Running setup.py install for PyYAML ... done
  Running setup.py install for ansible ... done
Successfully installed MarkupSafe-1.1.1 PyYAML-5.3.1 ansible-2.9.13 cffi-1.14.2 cryptography-3.1 jinja2-2.11.2 pycparser-2.20 six-1.15.0
WARNING: You are using pip version 19.2.3, however version 20.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

インポートしたモジュールが使える事を確認します。

(py38-sample) [root@centos82 ~]# ansible -m ping localhost
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

venvの使用を終えるにはdeavtivateというコマンドを入力します。

deactivate

deactivateすると、さきほどvenvに対してインストールしたモジュールが使えなくなっている事が分かります。

[root@centos82 ~]# ansible -m ping localhost
-bash: ansible: コマンドが見つかりません

Python2 インストール

Python2 インストール

Python2を導入します。

Redhat7系の頃は「yum install python virtualenv」と入力します。

dnf install python2 python2-virtualenv

Python2が導入された事を確認します。

[root@centos82 ~]# python2 --version
Python 2.7.17

Python2 venvの動作確認

Python2もvenvの作成が可能です。若干の注意が必要な点は、Python3で仮想環境を作るモジュールの名前は「venv」であるのに対し、Python2で仮想環境を作るモジュールの名前は「virtualenv」です。Python2からPython3にバージョンアップする時にモジュール名が変わっている事に注意ください。

Python2のvenv環境を作るコマンドの例は以下の通りです。

python2 -m virtualenv py2-sample

venvを使用するには、bin/activateというスクリプトを読み込みます。ターミナルに(py2-sample)と現在有効になっているvenv環境が表示される事にも着目ください。

[root@centos82 ~]# source py2-sample/bin/activate
(py2-sample) [root@centos82 ~]# python --version
Python 2.7.17
(py2-sample) [root@centos82 ~]# 

動作確認のために、いくつかpythonモジュールをインストールしてみましょう。

(py2-sample) [root@centos82 ~]# pip install ansible
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting ansible
  Downloading ansible-2.9.13.tar.gz (14.3 MB)
     |████████████████████████████████| 14.3 MB 5.4 MB/s 
Collecting jinja2
  Downloading Jinja2-2.11.2-py2.py3-none-any.whl (125 kB)
     |████████████████████████████████| 125 kB 4.6 MB/s 

 <omitted>

Installing collected packages: MarkupSafe, jinja2, PyYAML, pycparser, cffi, ipaddress, six, enum34, cryptography, ansible
Successfully installed MarkupSafe-1.1.1 PyYAML-5.3.1 ansible-2.9.13 cffi-1.14.2 cryptography-3.1 enum34-1.1.10 ipaddress-1.0.23 jinja2-2.11.2 pycparser-2.20 six-1.15.0

インポートしたモジュールが使える事を確認します。

(py2-sample) [root@centos82 ~]# ansible -m ping localhost
/root/py2-sample/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py:44: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in a future release.
  from cryptography.exceptions import InvalidSignature
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}
タイトルとURLをコピーしました