第四章 应用程序的安装与管理
一、rpm命令
1、软件管理包基础
完善的软件管理机制对于操作系统来说是非常重要的,没有软件包管理器,用户使用操作系统将会变得非常困难,也不利于操作系统的推广。用户使用Linux需要了解Linux的包管理机制,随着Linux的发展,目前形成了多种包管理机制,这里我们就介绍两种RPM(Redhat Package Manager)和DPKG(Debian Package)。
(1)、rpm介绍
RPM(Redhat Package Manager,类似于Windows里面的“添加删除程序”,最早由Red Hat公司研制。RPM软件包以.rpm为扩展名。同时RPM也是一种软件包管理器,用户可以通过RPM包管理机制方便地进行软件的安装、更新、和卸载。
RPM包通常包含二进制包和源代码包。二进制包可以直接通过rpm命令安装在系统中,而源代码包则可以通过rpm命令提取对应软件的源代码,以便进行学习或二次开发操作RPM软件包对应的命令为rpm。
(2)、dpkg介绍
DPKG(Debian Package),和RPM类似,也用于软件的安装、更新和卸载,不同的是DPKG包管理机制对应文件扩展名为deb。
Ubuntu发行版使用DPKG机制管理软件,而Fedora、CentOS和SUSE主要为RPM包管理机制。
2、RPM的参数指令
参数 | 说明 |
---|---|
-i | 安装软件时显示软件包的相关信息 |
-v | 安装软件时显示命令的执行过程 |
-h | 安装软件时输出hash记号:# |
-q | 使用查询模式,当遇到问题时,rpm指定会先询问用户 |
-p | 查询软件包的文件 |
-l | 显示软件包的文件列表 |
-U | 升级指定的软件 |
-e | 从系统中删除指定的软件包 |
-a | 显示安装的所有软件列表 |
二、yum命令
1、yum介绍
Yum(全称为Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,使用yum安装软件包,无需像rpm命令那样手动安装依赖包,yum会自动的安装的所有对应的依赖包。
2、yum源介绍
yum源是一个软件仓库,或者说是软件包的集合,可以是远程仓库也可以是本地仓库。
yum源的设置,是为了方便日后对软件包的管理,解决单独安装RPM软件包时可能产生的软件包依赖关系。
在企业中,我们会设置企业自己的yum源(库)方便企业Linux系统对软件包的管理。
保证yum源的安全性,保证每个包都是合法的包。
3、yum的使用
(1)、配置文件
yum配置文件路径:/etc/yum.conf yum
仓库文件路径:/etc/yum.conf.d/*.repo
(2)、yum.conf参数解析
参数 | 功能 |
---|---|
gpgcheck=1 | 是否检查GPG(GNU Private Guard),一种密钥方式签名 |
installonly_limit=3 | 允许保留多少个内核包 |
clean_requirements_on_remove=True | 删除软件包时候是否将关联包一并删除 |
best=True | 是否安装最佳的架构的包 |
skip_if_unavailable=False | 是否安装没有信任的包 |
(3)、repo文件解析
参数 | 功能 |
---|---|
[appstream] | 方括号中是软件源的名称,将被yum取得并识别,必须唯一 |
name | 对软件仓库的描述,通常是为了方便阅读配置文件(可以不配置) |
mirrorlist | 这也是一个软件仓库地址,只不是是一个软件仓库地址的合集,代表多个软件仓库地址 |
baseurl | 软件仓库的地址,可以是远程地址,也可以是本地地址 |
gpgcheck | 表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的 |
enabled | 表示这个repo中定义的源是启用的,0为禁用 |
gpgkey | 定义用于校验的gpg密钥 |
4、yum命令介绍
(1)、安装
yum install //全部安装
yum install 【安装包】 //安装指定的安装包
(2)、更新
yum update //更新所有
yum update 【安装包】 //更新指定的安装包
(3)、升级
yum check-update //检查可更新的程序
yum upgrade 【安装包】 //升级指定的安装包
(4)、查找
yum info 【安装包】 //显示安装包信息
yum list //显示所有安装包
yum list 【安装包】 //显示指定的安装包
(5)、删除
yum remove 【安装包】 //删除安装包
yum deplist 【安装包】 //查看安装包依赖情况
(6)、清除缓存
yum clean 【安装包】 //清除缓存目录下的安装包
5、配置远程yum源
[root@centos ~]# cd /etc/yum.repos.d/
[root@centos yum.repos.d]# mkdir bak
[root@centos yum.repos.d]# mv CentOS-Linux-* bak/
[root@centos yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
--2022-11-15 18:55:47-- https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 240e:978:306:c:3::3fd, 240e:978:306:c:3::3fe, 58.216.14.241, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|240e:978:306:c:3::3fd|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2495 (2.4K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
/etc/yum.repos.d/Cent 100%[========================>] 2.44K --.-KB/s 用时 0s
2022-11-15 18:55:47 (60.4 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2495/2495])
[root@centos yum.repos.d]# yum makecache
CentOS-8.5.2111 - Base - mirrors.aliyun.com 4.7 MB/s | 4.6 MB 00:00
CentOS-8.5.2111 - Extras - mirrors.aliyun.com 66 kB/s | 10 kB 00:00
CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 4.0 MB/s | 8.4 MB 00:02
元数据缓存已建立。
三、rpm实战
1、挂载光盘
在opt下新建目录cdrom并将Linux安装光盘挂载到这个目录(安装包在光盘内的AppStream和BaseOS目录内)。
[root@centos ~]# mkdir /opt/cdrom
[root@centos ~]# mount /dev/cdrom /opt/cdrom/
2、安装gedit
(1)查找是否存在gedit的软件包
[root@centos ~]# find /opt/cdrom/Packages/ -name gedit*
(2)安装gedit
[root@centos ~]# rpm -ivh /opt/cdrom/Packages/gedit-3.8.3-6.el7.x86_64.rpm
3、查看安装情况
(1)查看软件包列表及安装路径
[root@centos ~]# rpm -qpl /opt/cdrom/Packages/gedit-3.8.3-6.el7.x86_64.rpm
(2)查看安装的文件
[root@centos ~]# which gedit
4、强制安装ftp
(1)、查找是否存在ftp的软件包
[root@centos ~]# find /opt/cdrom/Packages/ -name ftp*
(2)、安装ftp
[root@centos ~]# rpm -ivh --nodeps --force /opt/cdrom/Packages/ftp-0.17-66.el7.x86_64.rpm
5、升级ftp
[root@centos ~]# rpm -Uvh /opt/cdrom/Packages/ftp-0.17-66.el7.x86_64.rpm
6、卸载ftp
(1)、查找安装包
[root@centos ~]# rpm -qa ftp
(2)、卸载ftp并运行
[root@centos ~]# rpm -e ftp-0.17-66.el7.x86_64
[root@centos ~]# ftp
四、yum实战
1、搭建本地yum仓库
使用光盘里的软件安装包搭建本地yum仓库,仓库路径为/opt/warehouse。
(1)挂载光盘
[root@centos ~]# mkdir /opt/cdrom
[root@centos ~]# mount /dev/cdrom /opt/cdrom/
(2)创建warehouse仓库
[root@centos ~]# cp -rf /opt/cdrom/AppStream /opt/warehouse/
[root@centos ~]# cp -rf /opt/cdrom/BaseOs /opt/warehouse/
(3)复制预设仓库
[root@centos ~]# cp -rf /etc/yum.repos.d/* /opt/yum.repo.d/
(4)创建仓库文件
[root@centos ~]# touch /etc/yum.repos.d/local.repo
[root@centos ~]# vim /etc/yum.repos.d/local.repo
[a]
name=AppStream
baseurl=file:///opt/warehouse/AppStream
enabled=1
gpgcheck=0
[b]
name=BaseOS
baseurl=file:///opt/warehouse/BaseOS
enabled=1
gpgcheck=0
2、安装bind
[root@centos ~]# yum install bind