来自http://tunps.com/install-all-pear-packages
找到一个文:http://www.karakas-online.de/forum/viewtopic.php?t=1385
内容我翻译了一下:
问题:你需要在本地的php系统中安装所有的pear模块。也许你是一个需要全部模块的开发者。也许在尝试不同的模块,所以一次性的全部安装完是很有必要的,也许你需要查看他们的源代码,也许你需要是不是的安装一个新的pear模块。
一次性的安装和下载所有的pear模块原因很多,但官方并没有给出解决方案。![]()
我搜索了很久都没有发现任何一个单独的tar.gz或者zip包可以一键安装所有的pear模块库。
pear开发者之所有这样做,也许是因为带宽问题、也许他们不想让你的系统加载一些根本不需要的模块。
也或许这样使你像恨perl一样的恨php,因为那永无止境的模块安装。每次你都会热衷于一件事情-运行模块安装脚本。
高兴的是,如果你在linux下面工作:
解决方案:我假设你运行的php > 4.3.0 , 那么默认pear已经安装。为了一次性下载所有的pear包,你首先得得到一个安装列表:
| Code: |
| pear remote-list | awk '{print $1}' > pear-list |
然后手动编辑pear-list,因为你需要手动的删除头两行文字,搞定。
现在输入
| Code: |
| cat pear-list | xargs -n 1 pear install |
一些包可能无法安装,需要再运行一次上面的命令:
| Code: |
| cat pear-list | xargs -n 1 pear install |
You may not manage to get them all installed (this depends on the versions of your installed components), but you will at least have 99% of them – and that's enough for the start. ![]()
你可能并没有安装完所有的 包(依赖于你安装模块的 版本),但至少至少安装了99%,对起步来说已经够了。
———————-(翻译完)
其实这个方法同样适合安装在windows平台的pear使用 ,windows平台默认没有 xargs awk 这些牛x的工具,这个时候我想到了cygwin。下载安装cygwin,通过awk得到包列表的命令是一样的,假设列表我放在c:\remote-list2 ,pear.bat在D:\phpnow\php-5.2.10-Win32\pear.bat,打开cygwin执行:
cat /cygdrive/c/remote-list2 | xargs -n 1 /cygdrive/d/phpnow/php-5.2.10-Win32/pear.bat install -fa
我发现加上fa两个参数,可以下载更多的包,参数解释:
-f, –force
will overwrite newer installed packages(强制安装)
-a, –alldeps
install all required and optional dependencies(自动安装有被依赖的包)