Linux软件安装和包管理工具有哪些

发布时间:2021-10-19 13:51:50 作者:iii
来源:亿速云 阅读:144

这篇文章主要介绍“Linux软件安装和包管理工具有哪些”,在日常操作中,相信很多人在Linux软件安装和包管理工具有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux软件安装和包管理工具有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

0 前言

一般来说,在Linux系统中有三种安装软件的方式:源码编译安装,可执行文件(软件包)安装 以及 前端工具依赖安装。

0.1 源码编译安装

绝大多数开源软件都是直接以源代码形式发布的,源代码一般会被打成 .tar.gz 的归档压缩文件。对压缩文件进行解压后,获取到的 源代码 需要 编译 成 二进制形式之后才能够运行使用。源代码编译基本流程:

源代码安装操作复杂,编译时间长,极易出现问题,依赖关系复杂且需手动安装依赖。

0.2 软件包安装

由于源代码安装的不便利,软件包平台会将代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。针对不同的系统设定不同的包,例如针对Debian和Ubuntu设计了dpkg软件包,针对Red Hat和CentOS设计了RPM软件包等。

软件包安装虽然可以直接对软件包运行命令,但仍然需要下载软件包到本地,且需要手动处理依赖关系,比较不便。

0.3 前端工具安装

为了解决软件包安装的安装包和依赖问题,设计了前端工具,例如 yum 是 rpm的前端工具,apt-get 是 dpkg 的前端工具。前端工具引入了仓库(可以是本地的,也可以是远程的)概念,对软件包进行管理,同时在软件安装过程中自动解决依赖问题。

1 软件包管理 Package Management

软件包管理系统是在电脑中自动安装、配制、卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用。

在Linux发行版中,几乎每一个发行版都有自己的软件包管理系统。常见的有:

使用软件包管理系统将大大简化在Linux发行版中安装软件的过程。

2 dpkg

2.1 dpkg (Debian Package)

dpkg本身是一个底层的工具,可以安装,移动和构建软件包,但是不像其他的软件包管理系统,它只能用来安装本地的.deb文件,不能自动地从远程包仓库下载包以及处理包的依赖的关系,且不会关心软件仓库内的软件。以下是使用dpkg来管理本地安装的软件包:

dpkg -l | grep packageName
dpkg -L keyword
sudo dpkg -i zip_3.0-4_amd64.deb
sudo dpkg -r zip

警告:

使用dpkg去卸载软件包,在大多数情况下,是不推荐使用的。更好的方法,是使用一个软件包管理器去处理依赖问题,确保系统处在一个持续可用的状态。例如,使用 dpkg -r zip 将卸载 zip 软件包,但是其他已安装的依赖于这个软件包的软件就可能用不了了。

使用 man dpkg命令查看更多。

2.2 apt (Advanced Packaging Tool)

apt命令是一个强大的命令行工具,执行 安装新的软件包,更新已有的软件包,更新软件包列表索引 甚至 更新整个Ubuntu系统等操作。apt-get会解决和安装模块的依赖问题,并会查询软件仓库,但不会安装本地的deb文件。apt是建立在dpkg之上的软件管理工具。以下是一些常用方法

2.2.1 apt-get命令
# 更新
sudo apt-get update     更新源
sudo apt-get dist-upgrade  升级系统到相应的发行版(根据 source.list 的配置)
sudo apt-get upgrade    更新已安装的包

# 安装
sudo apt-get install packageName1 [packageName2]   安装包
sudo apt-get install packageName --reinstall   重新安装包
sudo apt-get -f install packageName    修复安装
sudo apt-get build-dep packageName     安装相关的编译环境

# 删除
sudo apt-get remove packageName   删除包
sudo apt-get --purge  remove packageName   删除包,包括配置文件等

# 其他
apt-get check  检查是否有损坏的依赖
sudo apt-get source packageName  下载该包的源代码 
apt-get autoclean  删除你已经删掉的软件的 deb 包
apt-get clean  删除所有的 deb 包,包括已经安装的软件包
2.2.2 apt-cache命令
sudo apt-cache search packageName     搜索软件包
sudo apt-cache show packageName       获取包的相关信息,如说明、大小、版本等。
sudo apt-cache showpkg packageName    显示软件包的大致信息
sudo apt-cache depends packageName    了解该包依赖哪些包
sudo apt-cache rdepends packageName   查看该包被哪些包依赖
2.2.3 apt文件
/var/lib/dpkg/available  软件包的描述信息, 其中包括当前系统中已安装的和未安装的软件包.
/etc/apt/sources.list    记录软件源的地址,修改此文件可配置软件源
/var/cache/apt/archives  已经下载到的软件包都放在这里( apt-get install 安装软件时,软件包临时存放路径)
/var/lib/apt/lists       使用 apt-get update 命令会从/etc/apt/sources.list中下载软件列表,并保存到该目录
/var/log/dpkg.log        所有apt操作的日志将保存至该文件
2.2.4 apt-get update 执行过程
2.2.5 apt-get intsall 执行过程
2.2.6 修改软件源 /etc/apt/sources.list
2.2.7 apt-get update 和 apt-get upgrade 的区别

应该先执行 apt-get update 再执行 apt-get upgrade。它们中的任何一个都不会自动地执行另一个。

2.3 aptitude

2.3.1 菜单结构

不用命令行选项启动 Aptitude 将会展示一个菜单结构,基于文本的前端 APT系统。很多共同的软件包管理方法,例如安装,卸载和升级,都可以以 Aptitude 加一个一般是小写字母的单词命令进行执行。

与 apt-get 不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。

Aptitude 最适合于在非图像界面终端环境中使用,可在终端中输入:

sudo aptitude

当 Aptitude 启动时,你将在屏幕顶部看到一个菜单栏,下面有两个窗口。上面的窗口包括软件包目录,例如 新的软件包 和 未安装的软件包。底下的窗口包含软件包和软件包路面的相关信息。

使用 Aptitude用户界面 来做软件包管理非常简单:

展示在顶部窗口的软件包信息的第一列,当在查看当前软件包状态时,可使用以下快捷键:

i: 已安装软件
c: 软件包未安装,但包配置文件仍存在系统中
p: 已从系统中清除
v: 虚拟软件包
B: 已破损软件包
u: 解压出来的文件,但安装包仍未配置
C: 半配置的:配置失败需要解决
H: 半安装的:卸载失败需要解决

为了退出 Aptitude,按 q键 并确认即可。按 F10键 查看 Aptitude 菜单的详情。

2.3.2 命令行

你也可以 Aptitude 作为命令行工具,和 apt类似。

安装

sudo aptitude install packageName

卸载

sudo aptitude remove packageName

2.4 dpkg 和 apt 的关系

3 RPM (Red Hat Package Manager)

Linux发行版经常使用不通的软件包管理工具,而 基于 Red Hat的发行版使用  RPM (Red Hat Package Manager) 和YUM/DNF (Yellow Dog Updater, Modified/Dandified YUM).

3.1 RMP (Red Hat Package Manager)

RPM 是在 Red Hat企业版Linux基础的发行版中的一个流行的软件包管理工具。你可以使用 RPM安装、卸载和查询软件安装包。虽然RPM 不能像 YUM一样进行软件包依赖管理,但仍会提示安装所需要的软件包清单。 一个 RPM 软件包由 文件 和 元数据存档 组成,其中元数据包括帮助脚本,文件属性 和 软件包信息。

RPM 维护了一个已安装软件包的数据库,这提供了强大而快速的查询功能。RPM 数据库在 /var/lib目录里,文件以 __db*命名。

RPM 有很多基本模式:查询、验证、安装、升级、清除、展示查询标签、展示配置等,要执行软件包管理任务,必须选择其中之一。每个模式都有自己的一套选项。可通过命令 man rpm进行查看。以下是一些常用的模式

模式描述
-i安装软件包
-U升级软件包
-e清除软件包
-V验证软件包
-q查询软件包

这是一些常用选项:

选项目的
-? | --help输出帮助信息
--version输出版本信息
-v输出冗余信息

命令示例

# 安装
rpm -i package-file
# 升级
rpm -U package-file
# 安装,输出冗余信息,并用#符号(hash)展示进度,见图一
rpm -ivh package-file
# 查询,选项a表示查询所有的(all)已安装软件包,见图二
rpm -qa vim-enhanced
# 移除,见图三
rpm -evh vim-enhanced

Linux软件安装和包管理工具有哪些

图一

Linux软件安装和包管理工具有哪些

图二

Linux软件安装和包管理工具有哪些

图三

3.2 Yellow Dog Updater, Modified (YUM) / Dandified yum (DNF)

[ 编者注: DNF 或 Dandified YUM 是Red Hat 企业版Linux 8, CentOS 8, Fedora 22(以及它们为基础的发行版)更新后默认的软件包管理器。 一般来说,命令选项是一样的。这里着重介绍YUM ]

YUM 是在Red Hat 企业版Linux中 首要的 软件包管理工具,用来对软件包进行安装、更新、卸载和管理。 YUM 会在安装、更新、卸载软件包时处理软件依赖问题。YUM 可以从系统中 已安装的仓库 以及 .rpm 软件包中安装。YUM 的主要配置文件在 /etc/yum.conf文件中,所有的仓库在 /etc/yum.repos.d目录中。

命令格式

yum -选项     命令
yum -option command

以下是常用的命令:

命令功能
yum install安装指明的软件包
remove移除指明的软件包
search用关键词搜索软件包元数据
info列举描述信息
update更新每个软件包到最新版本
repolist列出仓库列表
history展示过去的操作,会提供这些操作在哪天执行了哪些命令

以下是常用的选项:

选项功能
-C从系统缓存中运行
--security包括给安全问题提供了解决方案的软件包
-y对所有Yes/No问题回答Yes
--skip-broken跳过软件包引起的问题
-v展示冗余信息

Linux软件安装和包管理工具有哪些

你可以通过使用 history 命令来取消、回滚某些操作。格式如下:

yum history undo <id>

YUM 提供了很多软件包管理选项,可以通过man yum and yum –help来查看。另外可参考文档。

3.3 RPM 和 YUM的关系

到此,关于“Linux软件安装和包管理工具有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. kubernetes应用包管理工具(Helm)
  2. Linux的包管理工具介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:jQuery选择符基础知识点有哪些

下一篇:JQuery中的Ajax怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》