yumとdnf
CentOS8からは、7までと違って、yumコマンドを使いません。
ゴリ押しで、yumを使うこともできますが、おすすめしません。
後継となったdnfコマンドを使っていきます。
基本的には、yumコマンドとほとんど同じ使い方でOK
簡単にどんなところが違うかというと...
- yumコマンドはPython2系で動いている
- dnfコマンドはPython3系で動いている
Python3系で動かそうとするのは必然かなと
Python3.8をインストールする
$ sudo dnf install python38 -y
####解説
- sudo
- 管理者にコマンドを実行させるおまじない
- dnf
- 前述したyumの後継
- install
- インストールするおまじない
- python38
- インストールしたいパッケージ名を指定 (Pythonの場合は、python2, python36, python38など)
- -y
- 実行後に出てくるy/n?にすべてyを返す
コマンドを改めて見てもわかる通り、yumコマンドと大した差はありませんね
Python3.8のバージョンを確認
//どっちかでおっけい
$ python3.8 --version
Python 3.8.0
$ python3.8 -V
Python 3.8.0
####解説
- python3.8
- pythonで標準として選択しているバージョンが呼ばれますが、python3.8のようにバージョンを指定することで任意のバージョンを呼び出せます (自身の環境にどのバージョンが入っているか見るなら、pythonまで打ち込みTabキーを2回押すと見れます)
- --version
- バージョンを出力するオプションです (-Vでも代行可能)
- -V
- バージョンを出力するオプションです (--versionでも代行可能)
###pipのバージョンを確認
//どっちかでおっけい
$ pip3.8 --version
pip 19.2.3 from /usr/lib/python3.8/site-packages/pip (python 3.8)
$ pip3.8 -V
pip 19.2.3 from /usr/lib/python3.8/site-packages/pip (python 3.8)
####解説
- pip3.8
- python同様に、バージョンを指定できます.また、pipはpythonをインストールすることで、対応するバージョンが付いてきます
- --versionと-Vは前述同様です
###Python3.8をPythonで実行するために
毎回バージョンを指定しなきゃいけないのは億劫ですよね、そこで、デフォルトで3.8を使うように設定していきます
$ alternatives --config python
3 プログラムがあり 'python' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/libexec/no-python
2 /usr/bin/python3
3 /usr/bin/python3.8
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します: 3 //選択したい環境に合わせて、対応する数値を入力
####解説
- alternatives
- 標準コマンドの切り替えなどが行えるコマンドです (Windowsの既定のアプリを選択できる感じ)
- --config
- 設定を変更できます
- python
- この部分にパッケージ名を指定することで、そのパッケージのプログラムを一覧表示します
コマンドの部分に一覧されたプログラムの中から、標準で使いたいプログラムを選び、その番号を入力します
これによって、今までpython3.8と入力していたコマンドを、pythonのみで3.8のpythonが実行されます
###pip3.8をpipで実行するために
python3.8 -> pythonの手順では変更できず、別のコマンドを使うことになります
$ sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.8 1
####解説
- update-alternatives
- コマンドの名前を変更すること等ができる (見かけ上の名前)
- --install
- alternatives等で一覧するパッケージグループに追加する
- /usr/bin/pip
- この部分には、シンボリックリンクの作成先を指定 (今回はpip)
- pip
- この部分はプログラムの名前だと思いますが、私も詳しくわかっていないのでコメントくださるとうれしいです
- 下記インフォにて追記情報を引用させていただいております。
登録するときの名前じゃないですかね。管理上の。
- /usr/bin/pip3.8
- 追加したいプログラムが実際に格納されている場所を指定 (今回はpip3.8)
- 1
- この部分も、詳しくわかっていないです. コメントくださるとうれしい...
- 下記インフォにて追記情報を引用させていただいております。
###注意点
自分で手探りでpipを設定しようとしていた時に起きたので注意なのですが、下記コマンドで表示されているディレクトリは、実際にupdate-alternativesで指定するディレクトリでは無い、という点に注意です
$ pip3.8 -V
pip 19.2.3 from /usr/lib/python3.8/site-packages/pip (python 3.8)
###あとがき
上記までの手順で、無事にpythonとpipを扱いやすくできました。
これのおかげでAnsibleの勉強がしやすくなることでしょう、、