在没有用户提示的情况下安装PHP梨

问题描述:

是否有一个命令行参数允许您在没有用户提示的情况下安装PHP梨?我想自动化以下执行:在没有用户提示的情况下安装PHP梨

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细末pear.phar提示用户安装/配置信息。

+0

这可能是一个愚蠢的问题,但你能把这些命令放到shell脚本中吗? – transistor1

+0

是的,但php go-pear.phar提示你选择安装目录 –

+0

噢,好吧......我以为我会把它扔出去:) – transistor1

原来expect做到了。以下是我结束了:

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 
+0

我提交了一个更新脚本,以考虑等待产生的进程终止,否则期望自行超前并在安装之前终止或文件已被下载 – Gary

go-pear.phar本身不接受经由CLI任何参数,因此不能在没有用户交互运行

当执行药业股份,文件go-pear-phar.php运行时,(当使用像expect输入工具除外),其反过来开始PEAR/Start/CLI.php。如您所见,getInstallLocations确实会等待活动用户输入而无法跳过它。