是否有Pear缓存代理服务器


Is there a Pear caching proxy server?

我正在做一些开发工作,我经常不得不从不同的位置启动一台机器并安装一堆Pear包。

这些不同的位置经常离线(可能一周几次)。太频繁了,我都快疯了。

如果有某种我自己托管和运行的缓存代理服务器,我会为每个Pear包访问它,这将是很方便的。如果它没有包,它会出去获取它。这将减少许多其他服务器上的负载。我还可以得到一定程度的保证,如果上游永远中断,我仍然可以访问包。

这样的软件存在吗?Pyrus吗?我甚至不知道Pyrus解决了什么问题,但它似乎没有解决我的问题。

这种包代理/缓存类似于Nexus在Java/Maven-land中所做的。

Pyrus旨在成为PHP5.3+的PEAR安装程序。一些较新的PEAR2软件包需要它。但这不是缓存的解决方案。


我认为最简单的方法是从远程服务器下载一次包和它们的依赖项,然后在本地安装这些包。下面是一个使用Benchmark包的例子:
wget 'http://your.cache.server/package/Benchmark-1.2.9.tgz'
tar xf Benchmark-1.2.9.tgz
cp package.xml Benchmark-1.2.9
sudo pear install package.xml

另一种方法是使用缓存HTTP代理服务器,因为PEAR使用HTTP进行下载。鱿鱼可能已经满足你的需求了。

你也可以使用pirum。它是一个PEAR通道服务器软件,这意味着您可以设置自己的PEAR存储库。有了它,您就可以自己模拟远程通道服务器(经常关闭):

  • 从远程通道下载所需的软件包并安装到您自己的
  • 中。
  • 将域名指向/etc/hosts中的127.0.0.1,为它们设置apache vhosts
  • 使用pyrus为每个域设置通道服务器并向其中添加包

Pyrus是一个为PHP 5.3+重写的PEAR安装程序。

有一个PEAR通道镜像工具叫做"MiniPEAR",网址是https://github.com/c9s/MiniPear

简单地下载一个包并不能给你所有的依赖,所以这不是一个真正的解决方案。