linux软件管理器有什么,linux的软件包管理器是什么?是如何工作的?

linux发行版本不同于其他系统的最大的一个点就是软件包管理器。这里您将了解到什么是软件包,什么是软件包管理器,它们是如何工作的,以及现有的可用的软加包管理器。

Linux中的软件包管理器是什么?

简单的解释就是,软件包管理器能够让用户在开源系统中对软件进行安装,删除,更新,配置以及管理等操作的工具。软件包管理器可以是图形应用就像是软件中心,也可以是命令行工具就像是apt-get或者pacman。

什么是软件包?

软件包通常指的就是应用程序,但是也可以是图形界面程序,命令行工具或者软件库(被其他的软件所依赖的),一个软件包本质上包含了二进制执行文件,配置文件有时候会有依赖信息的封装文件。

在早年间,软件的安装通常是通过源码完成的,您可能需要参考一个文件(通常被命名为readme)然后瞅瞅需要什么软件组件以及二进制文件的位置。一般来说包含配置脚本文件以及生成文件,您需要自己编译软件有时候还需要自己解决依赖问题(有些软件的安装是需要其他软件配合)。

为了解决这个麻烦事,linux的发行版本创造了独特的软件安装形式,为想要安装有元数据(版本号,描述)以及依赖的软件的用户,提供了可直接使用的二进制文件(提前编译好的)

一个形象的比喻就是,你想吃蛋糕,你可以自己买原材料做一个,但也可以直接买现成的。

cb5ef7080728

大概在九十年代中期,debian创造了.deb(DEB)为后缀的软件安装包,red hat创造了.rpm(RPM)后缀的软件安装包。编译源码的安装方法仍然存在,但是已经变成了一个选项,而且不是必选项。

软件包管理器如何工作

提前说明白了,软件包管理是一个通用的概念,并不是linux独有的,对于不同的软件和编程语言你都可以找到软件包管理器,就比如pip就是python的软件包管理,甚至是Atom文本编辑器都有自己的软件包管理器。

上图看看软件包管理器如何工作(基于SUSE)

cb5ef7080728

几乎所有的linux的发行版本都有软件库,这个库基本上就是软件的集合。是的,因为linux的版本多,所以软件库已经不止一个了,在软件库里,一般都包含一个软件的不同版本。

软件库里面还有一些元数据文件,这些文件一般包括软件包的一些信息(软件包的名字,版本号,描述性文件以及库的名字等等)

您的软件包管理器首先会与元数据进行交互,之后会在您的系统里生成一个元数据的本地缓存,当你运行软件包管理器的更新指令的时候(就比如apt update命令),它就会通过软件库中的元数据来更新本地的元数据缓存。

当您运行安装命令时(就比如apt install),管理器就会自动指向之前的本地元数据缓存,如果它能够在缓存中找到安装包的信息,它就会使用网络连接去链接到合适的软件库,并会在您的系统上安装这个软件之前首先下载这个软件包。

一个软件包可能会有一些依赖,这意味着您需要安装一些其他的软件包,软件包管理器会注意到这些依赖,之后自动安装您要安装的软件。

cb5ef7080728

相似地,当您要使用软件包管理器删除软件时,它会自动删除,或者告诉您系统里哪些是可以删除的未被使用的包。

除了安装,删除软件的基本功能以外,管理器还可以根据您自己的需求配置和管理软件包。例如,您可以控制一些软件的日常的更新版本,软件包管理器还可以干很多的事情。

软件包管理器的不同种类

不同的系统可能会有不同的软件包管理器,但是一个系统也可以拥有不止一个软件包管理器。

例如,对于rpm文件的使用就可以通过yum或者dnf软件包管理器,而对于deb文件,您具有基于apt-get以及aptitude的命令行软件包管理器。​

cb5ef7080728

软件包管理器并不是说一定要基于命令行,你还可以选择图形界面软件包管理器工具就像是Synaptic,您使用的发行版本自带的软件中心也是软件包管理器,即使它在背后运行apt-get或者DNF命令。

源:https://itsfoss.com/package-manager/

翻译:daxuxu

排版:daxuxu

公众号:archlinux

多多关注

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值