Установка PHP Pear без запроса пользователя - PullRequest
5 голосов
/ 23 августа 2011

Есть ли аргумент командной строки, позволяющий установить PHP Pear без запроса пользователя? Я хотел бы автоматизировать следующее выполнение:

wget http://pear.php.net/go-pear.phar
php go-pear.phar
pear config-set preferred_state beta
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install --alldeps phpunit/PHPUnit
rm go-pear.phar

php go-pear.phar запрашивает у пользователя информацию об установке / конфигурации.

Ответы [ 2 ]

4 голосов
/ 30 августа 2011

Оказывается ожидаем, что сделали свое дело.Вот что я закончил:

install-pear.sh

#!/usr/bin/expect
spawn wget -O /tmp/go-pear.phar http://pear.php.net/go-pear.phar
expect eof

spawn php /tmp/go-pear.phar

expect "1-11, 'all' or Enter to continue:"
send "\r"
expect eof

spawn rm /tmp/go-pear.phar

install-phpunit.sh

#!/bin/bash
./install-pear.sh
pear config-set preferred_state beta
pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install --alldeps phpunit/PHPUnit

Для запуска:

sudo apt-get install expect
chmod 744 ./install-pear.sh
chmod 744 ./install-phpunit.sh
sudo ./install-phpunit.sh
1 голос
/ 24 августа 2011

go-pear.phar сам по себе не принимает никаких параметров через CLI и поэтому не может быть запущен без взаимодействия с пользователем (кроме случаев использования таких инструментов ввода, как expect)

Когда выполняется phar, файл go-pear-phar.php запускается, что, в свою очередь, запускает PEAR / Start / CLI.php .Как видите, getInstallLocations ждет активного ввода пользователя без возможности пропустить его.

...