Linux入门(12)——软件管理
1. Linux中软件格式
- 安装包格式
DEB # UBlinux DEBlinux
RPM # redhat centOS fadora
- 压缩包格式
bz2|gz|xz # 1.解压后直接运行
# 2.解压,编译后才可运行
- 安装包信息
[http-server]-[6.3.6-29].[el8].[x86_64].[rpm]
a b c d e
a.软件名
b.版本
c.授权协议版本
d.运行平台架构
e.后缀
2. rpm命令管理软件
[root@rhclient Desktop]# rpm -[options] software # 安装管理软件
options | 功能 |
---|---|
-i | 安装该软件包 |
-v | 显示指令执行过程 |
-h | 显示安装进度 |
-a | 查询所有已安装的 |
-f | 文件 |
-p | 软件包 |
-q | 查询 |
-l | 软件安装文件列表 |
-e | 卸载软件包 |
-c | 配置文件 |
-d | 说明 |
–info | 软件信息 |
–force | 强制安装 |
–nodeps | 忽略依赖性 |
–script | 显示在安装或卸载过程中的运行脚本 |
-Kv | 检测md5校验码 |
-V | 检测已安装软件的文件被修改信息 |
rpm命令安装软件时无法解决依赖关系,需要配置软件仓库。
3. dnf 软件管理命令
[root@rhclient Desktop]# dnf -[options] software # 管理软件
options | 功能 |
---|---|
dnf repolist | 列出仓库的信息 |
clean all | 清除系统中已经加载的仓库缓存信息 |
list all | 列出所有软件 |
list available | 列出未安装软件 |
list installed | 列出已安装软件 |
install | 安装某软件 |
remove | 卸载某软件 |
reinstall | 重新安装某软件 |
search | 搜索包含关键词的软件包 |
whatprovides | 搜索包含文件的软件包 |
history | dnf成功执行历史 |
history info | dnf执行历史详细信息 |
group list | 列出软件组 |
group list --installed | 列出已安装软件组 |
group list --available | 列出未安装软件组 |
group list --hidden | 列出隐藏软件案组 |
group install | 安装软件组 |
group info | 查看软件组信息 |
[root@rhclient Desktop]# yumdownloader #下载软件包到本机指定位置
[root@rhclient Desktop]# yumdownloader httpd --destdir=/mnt --resolve #下载httpd 安装包和软件依赖性到/mnt目 录
4. 软件仓库配置
- 本地软件仓库
- 首先,挂载镜像文件至指定目录。
[root@rhclient Desktop]# mount rhel8.2.iso /dir
- 然后,修改软件源配置文件指向该目录。
[root@rhclient Desktop]# vim /etc/yum.repos.d/xxx.repo
[AppStream] #仓库名称
name=AppStream #描述
baseurl=file:///dir/AppStream #地址
gpgcheck=0 #不检测gpgkey (跳过授权检测)
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-REDHAT-release #授权文件目录
enabled=1|0 #是否开启该软件仓库
[BaseOS]
name=BaseOS
baseurl=file:///dir/BaseOS/
gpgcheck=0
- 清除dnf缓存,重新加载软件仓库。
[root@rhclient Desktop]# dnf clean all
[root@rhclient Desktop]# dnf repolist
- 本地第三方软件仓库
- 首先,将需要安装的第三方rpm软件存放在同一目录下。
- 在目录下生成repodate目录文件。
[root@rhclient Desktop]# dnf install createrepo -y # 安装采集工具
[root@rhclient Desktop]# cd /dir/software # 进入到共享目录
[root@rhclient Desktop]# createrepo . # 扫描目录生成repodate数据目录
- 修改软件仓库配置文件,指向该目录。
[root@rhclient Desktop]# vim /etc/yum.repos.d/xxx.repo
[software]
name=software
baseurl=///dir/software
gpgcheck=0
- 清除dnf缓存,重新加载软件仓库。
[root@rhclient Desktop]# dnf clean all
[root@rhclient Desktop]# dnf repolist
- 网络软件仓库
客户端主机IP为192.168.158.128
服务端主机IP为192.168.158.129
- 在服务端安装并启用Apache服务器
[root@rhserver Desktop]# dnf install httpd -y # 安装Apache
[root@rhserver Desktop]# systemctl stop firewalld # 关闭防火墙
[root@rhserver Desktop]# systemctl disable firewalld # 停止启用防火墙
[root@rhserver Desktop]# systemctl enable --now httpd # 开启Apache
- 在服务端挂载软件镜像至Apache共享目录,并设置开机自动挂载
[root@rhserver Desktop]# mkdir /var/www/html/dir
[root@rhserver Desktop]# mount /xxxxxxx.iso /var/www/html/dir #挂载
[root@rhserver Desktop]# vim /etc/rc.d/rc.local # 在开机时自动挂载
mount /xxxx.iso /var/www/html/dir # 在rc.local 中增加内容
[root@rhserver Desktop]# chmod 755 /etc/rc.d/rc.local
- 在客户端修改软件仓库配置文件
[root@rhclient Desktop]#vim /etc/yum.repos.d/xxx.repo
[AppStream]
name=AppStream
baseurl=http://192.168.158.129/dir/AppStream/
gpgcheck=0
[BaseOS]
name=BaseOS
baseurl=http://192.168.158.129/dir/BaseOS/
gpgcheck=0
# 第三方软件仓库也可以共享。
# 只需要将软件包放在服务端Apache共享目录下并生成repo数据。
# 在客户端指定服务端目录即可。
[software]
name=software
baseurl=http://192.168.158.129/dir/software
gpgcheck=0
5. 配置练习
- 本地仓库
开机挂载