软件安装和包管理器如何在 Linux 上工作
已发表: 2022-01-29在 Linux 上安装软件涉及软件包管理器和软件存储库,而不是从 Windows 等网站下载和运行 .exe 文件。 如果您是 Linux 新手,这似乎是一种戏剧性的文化转变。
虽然您可以在 Linux 上自己编译和安装所有内容,但包管理器旨在为您完成所有工作。 使用包管理器使安装和更新软件比在 Windows 上更容易。
Linux 与 Windows
有各种各样的 Linux 发行版和各种各样的包管理器。 Linux 是由开源软件构建的,这意味着每个 Linux 发行版都使用所需的库版本和编译选项编译自己的软件。 编译 Linux 应用程序通常不会在每个发行版上运行 - 即使可以,安装也会受到竞争包格式的阻碍。如果您找到 Linux 应用程序的网站,您可能会看到各种不同包格式和 Linux 的下载链接发行版——假设应用程序的网站提供了预编译版本。 该应用程序可能会告诉您下载源代码并自行编译。
软件存储库
Linux 用户通常不会像 Windows 用户那样从应用程序的网站下载和安装应用程序。 相反,每个 Linux 发行版都托管自己的软件存储库。 这些存储库包含专门为每个 Linux 发行版和版本编译的软件包。 例如,如果您使用的是 Ubuntu 12.04,则您使用的存储库包含专门为 Ubuntu 12.04 编译的软件包。 Fedora 用户使用一个包含专门为他们的 Fedora 版本编译的软件包的存储库。
包管理器
把包管理器想象成一个移动应用商店——只不过它们早在应用商店之前就已经存在了。 告诉包管理器安装软件,它会自动从其配置的软件存储库中下载适当的包,安装并设置它——所有这些都无需您单击向导或在网站上查找 .exe 文件。 发布更新时,您的包管理器会注意到并下载相应的更新。 在 Windows 上,每个应用程序都必须有自己的更新程序才能接收自动更新,而包管理器会处理所有已安装软件的更新——假设它们是从软件存储库安装的。
什么是套餐?
与 Windows 不同,应用程序以 .exe 安装程序文件形式出现,可以对系统执行任何操作,Linux 使用特殊的包格式。 有多种软件包类型——最著名的是 Debian 和 Ubuntu 上的 DEB,以及 Fedora、Red Hat 等上的 RPM。 这些包本质上是包含文件列表的档案。 包管理器打开存档并将文件安装到包指定的位置。 包管理器仍然知道哪些文件属于哪些包——当你卸载一个包时,包管理器确切地知道系统上的哪些文件属于它。 Windows 不知道哪些文件属于已安装的应用程序——它让应用程序安装程序自己管理安装和卸载。
包还可以包含在安装和删除包时运行的脚本,尽管这些通常用于系统设置而不是将文件移动到任意位置。

在 Linux 上安装软件
要在 Linux 上安装软件,请打开包管理器,搜索软件,然后告诉包管理器安装它。 您的包管理器将完成其余的工作。 Linux 发行版通常为包管理器提供各种前端。 例如,在 Ubuntu 上,Ubuntu 软件中心、更新管理器、Synaptic 应用程序和 apt-get 命令都使用 apt-get 和 dpkg 来下载和安装 DEB 包。 您可以使用任何您喜欢的实用程序——它们只是提供不同的界面。 您通常会在 Linux 发行版的菜单中找到一个简单的图形包管理器。
更新延迟
新的 Linux 用户经常注意到包管理器和存储库的一件事是新软件版本到达他们的系统之前的延迟。 例如,当新版本的 Mozilla Firefox 发布时,Windows 和 Mac 用户将从 Mozilla 获取它。 在 Linux 上,您的 Linux 发行版必须打包新版本并将其作为更新推出。 如果您在 Linux 上打开 Firefox 的首选项窗口,您会注意到 Firefox 无法自动更新自身(假设您使用的是 Linux 发行版存储库中的 Firefox 版本)。
您也可以自己下载和安装应用程序——例如,直接从 Mozilla 下载 Firefox——但这可能需要从源代码编译和安装软件,并消除了包管理器的好处,例如自动、集中的安全更新。
虽然新版本的 Firefox 是优先考虑的,因为它们包含安全更新,但其他应用程序可能无法快速交付。 例如,LibreOffice 办公套件的主要新版本可能永远不会作为当前 Linux 发行版本的更新发布。 为避免潜在的不稳定并留出时间进行测试,此版本可能要等到您的 Linux 发行版的下一个主要版本(例如 Ubuntu 12.10)成为发行版软件存储库中的默认版本时才可用。
为了解决这个问题,一些 Linux 发行版,例如 Arch Linux,提供了“滚动发布周期”,新版本的软件被推送到主软件存储库中。 这可能会导致问题——虽然您可能需要新版本的桌面应用程序,但您可能并不关心新版本的低级系统实用程序,这可能会导致不稳定。
Ubuntu 提供 backports 存储库以将重要软件包的新版本引入旧发行版,尽管并非所有新版本都进入 backports 存储库。
其他存储库
虽然 Linux 发行版附带预配置了自己的存储库,但您也可以将其他存储库添加到系统中。 拥有后,您可以从该存储库安装软件存储库,并使用您的包管理器从它接收更新。 您添加的存储库必须针对您的 Linux 发行版和包管理器而设计。
例如,Ubuntu 提供了各种各样的个人软件包档案 (PPA),其中包含由个人和团队编译的软件。 Ubuntu 不保证这些存储库中软件包的稳定性或安全性,但您可以添加来自受信任个人的 PPA,以下载尚未在 Ubuntu 存储库中的软件包——或下载现有软件包的较新版本。
一些第三方应用程序也使用自己的软件存储库。 例如,当您在 Ubuntu 上安装 Google Chrome 时,它会将自己的 apt 存储库添加到您的系统中。 这可确保您通过 Ubuntu 的更新管理器和标准软件安装工具接收到 Google Chrome 的更新。