软件安装和软件包管理器如何在Linux上工作

在Linux上安装软件涉及软件包管理器和软件存储库,而不是从Windows等网站下载和运行.exe文件。如果您是Linux的新手,这可能看起来像是一场戏剧性的文化转变。

虽然您可以自己在Linux上编译和安装所有内容,但包管理器是专门为您完成所有工作的。使用软件包管理器比在Windows上更容易安装和更新软件。

Linux VS Windows

有各种各样的Linux发行版和各种各样的包管理器。Linux是从开源软件构建的,这意味着每个Linux发行版都使用其所需的库版本和编译选项编译自己的软件。编译Linux应用程序通常不能在每个发行版上运行-即使它们可以运行,安装也会受到相互竞争的包格式的阻碍。如果您找到Linux应用程序的网站,您可能会看到不同包格式和Linux发行版的各种下载链接-假设该应用程序的网站提供了预编译版本。应用程序可能会告诉您下载源代码并自己编译。

软件存储库

Linux用户通常不会像Windows用户那样从应用程序网站下载和安装应用程序。取而代之的是,每个Linux发行版都托管自己的软件库。这些存储库包含专门为每个Linux发行版和版本编译的软件包。例如,如果您使用的是Ubuntu 12.04,那么您使用的存储库包含专门为Ubuntu 12.04编译的包。Fedora用户使用的存储库充满了专门为他们的Fedora版本编译的包。

包管理器

把包管理器想像成移动应用商店--只不过它们早在应用商店出现之前就已经存在了。告诉软件包管理器安装软件,它会自动从其配置的软件存储库中下载适当的软件包,并进行安装和设置-所有这些都无需您单击向导或在网站上查找.exe文件。当发布更新时,您的包管理器会注意并下载相应的更新。在Windows上,每个应用程序都必须有自己的更新程序才能接收自动更新,与之不同的是,包管理器处理所有已安装软件的更新-假设它们是从软件存储库安装的。

什么是包裹?

与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的更新。

相关文章