外部とのインターネット接続のないCentOS7.7にPython3.6.8を導入した。
インターネット接続があれば
yum install python3
とかで入るのだろう。(違うバージョンが入るかもだけど)
仮になくてもrpmパッケージをサーバにアップし、必要なパッケージを依存性の根元の方から順次
rpm -ihv [rpmパッケージ]
で入れれば何とかなった。
しかし、python3は手強かった。相互に相手に依存しているのだ。
python3-3.6.8-10.el7.x86_64は
python3-libs-3.6.8-10.el7.x86_64
python3-setuptools-39.2.0-10.el7.noarch
python3-pip-9.0.3-5.el7.noarch
の3つが導入されていないとダメ(依存している)であった。
ではその3つを先に入れればいいかというとそうでも無く、すべて python3-3.6.8-10.el7.x86_64 に依存している。
なんだこりゃ?
ダメ元で次のようにすれば導入できた。
・必要なパッケージをサーバにアップする。ディレクトリは /tmp を使った。
python3-3.6.8-10.el7.x86_64
python3-libs-3.6.8-10.el7.x86_64
python3-setuptools-39.2.0-10.el7.noarch
python3-pip-9.0.3-5.el7.noarch
・/tmpに移動し、su でroot権限者になるか、または sudo を付けて以下のコマンドを実施する。
(実施した環境ではsudo禁止なので、suを使用)
yum localinstall python3-3.6.8-10.el7.x86_64.rpm python3-libs-3.6.8-10.el7.x86_64.rpm python3-pip-9.0.3-5.el7.noarch.rpm python3-setuptools-39.2.0-10.el7.noarch.rpm
要はyum localinstall の後に必要なパッケージを列挙しただけである。いままでちまちまと依存関係を気にしてインストールしていたのが馬鹿らしくなる。
ちなみに
yum localinstall python3-3.6.8-10.el7.x86_64.rpm
だけでは、依存パッケージを外部に求めるためエラーになったことも付け加えておく。