蛋索引代理
项目描述
collective.eggproxy软件包
什么是collective.eggproxy ?
collective.eggproxy是PyPI的一个智能镜像。
它仅在类似easy_install或zc.buildout的程序请求时收集PyPI上的软件包。换句话说,与一些像rsync一样行为的镜像不同,collective.eggproxy只会获取你需要的内容。
首次运行collective.eggproxy时,它会下载pypi索引并构建一个链接页面。当软件请求特定软件包、版本等时,collective.eggproxy如果需要,则会下载它并存储在本地。
如何使用collective.eggproxy ?
安装后,你可以像这样将其作为一个独立服务器启动
$ mkdir /tmp/eggs $ eggproxy_run
代理将在本地的8888端口上可用。默认情况下,所有软件包都将下载到/var/www。如果此目录不存在(或者在Windows上),你需要配置它,具体方法将在下一节中解释。
从那里,你可以像这样在easy_install中使用它
easy_install -i https://127.0.0.1:8888/ -H "*localhost*" iw.fss
iw.fss软件包将被下载、存储在本地并提供给easy_install。
在zc.buildout中,只需在buildout部分定义索引值
[buildout] index = https://127.0.0.1:8888/ allow-hosts = *localhost*
就是这样!
高级配置
collective.eggproxy可以使用如下配置文件
[eggproxy] eggs_directory = /path/to/our/cache index = http://pypi.python.org/simple # Update information for files older than 24h update_interval = 24 # Port number where proxy will run port = 8888 # always_refresh is off by default. Setting it to 1 forces eggproxy to # always attempt a pypi connection. Slower but fresher. always_refresh = 0 # timeout is only needed for always_refresh: it sets a socket timeout. timeout = 3
除了eggs_directory以外的所有选项都是可选的。
collective.eggproxy在三个位置查找
在你的主目录中的
eggproxy.conf
。在Windows上,这也很有用,因为/etc/
不存在。从二进制文件看到的
../etc/eggproxy.conf
,你可以用它来设置buildout(请参阅下面的buildout文档)。/etc/eggproxy.conf.
使用Paste运行代理
你需要一个paste配置文件
$ paster make-config collective.eggproxy myconfig.ini
请随意编辑默认配置。此配置将覆盖eggproxy.conf
文件。
然后使用paster
来运行应用程序
$ paster serve configfile.ini
并测试它
$ easy_install -i https://127.0.0.1:8888/ -H "*localhost*" iw.fss
在buildout中安装collective.eggproxy
通过在buildout中安装它来快速设置collective.eggproxy。优点是所有内容都包含在一个目录中。你可以使用以下buildout配置作为示例
[buildout] parts = console_scripts configuration [console_scripts] recipe = zc.recipe.egg eggs = collective.eggproxy [configuration] recipe = collective.recipe.template input = etc/eggproxy.conf.in output = etc/eggproxy.conf
这将把eggproxy_run和eggproxy_update脚本放入bin/
目录。在buildout内部添加一个名为etc/
的子目录,并包含一个eggproxy.conf.in
文件
[eggproxy] eggs_directory = ${buildout:directory}/var/cache #update_interval = 24 #index = http://pypi.python.org/simple #port = 8888
collective.recipe.template将将其转换为etc/eggproxy.conf,并带有正确的设置
在Apache后面使用代理
你还可以使用collective.eggproxy与Apache一起使用。你需要为Apache使用mod_python 3.3。它不会与之前的版本一起工作。
Debian Etch用户:Etch提供3.2,因此Etch的用户必须从“Lenny”(测试)中获取源包,并使用dpkg-buildpackage重新构建。请参阅本文件中的相关部分以获取一些帮助。
http://servername/pypi的Apache设置可以是
Alias /pypi "/path/to/pypi" <Directory "/path/to/pypi"> Order allow,deny Allow from all SetHandler mod_python PythonFixupHandler collective.eggproxy.apache_handler::fixup_handler PythonInterpreter main_interpreter PythonOption URLPrefix /pypi PythonPath "sys.path+['/path/to/collective.eggproxy']" </Directory>
Apache必须能够写入“/path/to/pypi”!(通常Apache用户是www-data
)。为了更新代理的egg信息,你必须将脚本eggproxy_update
添加到该用户的crontab中。
Debian Etch上的mod_python更新
从debian "lenny"源快速构建说明
$ sudo apt-get build-dep libapache2-mod-python $ sudo apt-get install fakeroot
访问http://packages.debian.org/sources/lenny/libapache2-mod-python并获取以下扩展名的文件
.dsc
.orig.tar.gz
.diff.gz
$ wget http://ftp.de.debian.org/debian/pool/main/liba/libapache2-mod-python/libapache2-mod-python_3.3.1-3.dsc $ wget http://ftp.de.debian.org/debian/pool/main/liba/libapache2-mod-python/libapache2-mod-python_3.3.1.orig.tar.gz $ wget http://ftp.de.debian.org/debian/pool/main/liba/libapache2-mod-python/libapache2-mod-python_3.3.1-3.diff.gz $ tar xpvzf libapache2-mod-python_3.3.1.orig.tar.gz $ cd mod_python-3.3.1/ $ gzip -dc ../libapache2-mod-python_3.3.1-3.diff.gz |patch -p1 $ chmod +x debian/rules $ dpkg-buildpackage -rfakeroot -b $ cd ..
你应该有以下文件
libapache2-mod-python_3.3.1-3_i386.deb
libapache2-mod-python-doc_3.3.1-3_all.deb
最后一步是调用dpkg
$ sudo dpkg -i libapache2-mod-python_3.3.1-3_i386.deb
开发
SVN仓库是Plone集体: https://svn.plone.org/svn/collective/collective.eggproxy/trunk
变更日志
0.5.1 (2009-10-19)
已将SVN URL添加到README中。[reinout]
0.5 (2009-10-19)
发布修复(导致“0.4dev-r1234”发布的setup.cfg)。没有功能更改。
0.4 (2009-10-19)
修复与Python 2.6的兼容性问题。新Python版本不允许使用config.add_section('DEFAULT')(见: http://bugs.python.org/issue1781 和 ConfigParser文档)。由Stéphane Klein提供的补丁。
更新维护者电子邮件地址。[reinout]
0.3.1 (2009-04-28)
修复尽管设置了ALWAYS_REFRESH,但索引页面未更新的问题。原因:未重新处理的已下载的URL。[reinout]
0.3 (2009-03-16)
更新了buildout更改和always_refresh更改的文档。[reinout]
尝试将../etc/eggproxy.conf作为配置位置,以帮助buildout设置。[reinout]
添加always_refresh(和超时)选项,以确保始终尝试实际的PyPI连接,以确保其新鲜性。[reinout]
添加端口选项到配置。[reinout]
不将包名转换为小写
改进WSGI应用
添加测试
0.2.0 (2008-09-22)
作为collective.eggproxy的初始版本。该软件包以前称为iw.eggproxy (https://ingeniweb.svn.sourceforge.net/svnroot/ingeniweb/iw.eggproxy)
包索引/下载文件:跳过在本地系统中安装的模块(导致复制目录而不是下载文件)
修复更新脚本因无效/过时的包名而崩溃的问题
覆盖PackageIndex,以便我们获取所有版本、所有平台上的egg发行版
修复生成的索引中的损坏标签
0.1.0 (2008-06-06)
由IngeniSkel创建的初始版本
贡献者
作者:Bertrand Mathieu(在Ingeniweb时)[b_mathieu]
当前维护者:Reinout van Rees 在 The Health Agency
项目详情
collective.eggproxy-0.5.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f686b0f2ac5459157957c6fa409ccec8420928ea122a1787c35630aa34502665 |
|
MD5 | f63623eec7ba95d544968bbcf1e95805 |
|
BLAKE2b-256 | 642fd8ba7e3cf8ba8152e4f47468b6670a7ebe4aba5a48de14da55ce1493af7c |