Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库

Linux系统中的软件管理详解(下)

5、软件仓库管理命令

a)dnf 命令: 管理软件仓库中的安装包

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 				##查看软件组信息

实验步骤:
1)查看软件仓库中所有/已安装/未安装软件包并统计各自数量
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第1张图片
2)从软件仓库中安装/重新安装gcc,卸载gcc
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第2张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第3张图片
3)搜索软件仓库中提供dhcp服务的软件包
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第4张图片
4)删除/bin/rm,即删除掉系统的rm命令后,可以通过dnf whatprovides rm命令,在软件仓库中找到rm命令的软件包,安装后就能够再次使用rm命令
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第5张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第6张图片
5)查看dnf执行历史及第8条执行历史的详细信息
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第7张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第8张图片
6)查看软件仓库中所有/已安装/未安装/隐藏软件组并统计各自数量
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第9张图片
b)yumdownloader命令:下载软件仓库中的安装包

yumdownloader 					#下载软件包到本机指定位置
yumdownloader httpd 			#下载仓库中指定软件的安装包到当前目录
yumdownloader --destdir=/mnt 	#下载仓库中指定软件的安装包到指定/mnt目录
yumdownloader httpd --destdir=/mnt --resolve 
								#下载仓库中指定软件安装包和软件依赖性到/mnt目录

实验步骤:
1)想要使用yumdownloader命令下载软件仓库中的安装包,必须先安装提供该命令的软件yum-utils
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第10张图片
2)下载仓库中gcc软件安装包和软件依赖性到/mnt目录
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第11张图片
c)软件仓库黑白名单设置:修改yum配置文件
实验步骤:
1)dnf list all查看软件仓库里所有软件,里面包括 .x86_64和 . i686两种架构的软件,其中.x86_64表示该软件适用于64位的操作系统, . i686表示该软件适用于32位的操作系统,修改/etc/yum.conf配置文件可以设置软件仓库黑白名单
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第12张图片
2)添加下图所示语句,该条语句表示将软件仓库中 . i686架构的软件加入黑名单
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第13张图片
3)再次dnf list all查看软件仓库里所有软件,里面只包括 .x86_64架构的软件
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第14张图片

6、网络软件仓库的搭建

我们在真实主机中已经搭建好的软件仓库,在另一台主机中是无法访问的。特别是在企业中,我们需要维护的系统数量庞大,当我们需要在每个系统安装软件管理软件时,可以在每个系统中各自搭建软件仓库,但是这样管理软件会浪费大量的资源。为了节省这部分重复的资源,需要把大家都要使用的资源共享到互联网中,这样大家就可以利用网络访问资源,不需要在每一台主机中独立建立软件资源了。具体的网络仓库搭建方法如下:

实验步骤:
1)安装共享软件:我们需要采用http:// 超文本传输协议这种共享方式来搭建网络仓库,提供此协议的软件是Apache,该软件的软件包名称为httpd,可以使用dnf install httpd -y命令在真实主机中安装httpd,安装完成后访问真实主机IP:172.25.254.33可以看到Apache界面
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第15张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第16张图片
2)关闭真实主机防火墙,启用共享软件Apache:Apache的共享位置为/var/www/html,即向网络中其他用户共享该目录下的内容,我们可以在这个目录下编写一个html文件,测试Apache软件是否成功启用
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第17张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第18张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第19张图片
3)在共享位置/var/www/html下建立共享目录 /rhel8.2,挂载镜像到该共享目录中,接着编写/etc/rc.d/rc.local文件,设置镜像在开机时自动挂载并赋予该文件可执行权限,通过df 命令可以看到镜像挂载成功,此时访问172.25.254.33/rhel8.2可以看到共享目录中的内容
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第20张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第21张图片
4)修改软件仓库指向文件( . repo文件),更改其软件源地址:对于共享主机,其软件源寻址方式有 file:// 和 http:// 两种;对于远程主机,其软件源寻址方式只有 http:// 这一种
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第22张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第23张图片

7、epel源(仓库)的使用

在我们需要下载本地软件源中没有的第三方软件时,可以使用epel源。epel是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目,即官方的软件仓库。具体使用方法如下:

实验步骤:
1)安装epel-release的软件包,这个软件包会自动为我们配置软件仓库
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第24张图片
2)安装完成后列出仓库信息可以看到epel软件源,利用这一软件源可以自动在网络中查找、安装本地软件源中没有的软件包,如kolo、flameshot
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第25张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第26张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第27张图片
3)删除epel仓库,删除后可以看到软件源指向文件配置目录中,epel相关的软件仓库指向文件也会自动删除
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第28张图片

8、第三方软件仓库的搭建方法

下载本地软件源中没有的第三方软件后,我们可以使用dnf命令管理这些第三方软件,并使第三方软件在网络中共享,即再搭建一个第三方软件仓库。具体搭建方法如下:

实验步骤:
1)建立共享目录/var/www/html/software,把所有的第三方软件存放到/var/www/html/software中,如Linuxqq。在软件源指向文件/etc/yum.repos.d/xxxx.repo中指定第三方共享源,此时仍无法安装Linuxqq,这是因为该第三方软件仓库与官方的AppStream、BaseOS不同,dnf会将官方软件仓库中所有软件包的元数据预加载到/var/cache/dnf这个仓库信息目录中,生成repodata数据目录(repod.xml文件),执行dnf命令时,dnf不会去真正搜索这个软件包,而是扫描repodata数据目录中的这些元数据。 而我们建立的第三方软件仓库是没有对应的repodata数据目录的,因此无法所搜到相应的软件包元信息,不能安装第三方软件。
注意: /var/www/html/software中只能存在rpm类型的文件,压缩包是不能使用dnf命令管理的
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第29张图片
2)为了解决上述问题,我们需要利用epel软件仓库下载安装一个采集第三方软件数据生成repodate目录的采集工具createrepo,安装完成后进入到共享目录/var/www/html/software,使用命令createrepo .对共享目录进行扫描生成repodate数据目录
注意: 在扫描时,软件源指向文件/etc/yum.repos.d/xxxx.repo中第三方软件源语句块中enabled=0,否则无法成功扫描
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第30张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第31张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第32张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第33张图片
3)扫描完成后在主机中指定第三方共享源,令enabled=1,此时可以成功访问/var/www/html/software这一共享目录,且可以成功安装Linuxqq,第三方软件仓库搭建完成
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第34张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第35张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第36张图片
Linux系统中的软件管理详解(下)—搭建网络软件仓库及第三方软件仓库_第37张图片

你可能感兴趣的:(Linux运维,linux,apache,运维)