编译源码和安装包的区别?

编译源码和安装包的区别?

大多数发行版都有一个包管理器,可以让您毫不费力地安装程序。对于带有源代码的包,您始终可以自行编译。手工编译的结果和安装包的结果有明显的区别吗? (假设代码库相同)

答案1

手工编译的结果和安装包的结果有明显的区别吗? (假设代码库相同)

有各种编译时标志可用于调整生成的二进制文件;例如,为了禁用某些功能或优化代码大小而不是速度。

此外,许多具有驱动构建系统的软件包使用的约定configure是,当您手动安装时,软件包/usr/local默认进入,而不是/usr.

根图从源代码编译。您可以享受包管理器的便利,而无需牺牲任何灵活性(您始终可以ebuild在本地覆盖中进行调整)。

答案2

...答案很简单,就是程序已经编译好,“准备运行”遵循某种模式,内存,处理器,文件系统等等...已经有了源代码,除了编译之外还允许你制作你的改变!如果你希望! “,生成的程序将更加高​​效,正是因为它是在您的机器中制作、创建和编译的,然后您就非常了解它,即内存、视频、磁盘等...几乎与您购买一套套装相同在商店里按照已经标准化的尺寸购买,或者去裁缝店根据您的尺寸订购一件,这样更加公平和舒适。

答案3

自己编译源代码生成的二进制文件可能与您在包中获得的二进制文件没有太大区别(取决于编译器标志和发行版补丁)。

该软件包将附带许多方便的附加功能,这些附加功能通常不会由传统的配置、制作、安装舞蹈处理:

  • 简单的升级方法
  • 卸载软件包的简单方法。有些项目包括运行选项make uninstall,但不是全部,它们要求您保留所有已安装软件的源代码。
  • 自动安装依赖项。软件包依赖于软件包管理器将为您安装的其他软件包。在编译代码之前,您必须自己安装正确的依赖项
  • SystemD 的单元文件或 init.d 的脚本将由软件包安装
  • 将创建默认目录、配置文件、用户和组

相关内容