在 2021 年,人们喜欢 Linux 的理由比以往任何时候都多。在本系列中,我将分享使用 Linux 的 21 个不同理由。今天,我将讨论软件仓库
在使用 Linux 之前,我认为我电脑上安装的应用程序是理所当然的。我会根据需要安装应用程序,如果最终没有使用它们,我会忘记它们,让它们闲置并占用我硬盘上的空间。最终,我硬盘上的空间会变得稀缺,我会疯狂地删除应用程序,为更重要的数据腾出空间。然而,不可避免的是,应用程序只会释放出这么多空间,所以我会将注意力转向与这些应用程序一起安装的所有其他零碎的东西,无论是媒体资产还是配置文件和文档。这不是管理我的电脑的好方法。我知道这一点,但我没有想到要想象一个替代方案,因为正如他们所说,你不知道你不知道什么。
当我切换到 Linux 时,我发现安装应用程序的方式略有不同。在 Linux 上,不鼓励您访问网站寻找应用程序安装程序。相反,您运行一个命令,应用程序就会安装在系统上,并记录每个单独的文件、库、配置文件、文档和资产。
什么是软件仓库?
在 Linux 上安装应用程序的默认方法是从发行版软件仓库安装。这听起来可能像一个应用商店,那是因为现代应用商店从软件仓库的概念中借鉴了很多。Linux 也有应用商店,但软件仓库是独一无二的。您通过包管理器从软件仓库获取应用程序,这使您的 Linux 系统能够记录和跟踪您已安装的每个组件。
以下是准确了解系统上有什么内容可能出奇地有用的五个理由。
1. 删除旧应用程序
当您的计算机知道任何给定应用程序安装的每个文件时,卸载您不再需要的文件就非常容易了。在 Linux 上,安装 31 种不同的文本编辑器,然后卸载您不喜欢的 30 种,这没有问题。当您在 Linux 上卸载时,您是真正卸载。
2. 像您说的那样重新安装
不仅卸载彻底,重新安装也很有意义。在许多平台上,如果应用程序出现问题,有时会建议您重新安装它。通常,没有人能说出您为什么要重新安装应用程序。尽管如此,人们常常模糊地怀疑某个地方的某些文件已损坏(换句话说,数据写入不正确),因此希望重新安装可能会覆盖损坏的文件并使事情再次正常工作。这不是一个坏建议,但对于任何技术人员来说,不知道哪里出了问题都会令人沮丧。更糟糕的是,如果没有仔细的跟踪,就无法保证所有文件都会在重新安装期间刷新,因为通常无法知道应用程序安装的所有文件是否首先被删除。使用包管理器,您可以强制完全删除旧文件,以确保全新安装新文件。同样重要的是,您可以清点每个文件,并可能找出哪个文件导致了问题,但这更多是开源和 Linux 而不是包管理的功能。
3. 保持您的应用程序更新
不要让任何人告诉您 Linux 比其他操作系统“更安全”。计算机是由代码组成的,我们人类每天都在寻找利用这些代码的新颖有趣的方法。由于 Linux 上的绝大多数应用程序都是开源的,因此许多漏洞都以通用漏洞和暴露 (CVE) 的形式公开提交。大量涌入的安全漏洞报告似乎是件坏事,但这绝对是知道远胜于不知道的情况。毕竟,仅仅因为没有人告诉您存在问题,并不意味着不存在问题。漏洞报告是好的。它们使每个人都受益。当开发人员修复安全漏洞时,重要的是您能够及时获得这些修复,最好是不必记住自己去做。
包管理器旨在做到这一点。当应用程序收到更新时,无论是为了修补潜在的安全问题还是引入令人兴奋的新功能,您的包管理器应用程序都会提醒您有可用的更新。
4. 保持轻便
假设您有应用程序 A 和应用程序 B,它们都需要库 C。在某些操作系统上,通过获取 A 和 B,您会得到两个 C 副本。这显然是冗余的,因此想象一下每个应用程序发生多次这种情况。冗余库会迅速累积,并且由于给定库没有单一的“事实来源”,因此几乎不可能确保您使用的是最新版本,甚至只是一个一致的版本。
我承认我不会整天坐在那里思考软件库,但我确实记得那些日子,即使我不知道那是什么困扰着我。在我切换到 Linux 之前,我在处理工作中的媒体文件时,或者在玩不同的视频游戏时,或者在阅读 PDF 时,遇到错误或小故障的情况并不少见,等等。那时我花了很多时间调查这些错误。我仍然记得了解到我系统上的两个主要应用程序都捆绑了相同的(但不同的)图形后端技术。当一个应用程序的输出导入到另一个应用程序时,不匹配会导致错误。它本应工作,但由于同一库文件集合的旧版本中的错误,一个应用程序的热修复程序并没有使另一个应用程序受益。
包管理器知道每个应用程序需要哪些后端(称为依赖项),并且避免重新安装系统上已有的软件。
5. 保持简单
作为 Linux 用户,我欣赏一个好的包管理器,因为它有助于简化我的生活。我不必考虑我安装的软件、我需要更新什么,或者当我完成使用后某样东西是否真的被卸载了。我可以毫不犹豫地试用软件。当我在设置一台新电脑时,我运行一个简单的 Ansible 脚本来自动化安装我依赖的所有软件的最新版本。它简单、智能且非常自由。
更好的包管理
Linux 对应用程序和操作系统采取整体视图。毕竟,开源是建立在其他开源工作之上的,因此发行版维护者理解依赖堆栈的概念。Linux 上的包管理了解您的整个系统、其上的库和支持文件以及您安装的应用程序。这些不同的部分协同工作,为您提供一套高效、优化且强大的应用程序。
1 条评论