Como executar o arquivo .phar com PHP CLI de um RPM descompactado?

1

Como reproduzir:

  1. "Instalar" o PHP 5.4 (mais ncurses e bibliotecas OpenSSL) dos repositórios do CentOS 7 usando rpm2cpio | cpio em um diretório chamado "rpm"
  2. Download phpunit.phar versão 4.8.26
  3. Executar LD_LIBRARY_PATH=rpm/usr/lib64 rpm/usr/bin/php phpunit.phar

O resultado:

Fatal error: Class 'Phar' not found in […]/phpunit.phar on line 12

De acordo com a documentação oficial, o Phar está "embutido" no PHP 5.4, seja qual for "construído em "significa. Existe de fato um rpm/usr/bin/phar e um rpm/usr/bin/phar.phar , mas eu não sei como prosseguir para rpm/usr/bin/php para manipular arquivos .phar. Não há phar.so . Não há nenhum módulo phar compilado de acordo com LD_LIBRARY_PATH=dependencies/rpm/usr/lib64 dependencies/rpm/usr/bin/php -m | grep -i phar . A tentativa de executar phar resulta nessa bagunça:

$ LD_LIBRARY_PATH=rpm/usr/lib64 rpm/usr/bin/php rpm/usr/bin/phar

Warning: stream_wrapper_register(): class 'PHP_Archive' is undefined in […]/rpm/usr/bin/phar.phar on line 6

Warning: include(): Unable to find the wrapper "phar" - did you forget to enable it when you configured PHP? in […]/rpm/usr/bin/phar.phar on line 9

Warning: include(): Unable to find the wrapper "phar" - did you forget to enable it when you configured PHP? in […]/rpm/usr/bin/phar.phar on line 9

Warning: include(phar://[…]/rpm/usr/bin/phar.phar/phar.inc): failed to open stream: No such file or directory in […]/rpm/usr/bin/phar.phar on line 9

Warning: include(): Failed opening 'phar://[…]/rpm/usr/bin/phar.phar/phar.inc' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in […]/rpm/usr/bin/phar.phar on line 9
Neither Extension Phar nor class PHP_Archive are available.

Eu gostaria de evitar a instalação de um conjunto completo de ferramentas (PEAR, Composer) porque isso tornaria a portabilidade um problema ainda maior do que é.

Não parece haver nenhum pacotes separados disponíveis para a Phar. Depois de instalar epel-release , o único pacote que corresponde a phar é php-seld-phar-utils e não parece conter nenhum arquivo relevante:

# rpm --query --list php-seld-phar-utils
/usr/share/doc/php-seld-phar-utils-1.0.1
/usr/share/doc/php-seld-phar-utils-1.0.1/README.md
/usr/share/doc/php-seld-phar-utils-1.0.1/composer.json
/usr/share/licenses/php-seld-phar-utils-1.0.1
/usr/share/licenses/php-seld-phar-utils-1.0.1/LICENSE
/usr/share/php/Seld
/usr/share/php/Seld/PharUtils
/usr/share/php/Seld/PharUtils/Timestamps.php
/usr/share/php/Seld/PharUtils/autoload.php
    
por l0b0 29.12.2016 / 17:28

0 respostas