手动交互式代理在没有互联网的服务器上安装软件包

手动交互式代理在没有互联网的服务器上安装软件包

我需要在没有互联网连接的服务器上安装一些 rpm、python 和 R 包:我只能通过 ssh 连接到它。我可以下载这些包并将它们 scp 到服务器,然后使用rpm -i诸如此类的命令手动安装它们。但管理依赖项和找到正确的 rpm 包很麻烦,而且每个软件都有特定的要求(这里指的是

加上一些 R 和 pip 的依赖管理。)


因此,我正在考虑另一种适用于任何软件的途径:

  • 在本地启动“手动代理”,作为交互式命令行工具
  • 在新的控制台中,要求 yum/R/pip 使用该代理并安装一些包
  • 每当 yum 从网络请求某个文件(如 PACKAGES 或 foo.tar.gz)时,手动代理都会打印 URL 并等待
  • 我从另一台机器下载上述 URL 并将其 scp 到服务器
  • 我告诉手动代理该文件在那里,然后它会回答 yum 的请求。

有没有工具可以实现手动代理?mitmproxy 似乎可以做到这一点,有了解这个工具的人可以确认一下吗?

我看到了这些潜在的挑战:

  • 我可能需要增加 yum 的超时时间。
  • 如果包管理器 yum、pip 或 R 使用 SSL,我需要安装 mitmproxy 的证书
  • 安装 mitmproxy 及其依赖项(在缺乏互联网的服务器上)可能比我试图解决的问题更麻烦。

任何其他可以实现此目的的工具也欢迎。也许一个小的 Python 脚本就足够了。

编辑:回答 TessellatingHeckler 的第二条评论:

  • SSH 从服务器退出?可能,但网络管理员可能不高兴(另外,设置并不简单,因为我的电脑也位于代理后面,所以我需要双跳 + ssh -R)。
  • github.com/inaz2/proxy2?看起来不错。
  • yum localinstall?它确实比 更好rpm -i,但我的目标是(获得一些经验)并为任何启用代理的包管理器提供通用解决方案。包管理器在列出依赖项和从本地存储库安装的方式上有所不同,并且这些功能的文档通常比告诉它们使用代理更少。

相关内容