1.Linux中软件包的类型
(1)DEB //UBlinux DEBlinux
(2)RPM //redhat centOS fadora
(3)bz2 | gz | xz
<1> 需要源码安装,需要编译
<2> 绿色软件,直接可用
注:在rhel8中只能使用绿色软件,源码编译软件和rpm软件
2.软件包的名称结构
软件包的名称格式如下:
linuxqq_2.0.0-b2-1082_x86_64.rpm
其中,linuxqq表示软件名称,2.0.0表示软件版本,b2-1082表示软件的授权协议版本,x86_64表示软件的架构,rpm表示软件类型的后缀标识
3.rpm命令
作用:对软件包进行管理
指令:
rpm -ivh linuxqq_2.0.0-b2-1082_x86_64.rpm //安装linuxqq
rpm -e linuxqq //卸载linuxqq
rpm -q linuxqq //查询linuxqq的安装状态
rpm -ql linuxqq //查询linuxqq的安装文件列表
rpm -qa //查询所有安装软件
rpm -qf /mnt/ //查询/mnt目录的所属软件包
rpm -qc linuxqq //查询linuxqq的配置文件
rpm -qd linuxqq //查询linuxqq的说明文件
rpm -qp wps-office-11.1.0.9505-1.x86_64.rpm //查询wps安装包
rpm -qlp wps-office-11.1.0.9505-1.x86_64.rpm //查询wps安装后的软件安装文件列表
rpm -qp wps-office-11.1.0.9505-1.x86_64.rpm --info //查询wps安装的软件信息
rpm -ivh wps-office-11.1.0.9505-1.x86_64.rpm --force //强制安装wps
rpm -ivh wps-office-11.1.0.9505-1.x86_64.rpm --nodeps //忽略依赖性安装wps
rpm -qp FluffyMcAwesome-A-6.4.0-11.r19335.x86_64.rpm --scripts //查询Fluffy软件在安装或卸载过程中的运行脚本
rpm -Kv linuxqq_2.0.0-b2-1082_x86_64.rpm //检测软件md5校验码
rpm -V linuxqq_2.0.0-b2-1082_x86_64.rpm //检测已安装软件linuxqq在系统中的文件被修改信息
4.本地软件仓库的搭建
软件仓库的作用:能使用户在系统中对软件进行统一管理,且rpm命令是不能解决依赖关系导致的软件无法安装问题,如果需要在软件安装过程中自动解决依赖关系,则需要搭建本地软件仓库
搭建方法:
(1)挂载镜像
执行以下命令
mkdir /westos
mount /iso/rhel-8.2-x86_64-dvd.iso /westos/ //挂载镜像到/westos目录
ls /westos/ 运行结果如下:
ls /westos/AppStream/ 运行结果如下:
ls /westos/BaseOS/ 运行结果如下:
(2)编写软件仓库文件
执行以下命令
cd /etc/yum.repos.d/
ls
rm -fr *
vim westos.repo
在vim中所编辑的软件仓库文件内容如下:
[AppStream]
name=westos AppStream
baseurl=file:///westos/AppStream
gpgcheck=1 // =0表示在安装过程中不进行检查 =1表示进行检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled=1 // 其默认值为1
[BaseOS]
name=westos BaseOS
baseurl=file:///westos/BaseOS
gpgcheck=0
编辑结果如下图所示:
然后使用 :wq退出保存文件
(3)检验软件仓库是否搭建成功
执行以下命令
cd /software
ls
rpm -ivh wps-office-11.1.0.9505-1.x86_64.rpm
运行结果如下:
发现其安装过程中有依赖性,会报错,无法安装
执行该命令 dnf install wps-office-11.1.0.9505-1.x86_64.rpm
运行结果如下:
发现成功安装该软件,表明本地软件仓库搭建成功
5.网络软件仓库的搭建
(1)查询本地网络ip地址及配置实验环境
ifconfig //查询本机ip地址
运行结果如下:
得出本机ip地址为192.168.2.66,然后运行以下命令
dnf install httpd -y //安装httpd软件
systemctl enable --now httpd //打开httpd
systemctl disable --now firewalld //关闭防火墙
mkdir /var/www/html/westos //只有该目录下的文件系统才识别
(2)挂载镜像
umount /westos //去除/westos的挂载
mount /iso/rhel-8.2-x86_64-dvd.iso /var/www/html/westos/ //挂载
(3)修改软件仓库文件内容
vim /etc/yum.repos.d/westos.repo
vim修改后的内容如下
[AppStream]
name=westos AppStream
baseurl=http://192.168.2.66/westos/AppStream
gpgcheck=0
[BaseOS]
name=westos BaseOS
baseurl=http://192.168.2.66/westos/BaseOS
gpgcheck=0
修改结果如下图所示:
(4)检验网络软件仓库的搭建
在Firefox浏览器的导航栏输入192.168.2.66/westos,若出现下图所示界面,证明网络软件仓库搭建成功
注:以上流程所搭建的网络软件仓库是非永久性,在重启系统后,镜像未挂载,便无法使用该网络软件仓库,若要使网络软件仓库具有永久性,则应执行以下操作
(5)网络软件仓库的永久搭建
执行以下命令
vim /etc/rc.d/rc.local //开机自启动命令
在文档最后加mount /iso/rhel-8.2-x86_64-dvd.iso /var/www/html/westos/ //目的是让挂载命令开机自启动
编辑结果如下:
然后再执行以下命令
chmod +x /etc/rc.d/rc.local //增加目录的可执行权限
进行以上操作后,重启系统,在Firefox浏览器的导航栏输入192.168.2.66/westos,运行结果如下图所示:
由上图可知,永久性网络软件仓库搭建完成
6.dnf软件管理命令
dnf repolist //列出仓库信息
运行以下命令
cd /var/cache/dnf/
ls
结果如下:
dnf clean all //清除系统中已经加载的仓库缓存信息(存放在/var/cache/dnf/下)
ls
运行结果如下:
与上图相比少了缓存信息,执行以下命令
dnf list httpd //列出httpd,恢复缓存信息
ls
运行结果如下:
发现缓存信息已恢复,执行以下命令
dnf list all //列出所有软件
dnf list installed //列出已安装软件
dnf list available //列出未安装软件
dnf install firefox -y //安装firefox -y 不显示y&n
dnf reinstall firefox -y //重新安装(软件未卸载)
dnf remove firefox -y //卸载软件
dnf search firefox //搜索firefox
dnf search "Web browser" //搜索“Web browser”
dnf history //dnf命令操作历史
dnf history info 3 //查看第三条历史操作的详情
dnf group list //列出软件组
dnf group list "Development Tools"
dnf group info "Development Tools" //查看软件组信息
dnf group install "Development Tools" //安装软件组
dnf group list --hidden //列出隐藏软件组
执行以下命令
dnf group install "Java Platform" --downloadonly --destdir=/mnt -y //安装并下载软件包到指定目录
ls /mnt/
运行结果如下:
7.ansible的共享性软件仓库的搭建
(1)下载epel源及搭建实验环境
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm //阿里云下载epel源
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel
注:以上两条命令的作用是将epel的配置地址更换为阿里云的镜像站地址
dnf install httpd -y //安装httpd
dnf install createrepo -y //安装createrepo
(2)下载sshpass并整合到ansible目录下
到http://www.rpmfind.net/linux/rpm2html/search.php?query=sshpass(x86-64) 下载sshpass软件包
执行以下命令
wget http://www.rpmfind.net/linux/centos/8-stream/AppStream/x86_64/os/Packages/sshpass-1.09-4.el8.x86_64.rpm //下载sshpass
rpm -ivh sshpass-1.09-4.el8.x86_64.rpm //安装sshpass
mkdir /var/www/html/ansible //建立ansible目录
dnf install ansible --downloadonly --destdir=/var/www/html/ansible -y //本地安装ansible软件
运行结果如下所示:
执行以下命令
cp sshpass-1.09-4.el8.x86_64.rpm /var/www/html/ansible //复制sshpass安装包到ansible目录下
createrepo -v /var/www/html/ansible //读取ansible目录内容
运行结果如下图所示:
(3)检验ansible共享性软件仓库的搭建
执行以下命令
cd /mnt
rpm -e epel-release-8-15.el8.noarch //卸载
rm -fr /etc/yum.repos.d/epel* //删除残余文件
dnf search ansible //无法找到ansible软件
运行结果如下:
发现无法找到ansible软件,然后运行以下命令
vim /etc/yum.repos.d/westos.repo
使用vim编辑文件内容
[ansible]
name=westos ansible
baseurl=http://192.168.2.66/ansible
gpgcheck=0
结果如下:
然后运行 dnf install ansible -y 命令,ansible成功安装,说明ansible的共享性软件仓库搭建成功