操作
Backport(バックポート) #3927
完了PHP 5.5 以降でプラグインの展開に失敗する
開始日:
2016-04-07
期日:
進捗率:
100%
予定工数:
説明
Overview (現象)¶
PHP 5.6 の環境にて opPlugin:install コマンドでプラグインをインストールした際に
could not extract the package.xml file from
というエラーが発生し、インストールが中断します。
PHP 5.6 の場合¶
PHP 5.6 の場合は、「could not extract the package.xml file from」というエラーが発生し、プラグインのインストールを行うことができません。
% php -v PHP 5.6.18 (cli) (built: Feb 10 2016 10:19:55) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies % ./symfony opPlugin:install opDiaryPlugin -r 1.5.1 >> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (796 bytes) >> sfPearFrontendPlugin . >> sfPearFrontendPlugin ...done: 796 bytes >> sfPearFrontendPlugin Auto-discovered channel "plugins.openpne.jp", alias >> sfPearFrontendPlugin "plugins.openpne.jp", adding to registry >> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (865 bytes) >> sfPearFrontendPlugin ...done: 865 bytes >> sfPearFrontendPlugin Auto-discovered channel "pear.symfony-project.com", alias >> sfPearFrontendPlugin "symfony", adding to registry >> sfPearFrontendPlugin Attempting to discover channel >> sfPearFrontendPlugin "plugins.symfony-project.org"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (639 bytes) >> sfPearFrontendPlugin ...done: 639 bytes >> sfPearFrontendPlugin Auto-discovered channel "plugins.symfony-project.org", alias >> sfPearFrontendPlugin "symfony-plugins", adding to registry >> plugin installing plugin "opDiaryPlugin" >> sfPearFrontendPlugin downloading opDiaryPlugin-1.5.1.tgz ... >> sfPearFrontendPlugin Starting to download opDiaryPlugin-1.5.1.tgz (78,808 bytes) >> sfPearFrontendPlugin ...done: 78,808 bytes >> sfPearFrontendPlugin could not extract the package.xml file from >> sfPearFrontendPlugin "/OpenPNE3/web/cache/.pear/opDiaryPlugin-1.5.1.tgz" >> sfPearFrontendPlugin Download of "http://get.openpne.jp/opDiaryPlugin-1.5.1.tgz" >> sfPearFrontendPlugin succeeded, but it is not a valid package archive >> sfPearFrontendPlugin Invalid or missing remote package file Plugin "opDiaryPlugin" installation failed: % ./symfony opPlugin:install opCommunityTopicPlugin -r 1.0.5 >> plugin installing plugin "opCommunityTopicPlugin" >> sfPearFrontendPlugin downloading opCommunityTopicPlugin-1.0.5.tgz ... >> sfPearFrontendPlugin Starting to download opCommunityTopicPlugin-1.0.5.tgz (69,561 >> sfPearFrontendPlugin bytes) >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin ...done: 69,561 bytes >> sfPearFrontendPlugin could not extract the package.xml file from >> sfPearFrontendPlugin "/OpenPNE3/cache/.pear/opCommunityTopicPlugin-1.0.5.tgz" >> sfPearFrontendPlugin Download of >> sfPearFrontendPlugin "http://get.openpne.jp/opCommunityTopicPlugin-1.0.5.tgz" >> sfPearFrontendPlugin succeeded, but it is not a valid package archive >> sfPearFrontendPlugin Invalid or missing remote package file Plugin "opCommunityTopicPlugin" installation failed:
PHP 5.4 の場合¶
PHP 5.4 の場合は、問題なくインストール成功します。
% php -v PHP 5.4.45 (cli) (built: Feb 10 2016 10:17:56) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies % ./symfony opPlugin:install opDiaryPlugin -r 1.5.1 >> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (796 bytes) >> sfPearFrontendPlugin . >> sfPearFrontendPlugin ...done: 796 bytes >> sfPearFrontendPlugin Auto-discovered channel "plugins.openpne.jp", alias >> sfPearFrontendPlugin "plugins.openpne.jp", adding to registry >> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (865 bytes) >> sfPearFrontendPlugin ...done: 865 bytes >> sfPearFrontendPlugin Auto-discovered channel "pear.symfony-project.com", alias >> sfPearFrontendPlugin "symfony", adding to registry >> sfPearFrontendPlugin Attempting to discover channel >> sfPearFrontendPlugin "plugins.symfony-project.org"... >> sfPearFrontendPlugin downloading channel.xml ... >> sfPearFrontendPlugin Starting to download channel.xml (639 bytes) >> sfPearFrontendPlugin ...done: 639 bytes >> sfPearFrontendPlugin Auto-discovered channel "plugins.symfony-project.org", alias >> sfPearFrontendPlugin "symfony-plugins", adding to registry >> plugin installing plugin "opDiaryPlugin" >> sfPearFrontendPlugin downloading opDiaryPlugin-1.5.1.tgz ... >> sfPearFrontendPlugin Starting to download opDiaryPlugin-1.5.1.tgz (78,808 bytes) >> sfPearFrontendPlugin ...done: 78,808 bytes >> sfPearFrontendPlugin Package "plugins.openpne.jp/opDiaryPlugin" dependency >> sfPearFrontendPlugin "plugins.openpne.jp/openpne" has no releases >> opPluginManager Installation successful for plugin "opDiaryPlugin" >> opPluginManager Installing web data for plugin % ./symfony opPlugin:install opCommunityTopicPlugin -r 1.0.5 >> plugin installing plugin "opCommunityTopicPlugin" >> sfPearFrontendPlugin downloading opCommunityTopicPlugin-1.0.5.tgz ... >> sfPearFrontendPlugin Starting to download opCommunityTopicPlugin-1.0.5.tgz (69,561 >> sfPearFrontendPlugin bytes) >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin . >> sfPearFrontendPlugin ...done: 69,561 bytes >> opPluginManager Installation successful for plugin "opCommunityTopicPlugin" >> opPluginManager Installing web data for plugin
PHP 5.5 の場合は未調査¶
Causes (原因)¶
PHP 5.5 以降で opPlugin:install が失敗する現象は、PHP が unpack 関数 に対して非互換な変更を行ったことによりプラグインの展開に使用する Archive_Tar が影響を受けたことが原因でした。
Way to fix (修正内容)¶
Archive_Tar では既にバージョン 1.3.11 にて修正を行っているため、この問題は Archive_Tar を更新することで解決します。
https://github.com/pear/Archive_Tar/commit/de7aade3fbd69f365969c0f34a89d177f94c451a
操作