deb包和tar球有什么区别? 每个的优点/缺点是什么?

关于焦油球,我不知道。 大多数软件包都以tar ballforms提供,但Ubuntu软件包是Debian软件包。

deb包和tar球有什么区别?

每个的优点/缺点是什么?

焦油球通常是您必须编译的源代码。 Debs是预编译的程序,已经为Ubuntu / Debian构建和配置。

我强烈建议在可用时使用deb,因为它们更容易,并且它们与包管理器集成,因此您可以轻松卸载它们。

Debs还将安装所需的任何依赖项。 从源代码安装可以导致被亲切地称为“依赖地狱”。 大多数开源程序依赖于其他几个程序/库来运行。 从源代码安装时,它不会安装这些,而是​​(希望)会抱怨不符合依赖关系。 然后,您尝试安装该依赖项,然后将其炸弹,需要另一个依赖项等,等等。

从源代码安装也可以将文件放在意想不到的位置,因为不同的发行版会略有不同。

当我需要安装程序时,我按以下顺序尝试我的选项:

  1. 查看软件中心。 这显然是最简单的,尽管软件中心并非包罗万象,并且不是最新版本的最新版本。

  2. 尝试找到提供它的存储库。 添加存储库将使程序显示在软件中心,及时接收升级等。

  3. 寻找.deb包。

  4. 从源头安装(tar ball)。

焦油球只是拉链的另一种forms的压缩。 尽管压缩的格式和技术不同,但它基本上是一组文件和文件夹的容器。

通常,源代码及其所需的文件将由以tar球forms编写软件的人/组在互联网上提供。 所以你可以下载它,解压缩,编译软件并安装它。

但是,deb软件包的作用是通过维护标准使您的安装过程变得简单。 互联网上提供的软件将由Debian软件包维护人员使用,制作成相应的.deb软件包并放入Debian存储库。

在此处输入图像描述

你可以在Debian软件包维护者的博客上阅读它: http : //www.j4v4m4n.in/2012/05/01/debian-utsavam-at-mes-kuttippuram-kerala-2/

至于优缺点,.deb包由apt和aptitude等包管理器管理。 因此,无论何时使用它安装软件,他们都会自动确定您是否具有在系统上运行该软件所需的依赖项,并将为您安装它们。

但是如果你使用tar球安装它,你将不得不弄清楚该软件所依赖的内容,每次你必须手动检查你正在安装的软件的依赖关系是否已经安装过。

但是apt会为你做这一切。

此外,从源安装(从tar球安装)将有不同的方法用于不同的软件。 有一个GNU的configure-make-make install理念,根据软件的编写方式还有其他方法。

但是,将它们转换为deb会完全消除所有这些差异,并使用户更容易安装和使用该软件。

还有一点。 什么时候需要从源代码安装? 那是来自焦油球吗? 基本上有两种情况。

  1. 如果debian打包团队尚未打包软件。
  2. 如果您想为项目做出贡献。 这意味着您可以更改源代码,编译它并测试更改。

如果您想了解更多关于debian包装的信息,可以在这里阅读: http : //www.debian.org/doc/manuals/maint-guide/

希望这可以帮助。

Debian(以及Ubuntu)包是二进制文件的集合及其安装的相关说明。 这意味着程序包本身知道如何以及在何处安装,并且它还知道它所依赖的程序包列表。

源tarball(扩展名为.tar.gz.tar.bz2文件 – 甚至.tgz或.tbz2 )只是与tar实用程序一起tar并使用gzipbzip2压缩的文件和目录集。 要构建源代码,您必须:

  1. tar xvfz file.tar.gztar xvfj file.tar.bz2 (在空目录中)解压缩文件
  2. 使用./configure配置软件包(软件包在开始编译之前测试系统是否一切正常)
  3. make开始编译
  4. 如果你愿意,运行make install将应用程序安装到其“默认”locatioon(通常在/ usr / {s} bin或/ usr / local / {s} bin中,但这取决于应用程序和分发)

Debian / Ubuntu软件包在源代码压缩包方面的主要优点是软件包是“自包含的”并且它们的二进制文件被跟踪。 这意味着解包过程对于每个应用程序只看到(大致)一个包的用户是透明的。 用户甚至不需要记住给定应用程序已安装的文件和位置,因此应用程序的安装/删除(大部分)成为一个指令进程。

源代码压缩包相对于二进制包的主要优点是,在第一种情况下,源代码直接在目标机器上编译,然后可以相应地进行优化。 此外,即使最好的包装系统也会在特定情况下破裂(例如软件包太新或太旧),并且通常官方包装在服务器变得太旧时会被清除。 在这些情况下,必须手动在Internet上搜索所需的应用程序以及特定版本的特定库以满足其所有依赖项。

我可以看到已发布的一些非常好的答案。 但有一些事情需要解决。

与从源代码编译时所谓的“依赖性地狱”相反,您实际上可以配置Ubuntu,以便在从tarball /任何源编译时自动安装这些依赖项。

在这里阅读如何做到这一点:

http://www.howtogeek.com/106526/how-to-resolve-dependencies-while-compiling-software-on-ubuntu/

另外,如果你把这个依赖性问题放在一边,那么tarball的好处就是你可以配置很多与安装相关的东西,比如在哪里安装等,非常容易从源代码安装。

此外,“Debian Packages”一词可能会让您在这种情况下感到困惑。 请记住,Debian软件包有两种类型,如下所示:

http://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html

当然,如果你只谈论deb文件,那么它们通常就是已经说过的那些已编译的软件。