如何从代理(ISA-NTLM)后面更新Ruby Gems
我背后的防火墙正在仅NTLM模式下运行Microsoft ISA服务器。哈希是否成功通过Ruby SSPI gem或者其他方法来安装/更新其Ruby宝石?
...还是我只是懒惰?
注意:rubysspi-1.2.4不起作用。
这也适用于Ironig项目的一部分" igem"
解决方案
回答
一种解决方法是在本地计算机上安装http://apserver.sourceforge.net,对其进行配置并通过此代理运行gem。
- 安装:只需下载apserver 097(而不是实验性098!)并解压缩即可。
- 配置:编辑server.cfg文件,然后将MS代理的值放在" PARENT_PROXY"和" PARENT_PROXY_PORT"中。输入DOMAIN和USER的值。将PASSWORD留为空白(冒号之后),启动时会提示我们。
- 运行apserver:
cd aps097; python main.py
- 运行Gems:
gem installhttp-proxy http:// localhost:5865 /库
回答
我无法通过命令行开关使我的工作正常,但是仅通过设置我的HTTP_PROXY环境变量就可以做到。 (请注意,情况似乎很重要)。我有一个批处理文件,其中有这样的一行:
SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%
在到达这一行之前,我先设置了四个引用的变量。例如,如果我的用户名是" wolfbyte",密码是" secret",代理称为" pigsy",并且在端口8080上运行:
SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080
我们可能需要小心管理,因为它在机器会话中将密码以纯文本格式存储,但是我认为这不是太大的问题。
回答
我一直在使用cntlm(http://cntlm.sourceforge.net/)。配置与ntlmaps非常相似。
- gem install --http-proxy http:// localhost:3128 name_of_gem
效果很好,并且还允许我将Ubuntu盒子连接到ISA代理。
查看http://cntlm.wiki.sourceforge.net/了解更多信息
回答
关于该主题的文章比比皆是,为了帮助其他人节省尝试不同解决方案的时间,这是我努力工作的最终结果。
目前,互联网上的三种解决方案是:
红宝石
审批者
中央电视台
rubysspi仅在Windows计算机AFAIK上运行,因为它依赖于Win32Api库。因此,如果我们在尝试通过代理运行的Windows机器上,则这是适合解决方案。如果我们使用的是Linux发行版,那么我们就不走运了。
apserver似乎是一个失败的项目。我见过的帖子中列出的链接指向sourceforge上的404页。我在sourceforge上搜索" apserver"没有任何结果。
我见过的cntlm的sourceforge链接重定向到http://cntlm.awk.cz/,但是超时。在sourceforge上进行搜索可以打开此链接,该链接可以正常工作:http://sourceforge.net/projects/cntlm/
下载并配置了cntlm之后,我已经设法通过代理安装了gem,因此这似乎是Linux发行版的最佳解决方案。
回答
对于Windows操作系统,我使用了Fiddler来解决此问题。
- 从www.fiddler2.com安装/运行Fiddler
- 运行宝石:
$ gem install --http-proxy http://localhost:8888 $gem_name