kompiraバージョンアップ時のエラーについて
冗長構成でkompiraのバージョンをアップデートしたところ、
下記エラーが出てしまい、アップデートができませんでした。
Error: Command '['/opt/kompira/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
事象の解決策をご存じであればご教示いただきたいです。
旧バージョン:1.6.2.post2
新バージョン:1.6.2.post7
-
正式なコメント
引き続き調査したところ、コマンド履歴に残っていた以下のコマンドが、システムの Python3 環境を破壊していることがわかりました。
curl -kL https://bootstrap.pypa.io/get-pip.py | python3
このコマンドを実行したあとに、rpm コマンドで python3 関連パッケージを検証すると、見つからないファイルが多数あることがわかります。
# rpm -Va "python3*" /usr/bin/pip3 が見つかりません。 /usr/bin/pip3.6 が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/INSTALLER が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/METADATA が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/RECORD が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/WHEEL が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/entry_points.txt が見つかりません。 /usr/lib/python3.6/site-packages/pip-9.0.3.dist-info/top_level.txt が見つかりません。 /usr/lib/python3.6/site-packages/pip/__init__.py が見つかりません。 /usr/lib/python3.6/site-packages/pip/__main__.py が見つかりません。
:この状態では、前回示したコマンドを実行すると、以下のようにエラーになります(./install.sh もご報告同様にエラーになります)。
# /opt/kompira/bin/python3.6 -Im ensurepip --upgrade --default-pip Traceback (most recent call last): File "/usr/lib64/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib64/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/usr/lib64/python3.6/ensurepip/__main__.py", line 5, in <module> sys.exit(ensurepip._main()) File "/usr/lib64/python3.6/ensurepip/__init__.py", line 232, in _main default_pip=args.default_pip, File "/usr/lib64/python3.6/ensurepip/__init__.py", line 129, in _bootstrap shutil.copy(whl, tmpdir) File "/usr/lib64/python3.6/shutil.py", line 245, in copy copyfile(src, dst, follow_symlinks=follow_symlinks) File "/usr/lib64/python3.6/shutil.py", line 120, in copyfile with open(src, 'rb') as fsrc: FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib64/python3.6/ensurepip/_bundled/setuptools-40.6.2-py2.py3-none-any.whl'ここからの回復方法としては、python3 関連のパッケージの再インストールが有効であるようです。以下のコマンドで再インストールできます。
# yum -y reinstall "python3*"
RPM パッケージの検証を行ってもエラーが出ないことも確認できます。
# rpm -Va "python3*"
手元で試したかぎりでは、この状態であれば Kompira の install.sh を実行してもエラーにならないようです。(※すべての破損状況を確認できたわけではありませんので、なんらかの影響が残存している可能性は否定できません)
お手数ですが、ご確認いただけますでしょうか。
コメントアクション -
情報ご提供ありがとうございます。
インストール時に Kompira 用の Python 環境を作成する箇所でエラーになっているようですが、過去に同様の事象は報告されてはいないようです。
OS は CentOS 7.9 とのことですが、仮想マシン環境となりますでしょうか?その場合、ご利用になっている仮想システムについて教えていただけますでしょうか。
また、お手数ですが、以下のコマンド実行結果についてもいただけますでしょうか。
# rpm -qa "*python*" | sort
# /opt/kompira/bin/pip listPython 3.8 では似たようなエラーが発生することがある、といった記事を Web では見かけましたが、以前 Kompira を構築した後に、サーバに Kompira 以外のソフトをインストールしたといった情報はございますでしょうか。
-
ご連絡ありがとうございます。
いただいた情報を確認しておりますが、現時点で原因の特定にはいたっておりません。ひとつ気になる点としては、KE v1.6.2.post5 でバージョンダウンさせた python パッケージがあります(ご報告いただいた事象とは異なる問題への対処です)ので、以下のコマンドを実行していただけますでしょうか。
# /opt/kompira/bin/pip install -U typing-extensions==3.7.4.3
そのうえで、以下のコマンドを実行してみていただけますでしょうか。
# /opt/kompira/bin/python -m venv /opt/kompira
まず、下のコマンドが成功するか、ご確認いただけますでしょうか。成功の場合はとくに何も表示されないと思います。
これらが問題を解消に繋がるかは判明しておりませんが、上記が成功した場合、再度 KE パッケージの install.sh でインストールを試してみていただけますでしょうか。
以上、よろしくお願いいたします。
-
弊社内で CentOS 7 環境で、v1.6.2.post2 から v1.6.2.post7 へアップデートを試してみたところ、問題なくアップデートできました。環境に依存する問題であるのかもしれません。
エラー時のログを拝見すると「/usr/local/bin/pip」が存在していることを示すログがあり、これが少し気になります。python パッケージを管理する pip コマンドは、Kompira 用としては「/opt/kompira/bin/pip」を用います(これもちゃんとあります)。
かなり古い Kompira (1.4 以前など)では /usr/local/bin/pip を利用していたこともあり、その存在確認のためのログが残っています。あるいは Kompira とは別の要因で /usr/local/bin/pip が存在しているのかもしれません。
CentOS7 を Minimal install して Kompira 1.6 系をインストールした状態では、/usr/local/bin/pip は存在していないのが通常ですが、これが存在している理由になにか心当たりはございますでしょうか?(/usr/local/bin/pip の存在がエラーの原因であると判明しているわけではございません)
当該サーバを最初に構築された際は CentOS 7 の Minimal install で実施されましたでしょうか?
当該サーバに最初にインストールされた Kompira のバージョンは何でしょうか?
-
以下、回答いたします。
> 当該サーバに最初にインストールされた Kompira のバージョンは何でしょうか?
半年ほど前に仮想マシンの移行を行っており、
移行前のkompiraのバージョンは"1.4.8 post6"を利用しておりました。
移行後の環境は、"1.6.2 post2"で構築しております。> あるいは Kompira とは別の要因で /usr/local/bin/pip が存在しているのかもしれません。
サーバを確認したところ、1号機のみpipコマンドが
利用できる状態(Whichコマンドで応答あり)となっていました。
CentOS 7 の Minimal install で構築・及び移行する際に
もしかしたらpipをインストールしてしまったのかもしれません。pipをアンインストールすることで正常になる可能性があるのであれば
試してみようと思うのですが、ソフトウェアに影響等はございますでしょうか? -
早速のご確認ありがとうございます。
移行前のkompiraのバージョンは"1.4.8 post6"を利用しておりました。
移行後の環境は、"1.6.2 post2"で構築しております。v1.6 系以前から v1.6 系へのアップデートについては、Kompira が利用する python やミドルウェアの構成が変わっていることから、クリーンな環境にインストールしていただいてから、別途データ移行していただくといった手順を推奨させていただいております。v1.4 系から移行されたということですと、そのときの環境の影響を受けている可能性はあるかもしれません。
ところで、v1.4 系では CentOS6 をサポートしており、CentOS7 には非対応でした。当該サーバ自体の OS も Kompira のバージョンアップに伴ってアップグレードされた、ということでしょうか?
現在の 1.6.2.post2 を導入されたときの、直前の構成や、どのような手順で導入されたか、といった情報は残っておりますでしょうか?
また、1号機と2号機で、サーバ構築の経緯などに違いはございますでしょうか?
pipをアンインストールすることで正常になる可能性があるのであれば
試してみようと思うのですが、ソフトウェアに影響等はございますでしょうか?pip コマンドの存在は環境的な差異を示唆してはいますが、今回のインストールエラーの直接的な原因であるとは考えにくいと思っています。回復の可能性は低いと思いますし、その pip により作成した環境のソフトウェアがあれば影響を受ける可能性もありますが、スナップショットに戻せるという前提で試してみる価値はあるかもしれません。
ちなみに、以下のコマンドの実行結果はどのようになるでしょうか?
# ls -l /usr/local/bin/
# /usr/local/bin/pip listまた、Kompira v1.4 系をインストールされていた場合、/usr/bin/pip コマンドが存在するかもしれません。もし存在するようでしたら、以下のコマンドも試してみてください。
# /usr/bin/pip list
以上、よろしくお願いいたします。
-
> v1.4 系では CentOS6 をサポートしており、CentOS7 には非対応でした。当該サーバ自体の OS も Kompira のバージョンアップに伴ってアップグレードされた、ということでしょうか?
上記で推奨されている手順で行いました。仮想マシンを別で構築し、クリーンな環境にkompira(Ver1.6.2)をインストールしてからデータを別途移行させました。
>現在の 1.6.2.post2 を導入されたときの、直前の構成や、どのような手順で導入されたか、といった情報は残っておりますでしょうか?
導入手順をメールにて送付いたしました。>以下のコマンドの実行結果はどのようになるでしょうか?
# ls -l /usr/local/bin/
# /usr/local/bin/pip list
1号機、2号機それぞれの結果をメールにて送付いたしました。ご確認の程、よろしくお願い致します。
-
クリーンな環境に 1.6.2 をインストールされたとのことですので、古い環境が影響しているということは無いと考えられます。また、いただいたコマンド実行結果から、/usr/local/bin/pip で特にインストールしたパッケージなども無さそうであることが確認できましたので、これが影響している可能性も低いと思われます。
別のアプローチとして、失敗した Python 環境構築のコマンド実行を試していただきたいと思います。
以下のコマンドを実行していただくと、/opt/test_venv というディレクトリに新しい Python 環境を作成しようとして、そのログが create_test_venv.log に出力されます。
# /bin/python3.6 -v -m venv /opt/test_venv > create_test_venv.log 2>&1
# ls -l /opt/test_venv/binこのときの出力と、ログファイルをいただけますでしょうか。
-
ご確認ありがとうございます。
リソースの心配は無いようですが、1号機では失敗していた Python 環境作成コマンドが2号機では成功しているようです。
このことから、2号機では Kompira のアップデートも成功する可能性がありますが、1号機がアップデートできないと適切な冗長構成とならないので、やはり1号機の問題を解消する必要はあるかと思います。
1号機と2号機の環境差異について、何かお心当たりございますでしょうか?
また、2号機についても以下の結果を取得いただけますでしょうか。
# rpm -qa "*python*" | sort
# /opt/kompira/bin/pip list
サインインしてコメントを残してください。
コメント
23件のコメント