![从源代码编译还是从包安装?](https://linux22.com/image/629292/%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E7%BC%96%E8%AF%91%E8%BF%98%E6%98%AF%E4%BB%8E%E5%8C%85%E5%AE%89%E8%A3%85%EF%BC%9F.png)
我正在尝试构建一个新的 Web 服务器和数据库服务器,我通常使用 YUM 安装 apache 和 mysql。我很好奇,
为什么大多数有经验的系统管理员更喜欢从源代码编译 apache 和 mysql,而不是从构建包安装?
编译是否更安全、更灵活?
或者当它们从源代码(例如 apache)构建时执行速度更快?
请列出从源代码编译的优点和缺点。
谢谢 :)
答案1
当有软件包可用于安装软件时,请使用它。具体到您的情况,谈到 Web 和数据库服务器,任何发行版中都有很多这样的软件包:
- 阿帕奇(网络)
- Nginx(网络)
- Lighttp (网络)
- Mysql(数据库)
- Postgresql(数据库)
- MariaDB(数据库)
- ...
通过使用您的发行版提供的软件包,您一定会收到更新(补丁、安全更新等)并能够轻松地应用它们。
还要注意,在某些商业发行版中,如果您安装自己编译的软件包,您可能会失去获得支持的权利。
只有当您绝对需要此软件并且没有其他方法以软件包格式获取它时,才可以选择从您编译的源代码安装软件。或者,如果您绝对想运行最新版本或甚至是预发布版本(测试版软件,...)。但在生产机器上,请尝试坚持使用软件包。
答案2
经验丰富的系统管理员不会从源代码构建软件,因为这种软件很难管理。您无法轻松地将其部署到服务器上,也无法使用供应商补丁自动更新软件,而通过软件包管理器安装时会定期提供这些补丁。
答案3
我没有列出优点和缺点,但仅有的我从源代码安装的次数是
$software 的打包版本与我需要使用的生产软件不兼容。
$software 软件包不存在
内核补丁
这就是全部了,除此之外我信任(!)包管理器,而且它也使生活变得更轻松。