在没有用户提示的情况下安装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提示用户安装/配置信息。
答
原来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
确实会等待活动用户输入而无法跳过它。
这可能是一个愚蠢的问题,但你能把这些命令放到shell脚本中吗? – transistor1
是的,但php go-pear.phar提示你选择安装目录 –
噢,好吧......我以为我会把它扔出去:) – transistor1