"binary install" 和 "compile and install from source" 有什么区别?哪个更好?
What is the difference between "binary install" and "compile and install from source"? Which is better?
我想为Ros(机器人操作系统)安装一个驱动程序,我有两个选项,二进制安装和从源代码编译安装。我想知道哪种安装方式比较好,各有什么优缺点。
Source:又名源代码,通常在某种 tarball 或 zip 文件中。这是原始编程语言代码。您需要某种编译器(javac 用于 java,gcc 用于 c++,等等)来创建您的计算机然后 运行s.
的可执行文件
优点:
- 你看看源码是什么意思....
- 您可以编辑最终结果程序以使其表现不同
- 根据您正在做的事情,当您编译时,您可以启用某些优化,这些优化将在您的机器上运行并且仅在您的机器(或完全类似的机器)上运行。例如,对于某种 gfx 渲染软件,您可以编译它以启用 GPU 支持,这将提高渲染速度。
- 您可以为不同的 OS/Chipset 创建一个应用程序版本(参见下面的二进制文件)
缺点:
- 您必须安装编译器
- 您需要手动安装所有必需的库,这些库通常还需要编译(并且需要安装它们的库等)。这可以轻松地将 30 秒的快速命令变成一个多小时的项目。
- 有很多地方可能出错,如果您不熟悉各种错误的含义,在线寻求支持可能会非常困难。
二进制: 这是 运行 的实际程序。这是从源代码编译时创建的可执行文件。它们通常内置了所有必要的库,或者 install/deploy 根据需要(取决于应用程序的编写方式)。
优点:
- 准备就绪-运行。如果您有专为您的处理器和操作系统设计的二进制文件,那么您很有可能 运行 该程序,一切都会在第一时间运行。
- 少配置。您不必设置一大堆配置选项即可使用该程序;它只是使用通用的默认配置。
- 如果出现问题,在线查找帮助应该更容易一些,因为二进制文件是预编译的....其他人可能正在使用它,这意味着您正在使用与他们完全相同的程序,没有针对您的系统进行优化。
缺点:
- 您无法 see/edit 源代码,因此无法针对您的特定应用程序进行优化或调整。此外,您并不真正知道该程序将要做什么,因此可能会有令人讨厌的惊喜等着您(这就是防病毒软件有用的原因……尽管在 linux 系统上不需要那么多)。
- 您的系统必须与二进制文件兼容。例如,您不能在 32 位操作系统上 运行 64 位应用程序。您不能 运行 在基于 PowerPC 的旧 G5 Mac.
上 OS X 的英特尔二进制文件
综上所述,"better"是哪一个由你决定。只有您可以决定无论您要做什么,哪一个是必需的。在 大多数 情况下,使用二进制文件会很好,并且给您带来的麻烦最少。不过,有时候,如果只是作为文档,最好能提供源代码。
我想为Ros(机器人操作系统)安装一个驱动程序,我有两个选项,二进制安装和从源代码编译安装。我想知道哪种安装方式比较好,各有什么优缺点。
Source:又名源代码,通常在某种 tarball 或 zip 文件中。这是原始编程语言代码。您需要某种编译器(javac 用于 java,gcc 用于 c++,等等)来创建您的计算机然后 运行s.
的可执行文件优点:
- 你看看源码是什么意思....
- 您可以编辑最终结果程序以使其表现不同
- 根据您正在做的事情,当您编译时,您可以启用某些优化,这些优化将在您的机器上运行并且仅在您的机器(或完全类似的机器)上运行。例如,对于某种 gfx 渲染软件,您可以编译它以启用 GPU 支持,这将提高渲染速度。
- 您可以为不同的 OS/Chipset 创建一个应用程序版本(参见下面的二进制文件)
缺点:
- 您必须安装编译器
- 您需要手动安装所有必需的库,这些库通常还需要编译(并且需要安装它们的库等)。这可以轻松地将 30 秒的快速命令变成一个多小时的项目。
- 有很多地方可能出错,如果您不熟悉各种错误的含义,在线寻求支持可能会非常困难。
二进制: 这是 运行 的实际程序。这是从源代码编译时创建的可执行文件。它们通常内置了所有必要的库,或者 install/deploy 根据需要(取决于应用程序的编写方式)。
优点:
- 准备就绪-运行。如果您有专为您的处理器和操作系统设计的二进制文件,那么您很有可能 运行 该程序,一切都会在第一时间运行。
- 少配置。您不必设置一大堆配置选项即可使用该程序;它只是使用通用的默认配置。
- 如果出现问题,在线查找帮助应该更容易一些,因为二进制文件是预编译的....其他人可能正在使用它,这意味着您正在使用与他们完全相同的程序,没有针对您的系统进行优化。
缺点:
- 您无法 see/edit 源代码,因此无法针对您的特定应用程序进行优化或调整。此外,您并不真正知道该程序将要做什么,因此可能会有令人讨厌的惊喜等着您(这就是防病毒软件有用的原因……尽管在 linux 系统上不需要那么多)。
- 您的系统必须与二进制文件兼容。例如,您不能在 32 位操作系统上 运行 64 位应用程序。您不能 运行 在基于 PowerPC 的旧 G5 Mac. 上 OS X 的英特尔二进制文件
综上所述,"better"是哪一个由你决定。只有您可以决定无论您要做什么,哪一个是必需的。在 大多数 情况下,使用二进制文件会很好,并且给您带来的麻烦最少。不过,有时候,如果只是作为文档,最好能提供源代码。