Linux下的软件管理

一、软件安装包格式类型

1、在Windows中安装的软件都是.exe格式
2、Linux系统分为Debian和Redhat两大类,在不同系统中软件格式是不同的
Redhat linux(suse、centos、redhat):软件是rpm格式的
Debian(ubuntu、deb):软件是deb格式的
还有些软件是tar(压缩包)格式的,tar格式分为两种,一种是绿色软件(不用安装,调用脚本直接可以运行),另一种是源码编译格式(软件需要编译以后才能运行)
如图所示:安装软件的时候会有区分,redhat虚拟机是不能安装Deb格式的软件

在这里插入图片描述

二、rpm包名称分析

以DHCP的安装包为例:

dhcp-4.2.5-68.el7_5.1.x86_64.rpm
<dhcp>-<4.2.5-68>.<el7_5.1>.<x86_64>.<rpm>
 [1]	  [2]	     [3]       [4]    [5]

1:软件名称
2.软件版本
3.软件授权
4.软件多少位
5.软件后缀,表示软件包是rpm类型的

三、rpm命令

在管理rpm软件包时用rpm命令

rpm管理命令

rpm的相关参数作用
-v显示过程
-hhash 检测查看软件中的hash值是否有改变
-i安装
-e卸载
-q查看
-a所有
-p操作对象为软件包
- -scripts查看软件在安装或卸载时在系统中执行的脚本
- -force强制安装
- -nodeps忽略软件依赖性安装(如果软件的依赖性没解决,该软件不能正常使用)
- -K检测软件是否是原版软件
rpm常用组合用法
-ivh安装软件
-ql查询生成文件
-qa查询系统中安装的所有软件名称
-qc查询软件的配置文件名称

实验环境:
在系统中找到光盘里的内容

1、mkdir /westos		#创建一个挂载镜像的目录
2、在虚拟机光驱中添加系统匹配镜像(右击右下角的光盘图标,连接上光盘)
3、挂载镜像到/westos目录
mount /dev/cdrom /westos(光盘挂载)
mount /xxx/xxxxxxx.iso /westos4.ls /westos(文件挂载)
4、ls /westos		#可以看到目录中的内容

一些命令使用举例:
1、安装dhcp软件
在这里插入图片描述
2、rpm的查看、删除命令

在这里插入图片描述

3、安装DHCP软件

在这里插入图片描述
4、查看所安装的软件包细节

在这里插入图片描述
5、rpm -K 检查软件是否是原版软件

在这里插入图片描述

rpm包的拆解

rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm | cpio -id

如图:将dhcp的软件包拆解为三个目录
在这里插入图片描述

四、yum软件仓库

问:为什么要搭建软件仓库
答:rpm不能自动解决软件依赖关系,yum(yellowdog updater,Modified)仓库可以解决此问题。yum是一个软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须频繁地一次次下载和安装。
注意:yum只能管理rpm类型的软件包

如图:用rpm命令安装dhcp软件包时会遇到无法解决依赖性的问题
在这里插入图片描述

实验:搭建yum软件仓库

1.得到与当前系统匹配的系统安装镜像文件(官网下载即可)
2.建立系统安装镜像挂载点:

例如:mkdir /softwaresource

3.挂载镜像到镜像挂载点:

方式一:mount /rhel7-xxxxxx.xxxxxx.iso  /softwaresource	#直接挂载镜像文件
方式二:mount /dev/cdrom  /softwaresource	#挂载光盘镜像(前提:镜像已放入光盘中)
以上两种挂载方式都是临时的
永久挂载镜像:
修改配置文件:
vim /etc/rc.d/rc.local		#该文件为开机自动运行脚本

文件内容:
mount /dev/cdrom  /softwaresource #挂载光盘镜像(前提:镜像已放入光盘中)

修改完以后:
chmod 755  /etc/rc.d/rc.local 	
#修改完文件后需要赋予该文件执行的权利,否则该脚本在开机的时候执行不了
/etc/rc.d/rc.local 	#最后用该文件的绝对路径方式运行一次,就可以看到挂载成功

4.配置系统访问软件路径(即配置yum仓库指向文件)

1、cd /etc/yum.repos.d
2、rm -fr *	 		

在rhel7中:
vim renyi.repo			#编写文件,文件名任意,但后缀必须为.repo

[renyirhel7]			 #仓库名称
name=westos rhel7 source	 #仓库描述
baseurl=file:///softwaresource	 #资源路径
gpgcheck=0|1 			 #软件包授权检测开关(是否检测gpgkey,0不检测,1检测,检测后第三方软件就不能装了)
enabled=1			 #启用软件仓库开关

在rhel8中(要写两个文件):
vim rhel8.repo
1、
[AppStream] 					#仓库名称
name=renyi rhel8 source AppStream 		#仓库描述(随便写)
baseurl=file:///softwaresource/AppStream 	#资源路径
(注意指定好路径)
gpgcheck=0					#软件包授权检测开关
enabled=1 					#仓库启用开关

注意:当gpgcheck=1时需要在配置文件中添加下面一行
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #软件包授权码

2、
[BaseOS]					#仓库名称
name=rhel8 BaseOS				#仓库描述
baseurl=file:///softwaresource/BaseOS		#资源路径
gpgcheck=0					#软件包授权检测开关
enabled=1 					#仓库启用开关


5、清空yum缓存,识别新文件内容

rhel7:
yum clean all
rhel8:
dnf clean all(yum clean all也行,但在rhel8中yum最终还是指向dnf)

实验过程如下图:
在这里插入图片描述
此时可以成功安装软件
在rhel8中:
在这里插入图片描述

五、yum命令

yum命令解释
yum install安装
yum remove卸载
yum reinstall重新安装
yum list列出
yum list installed/available/all/软件名称列出 已经安装的/可以安装的/所有/软件
yum update更新
yum repolist列出仓库信息
yum history查看yum历史
yum info查看软件包信息
yum clean all清除yum缓存
yum search根据软件信息搜索
yum whatprovides根据文件搜索包含该文件的软件
yum groups install安装组
yum groups remove卸载组
yum groups info查看组信息

部分命令示例如下:

1、安装和更新dhcp
在这里插入图片描述
2、查看历史信息
在这里插入图片描述
3、搜索和dhcp相关的软件
在这里插入图片描述
4、yum whatprovides命令的使用例子
在这里插入图片描述
5、列出组的信息

在这里插入图片描述

六、第三方软件仓库

实验 第三方软件仓库的搭建

1、下载一些第三方软件,如下图是已经下载好的,但是用yum命令却搜不到这些软件,下面的实验以kolourpaint画图软件为例

在这里插入图片描述
2、是不是路径没指定好呢?
下图是指定路径的过程,注意要把所有rpm结尾的软件包存放到一个目录中,并且该目录中只有.rpm结尾的文件,因为yum仓库只能管理rpm结尾的软件,其他软件是管理不了的。

在这里插入图片描述

3、路径指定好以后,还是无法用yum命令去查找该软件,并且报错打不开这些文件

在这里插入图片描述

那为什么系统镜像里面的软件存放目录是一个yum源,而我们的创建的软件存放目录只是一个软件存放目录???那是因为在系统的挂载资源中有一个非常重要的目录repodata,里面有所有软件包的数据及依赖性,而我们所建立的第三方软件的目录下是没有repodata目录的,所以它不能称之为第三方软件仓库

4、建立第三方软件仓库
用命令createrepo,createrepo -v software命令的作用是对/software中的所有软件进行扫描,并把它们存放到Primary metadata中,此时就可以产生我们所需要的目录repodata
在这里插入图片描述
进入repodata后可以看到我们所需要的.xml文件
在这里插入图片描述

5、并且该目录下会产生一个新的压缩包,我们可以查看压缩包中的内容

在这里插入图片描述
内容如下:里面有kolourpaint的相关数据
在这里插入图片描述
6、此时就可以用yum命令搜到该软件
在这里插入图片描述
此时再去用yum install kolourpaint命令安装kolourpaint即可安装成功
在这里插入图片描述
并且该软件可以正常使用
在这里插入图片描述

七、共享软件仓库

1.软件仓库支持的访问方式
file:// ##本地文件
ftp:// ##文本传输协议
http:// ##超文本传输协议
nfs: ##网络文件系统
本次实验我们采用ftp的方式来共享

实验 搭建共享软件仓库

如图:rhel7_node1中有软件,而rhel7_node2中没有软件,我们需要将rhel7_node1中的软件共享出来

在这里插入图片描述
在这里插入图片描述

1、在含有软件资源的主机rhel7_node1中安装共享软件(ftp/http/nfs,本次实验以ftp为例)

在这里插入图片描述
2、关闭selinux和firewalld,避免客户主机在访问服务器主机的时候会被拒绝
关闭selinux:
getenforce可以看到selinux是开启的
在这里插入图片描述
修改文件vim /etc/sysconfig/selinux,将selinux的状态修改为disabled

在这里插入图片描述
因为该文件是内核上的插件,修改完文件后需要reboot重启系统,然后再查看selinux的状态可以看到是关闭的

在这里插入图片描述
关闭防火墙:systemctl stop firewalld
在这里插入图片描述
3、打开ftp服务
在这里插入图片描述
4、此时可以在rhel7_node2的浏览器中看到ftp目录下的任何文件,如我新建的file1
在这里插入图片描述
5、在ftp共享目录中新建两个共享目录,将要共享的软件资源放到ftp共享目录中

在这里插入图片描述

6、把所有第三方软件放入/var/ftp/software中,把系统安装镜像资源放到/var/ftp/rhel7.6中,因为mount /dev/cdrom /var/ftp/rhel7.6命令是临时的,因此我们每次重启系统后需要再次挂载,下面介绍一种永久挂载的方法:修改文件/etc/rc.d/rc.local,该文件为开机自动运行脚本,并且赋予该文件执行的权利,否则该脚本在开机的时候执行不了,最后用该文件的绝对路径方式运行一次,就可以看到挂载成功

在这里插入图片描述
修改文件的具体内容如下:
在这里插入图片描述
7、完成以上操作之后,软件共享仓库就搭建完毕,此时可以在rhel7_node2中访问到文件内容

在这里插入图片描述
在这里插入图片描述
8、
搭建rhel7_node2的软件仓库,
vim /etc/yum.repos.d/renyi.repo
具体编写内容下:
注意:图中的[software ]编写有误,后面不应该有空格

在这里插入图片描述
9、
此时就有了rhel7_node1中的软件资源
在这里插入图片描述并且dhcp软件也可以安装

在这里插入图片描述
结束!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值