linux有几种包管理

8种常用包管理有:1、DPKG,Debian系的包管理系统;2、apt,Debian、Ubuntu上的包管理系统;3、apt-cache,一个apt软件包管理工具;4、RPM,红帽系的包管理系统;5、yum,一个解决包依赖关系而存在的软件包管理器;6、DNF,新一代的rpm软件包管理器;7、pkg,FreeBSD默认使用的包管理器;8、Pacman,Arch系的包管理系统。

linux有几种包管理

本教程操作环境:linux7.3系统、Dell G3电脑。

大多数现代的类 Unix 操作系统都提供了一种中心化的机制用来搜索和安装软件。软件通常都是存放在存储库中,并通过包的形式进行分发。处理包的工作被称为包管理。包提供了操作系统的基本组件,以及共享的库、应用程序、服务和文档。

包管理系统除了安装软件外,它还提供了工具来更新已经安装的包。包存储库有助于确保你的系统中使用的代码是经过审查的,并且软件的安装版本已经得到了开发人员和包维护人员的认可。

大多数包系统都是围绕包文件的集合构建的。包文件通常是一个存档文件,它包含已编译的二进制文件和软件的其他资源,以及安装脚本。包文件同时也包含有价值的元数据,包括它们的依赖项,以及安装和运行它们所需的其他包的列表。

虽然这些包管理系统的功能和优点大致相同,但打包格式和工具却因平台而异:

操作系统格式工具
Debian.debapt, apt-cache,, dpkg
Ubuntu.debapt, apt-cache,, dpkg
CentOS.rpmyum
Fedora.rpmdnf
FreeBSDPorts, .txzpkg

1、DPKG

dpkg是Debian系的包管理系统,包后缀名是.deb。

dpkg 是 linux 系统下用来安装、创建和管理软件包的工具。 其安装的软件包一般是下载到本地的软件包,拓展名是deb。

格式 : dpkg 参数 package.deb (初学者容易忘记打空格,在命令和参数以及参数和软件包中间要打空格,否则linux会无法识别)

dpkg -i

dpkg -i 是 linux 系统下用来安装软件包的命令。

格式 : /home/用户名/桌面(desktop)/ # dpkg -i package.deb (此时,安装包被放在桌面上,也可以放到其他文件夹中,在所在文件夹中打开终端或者# dpkg -i /绝对路径/package.deb )

dpkg -r

dpkg -r 是 linux 系统下用来卸载软件包的命令。 我推荐和dpkg -l 命令结合使用,因为卸载软件的名字不一定和安装时安装包的名字一样。

格式 : # dpkg -r package (卸载时可以在任意路径)

使用 dpkg -l 命令找到需要卸载的软件,将软件名复制(不要将软件版本一起复制),复制的软件名替换格式里的package

dpkg -P

dpkg -P 是 linux 系统下用来卸载软件包的同时删除其配置文件的命令。 如果想要完全将软件包卸载干净最好使用这个命令。我就碰到过没卸载干净导致安装后一版本的软件时无法安装成功的问题。

格式 : # dpkg -P package (使用方式可以参考dpkg -r)

dpkg -l

dpkg -l 是 linux 系统下用查看列出当前已安装的软件包的命令。

格式 : # dpkg -l 就可以看到所有已安装的软件包

如果要看某个特定的软件,比如我在公司里安装的软件带有gongsi的关键字

可以使用 # dpkg -l grep | gongsi 就可以看到带gongsi关键词的安装包,其中 | 是竖杠不是字母l。

2、apt

apt是Advanced Package Tool的简写,是工作于Debian, Ubuntu等相关linux发行版上的软件包管理系统。apt在类Unix操作系统上提供如自动检索、配置和安装软件包等功能来简化软件的管理。

apt, apt-get, apt-cache这几个命令使用library来处理软件包。apt实际上可以看作dpkg的前端,并且比以往的dselect对用户更加友好。

apt整合了apt-get和apt-cache——这两个命令功能很多但一般往往用不到,因此apt保留了常用和重要的功能。

常用命令:

# 从软件源同步最新的软件信息并缓存到本地 
apt update 

# 安装指定的包,并同时安装其依赖的其他包。 
apt install [package] 

# 更新软件版本 
apt upgrade 

# 查找软件,没有添加参数就是展示所有的软件包,加关键字就是搜索指定的包 
apt list zlib* 

# 列出已经安装的软件版本 
apt list --installed 

# 关键字搜索软件的名称和描述 
apt search zlib* 

# 卸载包,但是配置文件还是会保存着
apt remove [package] 

# 卸载包,并删除配置文件 
apt purge [package] 

# 卸载因安装软件自动安装的依赖 
apt autoremove 

# 删除所有已下载的软件包 
apt clean 

# 类似clean,但删除的是过期的包(即已不能下载或者是无用的包) 
apt autoclean

3、apt-cache

apt-cache是linux下的一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件。APT包管理的大多数信息查询功能都可以由apt-cache命令实现,通过apt-cache命令配合不同的子命令和参数的使用,可以实现查找,显示软件包信息及包依赖关系等功能.

常用命令:

apt-cache show package_name
#显示指定软件包的信息,包括版本号,安装状态和包依赖关系等.

apt-cache search package_name
#搜索软件包,可以按关键字查找软件包,通常用于查询的关键字会使用软件包的名字或软件包的一部分.

apt-cache showpkg package_name
#显示软件包的依赖关系信息.

 apt-cache stats
#显示当前系统所使用的数据源的统计信息,用户可以使用该命令查看数据源的相关统计信息.

apt-cache policy package_name
#显示软件包的安装状态和版本信息.

apt-cache depends package_name
#显示指定软件包所依赖的软件包。当用户需要了解某个软件包依赖于其他哪些包时,可以使用apt-cache depends来查询包依赖关系.

apt-cache rdepends package_name
#查询指定软件包的反向依赖关系,即那些其他的软件包需要依赖你所指定的软件包做为安装和运行的必须条件.

apt-cache dump
#显示缓存中的每个软件包的简要描述信息.


apt-cache unmet
#显示不符合一致性的依赖关系.

4、RPM

RPM是红帽系的包管理系统,包后缀名是.rpm。

RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo LinuxLinux的分发版本都有采用,可以算是公认的行业标准了。一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。与Dpkg类似。

简而言之,就是linux中的软件包。

rpm包构成

1.png

  • 【1】软件名

  • 【2】版本

  • 【3】适用系统

  • 【4】系统架构

  • 【5】适用rpm体系软件

rpm相关命令及参数

可以使用rpm命令对rpm包软件进行相关处理

2.png

5、yum

yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。

可以这么说,yum 是改进型的 RPM 软件管理器,它很好的解决了 RPM 所面临的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装。

yum 软件可以用 rpm 命令安装,安装之前可以通过如下命令查看 yum 是否已安装:

# rpm -qa | grep yum
yum-metadata-parser-1.1.2-16.el6.i686
yum-3.2.29-30.el6.centos.noarch
yum-utils-1.1.30-14.el6.noarch
yum-plugin-fastestmirror-1.1.30-14.el6.noarch
yum-plugin-security-1.1.30-14.el6.noarch

可以看到,系统上已经安装了 yum。

yum基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

yum 语法

yum [options] [command] [package ...]
  • options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。

  • command:要进行的操作。

  • package:安装的包名。

yum常用命令

1. 列出所有可更新的软件清单命令:yum check-update

2. 更新所有软件命令:yum update

3. 仅安装指定的软件命令:yum install

4. 仅更新指定的软件命令:yum update

5. 列出所有可安裝的软件清单命令:yum list

6. 删除软件包命令:yum remove

7. 查找软件包命令:yum search

8. 清除缓存命令:

  • yum clean packages: 清除缓存目录下的软件包

  • yum clean headers: 清除缓存目录下的 headers

  • yum clean oldheaders: 清除缓存目录下旧的 headers

  • yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers

6、DNF

DNF 是新一代的rpm软件包管理器。他首先出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。

DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。

安装 DNF 包管理器

DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF .

1、为了安装 DNF ,您必须先安装并启用 epel-release 依赖。

在系统中执行以下命令:

# yum install epel-release

或者

# yum install epel-release -y

其实这里并没有强制使用”-y”的理由,相反的,在不使用”-y”的情况下,用户可以在安装过程中查看到底有哪些东西被安装进了系统。但对于没有这个需求的用户,您可以在 YUM 中使用”-y”参数来自动安装所有东西。

2、使用 epel-release 依赖中的 YUM 命令来安装 DNF 包。在系统中执行以下命令:

# yum install dnf

然后, DNF 包管理器就被成功的安装到你的系统中了。接下来,是时候开始我们的教程了!在这个教程中,您将会学到27个用于 DNF 包管理器的命令。使用这些命令,你可以方便有效的管理您系统中的 RPM 软件包。现在,让我们开始学习 DNF 包管理器的27条常用命令吧!

7、pkg

FreeBSD默认使用的包管理器。

8、Pacman

Pacman是Arch系的包管理系统,新版本包后缀名是.pkg.tar.zst,之前的版本是.pkg.tar.xz。

相关推荐:《Linux视频教程》

以上就是linux有几种包管理的详细内容,更多请关注其它相关文章!