0

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

这些不同的位置会经常离线(可能一周几次)。无论如何,对我的理智来说太频繁了。

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

有这样的软件吗?梨?我什至无法弄清楚 Pyrus 解决了什么问题,但它似乎并没有解决我的问题。

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

4

2 回答 2

2

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 进行下载。Squid 可能已经满足您的需求。


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

  • 从该远程渠道下载您需要的软件包并安装在您自己的
  • 将域指向 /etc/hosts 中的 127.0.0.1,为它们设置 apache vhosts
  • 使用 pyrus 为每个域设置一个通道服务器并将包添加到它们
于 2013-04-23T22:29:18.930 回答
1

Pyrus 是为 PHP 5.3+ 重新编写的 PEAR 安装程序。

在https://github.com/c9s/MiniPear有一个名为“MiniPEAR”的 PEAR 频道镜像工具

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

于 2013-04-24T07:23:34.963 回答