在限制性环境中避免依赖地狱

这可能是一个规范性的问题,也可能只是我缺乏经验的一个function,但我很想知道是否有最佳实践旨在避免依赖地狱,因为当你发现自己处于一个有限访问常见的开放仓库的环境时。

就我们的具体情况而言,我们的斗争是在一个大型公司的背景下进行的,这些公司的安全政策严重削弱了在安装各种软件时访问外部软件包的能力。

你如何平衡安全和需要获得公共回购? 有没有办法限制外部回购的依赖,而不使安装Linux软件不可能? yum或apt-get回购的安全性和可靠性可以提出什么样的论点?

我知道一个广泛的问题 – 我希望在这里适合 – 但我很好奇,看看别人在这方面的经验。

当你限制你使用的外部存储库的数量时,你更好地避免了依赖地狱(和其他东西)。 既然不能保证这些知识库的质量,长期可用性和及时性,那么依靠它们的内容(和继续存在)是一个非常糟糕的举动。

作为一个具体的例子,我已经看到过一些例子,其中一个稳定的Linux发行版的半官方第三方软件包仓库已经随着时间的推移而出现了。 这造成了很大的麻烦,因为我们可能同时build立几台机器,这些机器都有相同版本的关键软件包。 过了一段时间,当我们去build造更多的机器的时候,我们指定的版本已经不再可用(被更新,更炫的版本所取代),我们不得不再次testing所有的东西,以确保新版本的软件包仍然正常工作。

这不是最糟糕的可能性。 如果我们没有testing新的软件包,而且它有一个严重的错误呢? 游民。 当然,我们select的版本可能会有一个安全漏洞,但是没关系,因为作为负责任的打包者,我们会密切关注上游安全公告,并确保任何漏洞都得到适当的修补。

谨慎的pipe理员只能从两个地方将软件包安装到他/她的系统上:

  • 发行版的官方存储库(当然,经过适当的密码validation以确保真实性),包装的添加和删除方式的政策和实践是已知的,并且符合您自己的风险pipe理评估; 和
  • 内部pipe理的软件包存储库(再次,encryptionvalidation)。

该内部存储库集的内容可以通过几种不同的方式填充:

  • 从外部的第三方存储库下载软件包,在testing环境中validation它们的实用性和稳定性,然后将它们添加到回购站中。
  • 如果你是偏执狂,你可以从上面的版本重新编译源代码包,然后testing并添加。
  • 如果你正确的偏执 ,那么就把自己关在一个没有任何电脑或电子设备的小房间里。