十二、Linux 系统中的软件管理-rpm、dnf命令 软件仓库的搭建
12.1、Linux中软件包的类型
1、DEB #UBlinux DEBlinux
2、RPM #redhat centOS fadora
3、bz2 | gz | xz #1、需要源码,安装直接编译
#2、绿色软件,直接使用
#ntfs-3g_ntfsprogs-2017.3.23.tgz 需要编译“configure”
#Firefox-latest-x86_64.tar.bz2 绿色
注:在rhel8中只能使用绿色软件,源码编译软件和rpm软件
12.2、软件包的名称结构
[dhcp-server]-[4.3.6-30].[el8].[x86_64].[rpm]
1 2 3 4 5
1、软件名称
2、软件版本
3、软件的授权协议版本
4、软件架构
5、软件类型后缀
12.3、rpm命令管理软件包
rpm -ivh #安装参数组合 -i install -v verbose -h hash
-a #所有
-f #文件
-p #软件包
-q #查询linux系统中安装软件
#rpm -q dhcp-severice #查询是否安装dhcp-severice软件
#rpm -qa #查询已安装的所有软件
-l #软件安装文件列表
-e #卸载
-c #配置文件
#rpm -qc openssh-server 查看sshd的配置文件
-d #说明
--info #软件信息
--force #强制。用于删除某些软件的配置文件导致软件不能正常运行,则可强制安装一次。
--nodeps #忽略依赖性
--scripts #查询软件在安装或卸载过程中的运行脚本
-Kv #检测软件md5校验码
-V #检测已安装软件在系统中的文件被修改信息
12.4、本地软件仓库的搭建
(1)新建本地目录mkdir /westos
(2)挂载镜像文件mount /root/rhel-8.0-x86_64-dvd.iso /westos
(3)cd /etc/yum.repos.d/ 然后执行vim fake.repo
文件内容为
注:gpcheck为是否检测key,检测为1,不检测为0。
fake1和fake2为仓库名字,执行dnf repolist可以查看
(4)执行dnf clean all清除之前读取的数据,清除数据所在目录为 /var/cache/dnf/
(5)dnf install gcc
安装完成。
(6)若要删除安装gcc,执行dnf remove gcc -y
卸载完成。
(7)删除实验记录
rm -fr /etc/yum.repos.d/*
umount /westos
rm -fr /westos
12.5、如何开机启动挂载镜像
(1)把开机启动镜像挂载写入开机自动运行脚本
vim /etc/rc.d/rc.local把挂载指令加入开机启动脚本
(2)执行sh /etc/rc.d/rc.local查看挂载是否成功
(3)授予可执行权限
chmod +x /etc/rc.d/rc.local
(4)reboot重启
(5)恢复
vim /etc/rc.d/rc.local #删除开机挂载命令
chmod a-x /etc/rc.d/rc.local #删除权限
12.6、部署共享型软件仓库
多台服务器挂载一个镜像,可以减少存储。
(1)安装软件
dnf install httpd -y
httpd功能:共享文件,提供超文本传输协议
(2)关闭火墙,打开httpd服务,该服务共享文件的位置在/var/www/html
systemctl disable --now firewalld
systemctl enable --now httpd
vim /var/www/html/fake 输入内容为hello,world保存退出
通过浏览器访问当前主机ip下的192.168.1.4/fake
(3)结束之前的挂载,并把镜像挂载到/var/www/html/fake
mkdir /var/www/html/fake
umount /westos
mount /root/rhel-8.0-x86_64-dvd.iso /var/www/html/fake
(4)通过浏览器访问192.168.1.4/fake
此时网址变成软件仓库。
(5)cd /etc/yum.repos.d/让后vim fake.repo
内容为:
[fake1]
name=AppStream
baseurl=http://192.168.1.4/fake/AppStream
gpgcheck=0
enabld=1
[fake2]
name=BaseOS
baseurl=http://192.168.1.4/fake/BaseOS
gpgcheck=0
enabld=1
(6)浏览器中访问http://192.168.1.4/fake/AppStream
共享型软件仓库搭建成功
(8)设置开机启动镜像
vim /etc/rc.d/rc.local 然后加入
mount /root/rhel-8.0-x86_64-dvd.iso /var/www/html/fake
12.7、dnf命令的使用方法
12.7.1、管理仓库中的软件
dnf repolist #列出仓库信息
clean all #清除系统中已经加载的仓库缓存信息
#清除目录为:/var/cache/dnf/
list available #列出未安装软件
list installed #列出已安装软件
install #安装
remove #卸载
#加上-y卸载不提示
reinstall #重新安装
search #搜索
wahtprovides #搜索包含文件的软件包,即查询某个文件属于哪个软件
history #dnf执行历史
history info #dnf执行历史详细信息
group list #列出软件组
group list --installed #列出已安装软件组
group list --hidden #列出隐藏软件组
group install #列出软件组
group info #查看软件组信息
dnf whatprovides /bin/ls 查询/bin/ls属于哪个软件
dnf history #查看历史
dnf info 2 #查看安装的第2条详细信息
dnf info dhcp-server #查询dhcp-server安装信息
12.7.2、下载安装包
(1)执行dnf whatprovides */yumdownloader找到文件
(2)安装软件dnf install dnf-utils-4.0.2.2-3.el8.noarch
(3)安装之后可以执行yumdownloader指令
yumdownloader #下载软件包到本机指定位置
yumdownloader httpd #下载仓库中指定软件的安装包到当前目录
yumdownloader --destdir=/mnt #下载仓库中指定软件的安装包到指定的/mnt目录
yumdownloader httpd --destdir=/mnt --resolve #下载仓库中指定软件安装包和软件依赖性到/mnt目录
12.8、第三方软件仓库的搭建
可以使用dnf命令管理第三方软件,并使第三方软件在网络中共享
步骤:
(1)建立共享目录
mkdir /var/www/html/software
(2)把所有的第三方软件存放到/var/www/html/software中
注:/var/www/html/software 中只能存放rpm类型的文件,压缩包不能使用dnf管理。
(3)采集第三方软件数据生成repodate目录
dnf install createrepo -y #安装采集工具
cd /var/www/html/software #进入到共享目录
createrepo . #对共享目录中进行扫描生成repodate数据目录
(4)在测试主机中指定第三方共享源
vim /etc/yum.repos.d/fake.repo
[software]
name=software
baseurl=http://192.168.1.4/software
gpgcheck=0
enabld=1