我正在构建一个包含所有库的服务器(当然,它们不应该占用 GB 的数据)。这样我就可以克隆它,并拥有所有内容。
该服务器主要用于网络/爬行/数据库内容。
有哪些绝对必备的、可供未来使用的库?
libjpeg?java-jdk?有人能列出来吗?即使我不使用,我也希望安装这些库。但是,我以后可以用它。
答案1
这是一种答案,但可能不是你想听到的。
不要这么做。拥有一个“拥有一切”的服务器“黄金映像”乍一看似乎很有吸引力。你不想走那条路。以下是一些原因:
- 您安装的每个库都为安全漏洞提供了另一种可能途径。每次克隆此服务器时,您都需要使用所有最新的安全补丁更新映像。如果服务器上有无数个库,则此过程将花费更长的时间,并且比需要的要复杂得多(想想库间依赖关系解析)。
- 几乎不可能预见几年后启动的“项目 X”需要哪些库。
- 您的发行版有一个不错的包管理器是有原因的。使用它!如果您将来某个时候需要 libfoo,您只需一个命令,大约 15 秒即可安装它。
这三点足以说服你不要这样做吗?如果不能,我可能还能想出更多。老实说,我能理解你想这样做的理由。但在实践中,这不是一个好主意。
答案2
扩展ErikA 的回答,您可以将发行版的包管理与基于拉取的配置工具(如 Puppet、cfengine 或 bcfg2)的合理使用结合起来。这样可以更轻松地将所有系统保持在相同的配置中,并查看何时以及为何不一致。