RPM与基于Tar的安装

时间:2019-02-11 07:16:25

标签: linux centos tar rpm rhel

我对Linux管理的知识有限,因此想在这里了解使用rpm软件包安装任何RHEL / CentOS Linux软件与通过tar / zip文件进行安装之间的优缺点。

谢谢

2 个答案:

答案 0 :(得分:3)

优缺点的详尽列表:

rpm

  • 智能依赖关系管理
  • 冲突检查
  • 允许轻松干净地卸载
  • 允许升级/降级
  • 列出程序包拥有的所有文件
  • 一个中央数据库,其中安装了所有软件包,它们拥有的文件,它们之间的依赖关系

来源

  • 您自己选择所有编译器标志
  • 您可以选择自定义安装路径

答案 1 :(得分:2)

我试图解释差异,优缺点,

Tar

基本上,tar是Linux中处理的旧方法。我们可以说它是在创建Linux时存在的。 通常,tar由源代码组成,需要以二进制格式编译才能使用。

优点:

使用tar软件包,您可以更好地控制所安装的程序。 如果您希望避免某些部分,可以随时随地进行。这给了你优势。

缺点:

主要问题在于所安装软件包的可维护性。 他们很难管理。安装后,除非有完整的文档记录,否则无法管理该软件。对它们进行版本控制也很困难,您在拥有的软件版本上一无所获。造成这种情况的可能原因是文件的非索引性质。这些文件可能会散布在您的整个文件系统中,这使其很难删除或升级。

难以自动化。 由于维护软件包的复杂性,也很难实现自动化。

下面我尝试解释tar文件如何编译以更好地理解

准备用于构建的(设置)环境

./ configure

此脚本具有许多应更改的选项。像--prefix或--with-dir = / foo。这意味着每个系统都有不同的配置。此外,。/ configure检查应安装的缺少库。这里的任何错误都会导致无法构建您的应用程序。这就是发行版将软件包安装在不同位置的原因,因为每个发行版都认为最好将某些库和文件安装到某些目录中。据说可以运行./configure,但实际上您应该始终对其进行更改。

构建系统

制造

这实际上是默认设置。每个品牌都有不同的动作要做。有些会构建,有些会在构建后进行测试,有些会从外部SCM存储库中签出。通常,您不必提供任何参数,但是有些软件包会以不同的方式执行它们。

安装到系统

进行安装

这会将软件包安装在configure指定的位置。如果需要,可以指定./configure指向您的主目录。但是,许多配置选项都指向/ usr或/ usr / local。这意味着您实际上必须使用sudo make install,因为只有root才能将文件复制到/ usr和/ usr / local。

请通过以下链接获取有关上述命令的更多信息

Why always ./configure; make; make install; as 3 separate steps?

RPM

RPM软件包管理器(RPM)是一个开放式包装系统,

RPM软件包预编译了二进制软件包(以及源软件包),以提供轻松的一键式安装体验。 RPM本身不能管理依赖性并不能解决冲突。与Yum或PackageKit结合使用时,它将解决该软件包的所有依赖关系。

RPM使系统更新变得容易。安装,卸载和升级RPM软件包可以通过短命令完成。 RPM维护已安装软件包及其文件的数据库,因此您可以在系统上调用功能强大的查询和验证。在升级过程中,RPM会谨慎处理配置文件,以免您丢失自定义,而常规的.tar文件则无法完成。

RPM功能可以验证软件包。如果您删除了某个软件包的重要文件,则可以验证该软件包。您将收到有关更改的通知(如果有的话),此时可以根据需要重新安装软件包。重新安装期间会保留您修改的所有配置文件。

优点:

安装,重新安装,删除,升级和验证软件包

使用已安装软件包的数据库来查询和验证软件包

使用元数据描述软件包,安装说明等

将原始软件源打包为源软件包和二进制软件包

将软件包添加到Yum存储库

对包裹进行数字签名

查询软件包(如果软件包在本地文件系统上或安装软件包之后)

验证软件包(在安装之前或之后检查软件包是否已被篡改)。

缺点

可定制性不如tar。

例如可用性:我们将了解如何使用Tar或rpm安装软件包:

在Tar中:

$ tar xvf package.tar
$ cd package
$ ./configure --prefix=PREFIX
$ make
$ make install

在RPM中:

rpm -U package-2.4.x-1.i686.rpm

就这么简单!!

这基本上取决于可用性和使用目的。

每个人都有其优缺点,取决于我们使用它的方式和用途。

我知道很长的解释,这将如何给您清晰的画面。我知道还有更多未修改的内容,例如架构和执行。我不太有信心在这里解释这些内容。