MT::Util::Dependencies にコアモジュールが揃っているかを確認する機能を追加する

Description

https://movabletype.atlassian.net/browse/SUPPORT-355 より派生。古い CentOS / RHEL 環境では perl-core をインストールしないといくつかのコアモジュールが欠けた状態になることが知られていたが、同様の問題がほかの環境にもある模様。

CentOS / RHEL 時代の perl と amazonlinux の perl-interpreter では同梱されるものが異なる(今回問題になった English / DirHandle などは CentOS の perl には同梱されている)という事情もあり、Module::CoreList ですべてのコアモジュールの存在を確認するのが確実ではあるが(そもそも Module::CoreList が入っていなければアウト)、コアモジュールの数も増えているのでいちいち全部をロードしてまわるのも環境にやさしくない。CentOS7 の perl と amazonlinux 2023 の perl-interpreter を入れて適当に比較してみたところ、 ExtUtils::Manifest 、 ExtUtils::MakaMaker 、 Env あたりが perl 5 の初期から同梱されているうえに共通して省略されているので判別に都合がよさそう。

これらを個別の依存モジュールとして見せる必要はない(ひとつひとつ入れられても困る)ので、揃っていなければコアモジュールが欠けているので想定外の問題が起こる可能性があるという警告を表示するくらいにとどめる。

Checklists

None

Activity

Show:

Kenichi IshigakiMay 10, 2024 at 4:23 AM

ありがとうございます。マージしました。

Reiko SatoMay 10, 2024 at 2:26 AM


上記手順どおり、Manifest.pmがない場合にお使いのPerlはコアモジュールが不足しているため予期せぬ動作をする可能性があります。システム管理者にperl(またはperl-core)を適切にインストールするよう依頼してください。 というメッセージが表示されることを確認。

Kenichi IshigakiMay 9, 2024 at 5:51 AM

ありがとうございます。

https://github.com/movabletype/movabletype/pull/3133 で対応しました。以下の手順でご確認おねがいします。

  • まずは mt-check.cgi や管理画面のシステム情報が不審な警告なく正しく動作していることをご確認おねがいします。mt-check.cgi を表示したときに mt-config.cgi が存在しているので無効になっている旨の表示が出る場合は mt-check-unsafe.cgi にリネームして試してみてください。

  • 確認が済んだら MTが存在している環境に入り、シェルから perldoc -l ExtUtils::Manifest を実行してください。 You need to install the perl-doc package to use this program. と言われた場合は apt-get update && apt-get install perl-doc してから再度実行してください。

  • perldoc -l ExtUtils::Manifest の結果表示されるパス( /usr/share/perl/(バージョン)/ExtUtils/Manifest.pm など)を mv コマンドで適当にリネームしてください( .bak をあとにつける、など)

  • 念のため再度 perldoc -l ExtUtils::Manifest を実行して、パスが表示されなくなる( No documentation found for "ExtUtils::Manifest" などのメッセージが出る)ことを確認してください

  • ブラウザで mt-check.cgi を開いたとき、また管理画面のシステム情報を表示したときに お使いのPerlはコアモジュールが不足しているため予期せぬ動作をする可能性があります。システム管理者にperl(またはperl-core)を適切にインストールするよう依頼してください。 というメッセージが表示されることを確認してください

  • 最後にリネームした ExtUtils/Manifest.pm をもとの名前に戻しておいてください

Keita SugamaMay 8, 2024 at 10:27 AM

ありがとうございます。良さそうです。

Kenichi IshigakiMay 8, 2024 at 10:26 AM

ありがとうございます。消し忘れていた条件を https://github.com/movabletype/movabletype/pull/3133/commits/58a220d91a14449a9fbc6552f7331cea72f0199e で消しました。

Implemented

Details

Assignee

Reporter

Fix versions

Priority

Smart Checklist

Created April 25, 2024 at 6:22 AM
Updated June 13, 2024 at 9:17 AM
Resolved May 10, 2024 at 4:23 AM