waq*_*qar 5 package-management deb software-installation
一个.deb包很容易安装,就像.exe在 Windows 中一样,只需双击并通过 USC 安装。我想知道为什么有些开发人员选择像这样的格式.tar.gz(这让我很害怕)安装起来很复杂。
可能并非所有 Linux 分支都与.deb; 是这样吗?
为什么 Linux 社区没有为包管理设置一些标准,以便每个软件都可以采用.deb格式(我喜欢这种格式,因为它易于安装)并最终使最终用户受益。
ter*_*don 19
这是因为 Linux 生态系统包含许多不同的子分支(点击图片查看大图)1:
现在,这些发行版之间的基本区别之一是它们使用的包管理器。Debian 及其衍生产品(其中之一是 Ubuntu)使用dpkg它来处理.deb包。另一个大玩家是 RedHat 包管理器 ( rpm),它与.rpm包一起工作。其他发行版有自己的系统或使用包装器直接从源安装,甚至根本没有包管理器。
无论如何,.tar.gz格式是
实际上不是一种格式。这就是所谓的压缩 tarball。tar创建档案 ( .tar),然后通过这些档案gzip进行压缩 ( .gz)。请参阅此处了解更多详情。
不是安装程序。它只是文件/目录的集合,在源 tarball 的情况下,是程序的源代码。
不以任何方式特定于源代码或程序。您可以将其.tar.gz视为等效于 Windows(而不仅仅是).zip文件。它们可以包含安装程序,也可以包含 Word 文档或其他任何内容。
之所以没有将所有 Linux 程序打包为.deb文件,是因为虽然.deb它确实很流行,但它并不适用于所有发行版。因此,开发人员可以尝试为尽可能多的发行版打包他们的应用程序,也可以简单地提供源代码并让用户自己编译。直到几年前,绝大多数 Linux 程序都只是以这种方式分发。预打包程序的种类非常少。
近年来,随着该.deb格式的流行度大幅增加,这种情况发生了变化,这主要是由于 Ubuntu 和 Linux Mint 的相应流行。
之所以不是每个人都使用.deb的是每一种方法(dpkg/apt-get,rpm/yum,pacman等)有它的死忠球迷。如果我只发布我的程序,.deb不是每个人都能使用它。确保任何GNU/Linux 用户都能够使用我的软件的唯一方法是将其作为源发布并让他们手动编译。
最后一点,您真的不应该害怕此类程序。虽然整理依赖项确实很痛苦,但大多数开发人员会在他们的网页上清楚地说明依赖项,只要你安装了它们,从源 tarball 安装软件真的很容易:
提取文件
tar xvzf software.tar.gz
Run Code Online (Sandbox Code Playgroud)
移动到新创建的解压文件的目录
cd software/
Run Code Online (Sandbox Code Playgroud)
配置
./configure
Run Code Online (Sandbox Code Playgroud)
编译
make
Run Code Online (Sandbox Code Playgroud)
安装
sudo make install
Run Code Online (Sandbox Code Playgroud)
这一切都可以浓缩为:
tar xvzf software.tgz; cd software; ./configure && make && make install
Run Code Online (Sandbox Code Playgroud)
1图片取自此维基百科页面。
实际上还有其他.deb包的替代品
.deb包代表debian packages. 它是由Debian Linux Distribution
另一个主要参与者是rpm代表RedHat package manager
Linux 依赖于开源。所以大部分压缩文件.tar.gz都是源代码
你必须像这样在任何 linux 发行版上编译和运行:
tar -xvf yourdownloadedpackagefilename.tar.gz
cd yourdownloadedpackagefilename
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)
注意:您应该仔细阅读 README 文件,因为并非所有源包的行为方式都相同!
与包管理器打交道时情况并非如此。它们取决于发行版。
希望有帮助
我发现这句话非常有助于定义包管理器之间的区别:
这两个组都是“包管理器”,它们极大地简化了安装、更新、维护和删除软件的过程。“deb”文件供源自 Debian 发行版(Ubuntu 是其变体)的“dpkg”实用程序使用,而“rpm”文件用于 RedHat Package Manager,这是一个类似但非常不同的实用程序,源自红帽发行版。
在包管理器开始使用之前,安装新软件是一个复杂的过程,让许多非极客望而却步。您必须找到它的源代码,然后将该源代码编译并链接到一个可执行的二进制文件中。第一次尝试这样做通常会导致一长串关于缺少库文件的错误消息——您必须搜索、安装并重复该过程。
包管理器实用程序可以在单个文件中列出所有这些“依赖项”,该文件还包括描述和准备运行的二进制程序文件。包管理器负责获取所有需要的依赖项,并处理新软件的初始配置。
虽然这两种不同类型的经理基本上做相同的工作,但他们的文件不能直接互换。确实存在将 RPM 文件转换为 DEB 格式的实用程序,但不能保证转换后的 RPM 文件会自动为文件位置的 Debian 标准正确配置(在某些方面,这与 Red Hat 及其后代)。
我希望这个能有一点帮助; 并非所有发行版都使用包管理器,因此如果您想了解更多关于“旧方法”的信息,您可以尝试使用 Slackware 或 GenToo 之类的东西!这可能会告诉你比你学习起来更舒服的东西
真的,因为这个问题是错误的。
就像问“为什么我也可以买蛋糕和面粉,鸡蛋,糖?吃蛋糕这么容易,为什么还有人卖其他东西?”
.deb是带有(通常)已编译程序的包,这些程序是某人编译、安装、配置并适应特定操作系统的。有人处理了依赖项、副作用等问题。请注意,.debUbuntu 和其他几个发行版(如 debian、Mint 等)使用了该格式,即使您可以在 Ubuntu 中安装 debian .deb 并且通常可以正常工作,不能保证如此。其他发行版有不同的打包系统(rpm、pacman,甚至 .tar.gz 用于 slackware)。
.tar.gz是一组压缩的存档文件。想.zip。它可以是任何东西。一个软件、一个照片集、源代码、编译代码,甚至一个发行版的包,你能想到的。
| 归档时间: |
|
| 查看次数: |
5341 次 |
| 最近记录: |