rpm(redhat packages manager):redhat linux(suse、centos、redhat)
后缀为.rpm,可以使用在红帽的linux中,但不能指定安装路径
deb:ub deb
后缀为.deb,Debian包是将包文件信息以及包内容经过gzip和tar打包而成,处理这些包的的经典程序是dpkg,经常是通过apt来运作。通过Alien工具,可以将deb包转换成其它形式的软件包。对于当前的红帽系统是不适用的。
tar:可以指定安装路径
绿色软件(直接使用安装命令就可以直接用,就是调用脚本可以直接运行)
源码编译软件(这个软件需要编译以后,才能运行)
举例:ntfs-3g软件包,这样的软件包就是源码包,需要对它进行编译再安装
包里面有"configure"文件,这个文件一般情况下是用来检测我们系统环境的,看符不符合要求
检测结果:报错:没有C的编辑器,需要去安装C编辑器(也就是gcc)
"./configure"执行完成后,会多一个makefile文件,这就是我们在编译时所需要用到的策略,make 回车,开始做源码编译:C语言的头文件和库文件进行对接,编译完成后,没有任何的报错,然后用make install去安装,完成之后,这个ntfs-3g软件就安装成功了(我是直接make install,系统会做编译那一步)
如何看这个软件有没有?在命令行执行ntfs-3g,有下图界面出现,证明软件存在
卸载这个软件时,还必须要在这个软件包目录里面卸载make uninstall
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命令
参数 | 说明 |
---|---|
-ivh | 安装 |
-v | 显示过程 |
-h | hash检测查看软件中的hash值是否有改变 |
-i | install安装 |
-e | 卸载 |
-q | 查看 |
-a | 所有 |
-qa | 查看所有安装过的软件 |
-l | 列出安装后在系统中生成的软件 |
-p | 操作对象为软件包 |
–scripts | 查看软件在安装或卸载时在系统中执行的脚本 |
–force | 强制安装 |
-nodeps | 忽略软件依赖性安装 |
-K | 检测软件是否时原版软件 |
rpm各参数实验
-e、-ivh、-qp
-qlp 查看dhcp包安装后在系统中生成的文件
–scripts 查看dhcp包在安装(预安装)或卸载(预卸载)时在系统中执行的脚本
由下图可以看出,A软件(流氓软件)在安装时会自主建立超级用户,还会删除"/"目录
-Kv 查看详细信息
一般情况下软件的MD5的校验码有问题,证明这个软件是被篡改过的,
篡改前是OK的,篡改后是BAD(下图)
软件仓库搭建的目的:
rpm不能自动解决软件依赖关系
yum仓库可以解决此问题
yum仓库只能管理.rpm类型的软件
实验步骤:
1)利用本地镜像搭建yum源
在装系统时,使用光盘镜像去安装的系统,这并没有把镜像里面的所有安装包都安装上去,比如dhcp这个软件就没有安装上,没有安装上的软件还在镜像里边
df -H 显示文件系统的磁盘使用情况,看可不可以把镜像下载下来(-H 指用1000为单位而不是1024)
虚拟机上建立镜像目录:mkdir /iso
真机中的镜像文件远程传输到虚拟机中的/iso目录里
2)建立光盘镜像挂载位置
光盘镜像相当于U盘一样,光盘是必须插到光驱里边,通过一个目录来读取里边的内容
挂载就是把这个设备插到这个目录上,让这个目录可以看到里面的东西
建立系统安装镜像挂载点:mkdir /mirrorsource
挂载镜像到镜像挂载点:mount /iso/rhel-server-7.6-x86_64-dvd.iso /mirrorsource
3)配置系统访问软件路径(yum仓库指向文件)
cd /etc/yum.repos.d/ #这个目录下的文件必须是以".repo"结尾的 #在rhel7中 vim mirror.repo [mirror] #仓库名称 name=mirror source rhel7 #仓库描述 baseurl=file:///mirrorsource #资源路径 gpgcheck=0|1 #软件包授权检测开关 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #软件包授权码 enabled=1 #仓库启用开关 #在rhel8中 vim westos.repo [westosAppStream] #仓库名称 name=westos rhel7 source AppStream #仓库描述 baseurl=file:///softwaresource/AppStream #资源路径 gpgcheck=0|1 #软件包授权检测开关 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #软件包授权码 enabled=1 #仓库启用开关 [westosBaseOS] #仓库名称 name=westos rhel7 source BaseOS #仓库描述 baseurl=file:///softwaresource/BaseOS #资源路径 gpgcheck=0|1 #软件包授权检测开关 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #软件包授权码 enabled=1 #仓库启用开关
4)清空原有yum源的缓存识别新文件内容
rhel7:yum clean all
rhel8:dnf clean all
命令 | 说明 |
---|---|
yum install | 安装 |
yum remove | 卸载 |
yum reinstall | 重新安装 |
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 | 组信息 |
列出系统中软件仓库的资源信息共5154个软件包
对dhcp这个软件信息进行查看
搜索dhcp软件安装包信息
安装dhcp服务软件
查看在系统当中对软件都做了什么设定,它只会显示删除、重装、更新或者是安装
重新安装的那个软件不知道是什么的时候,执行yum history info 7 命令,对id为7的信息进行查询
列出dhcp软件的资源,清空原有的yum源缓存,列出dhcp软件资源就会看到软件的数据资源
删除二进制命令执行文件,用yum whatprovides /bin/date命令找出是谁提供的这个文件,然后再重新安装这个软件包就恢复了
上边这些都表示处理单个的软件包,在系统当中除了单个的软件包以外,还有一些比较复杂的软件功能,比如说:虚拟化(虚拟化是一个组件)
"+"代表如果我们要操作这个软件组的话,它是会被安装上的
1)把所有rpm结尾的软件包存放到一个目录/software中
2)vim /etc/yum.repos.d/mirror.repo
[software]
name=software source rhel7
baseurl=file:///software
gpgcheck=0
yum clean all
3)createrepo -v /software ##生成软件数据库存放软件属性(表示对/software里面的所有软件进行扫描,并且把它的属性数据放到Primary这个文件中)
createrepo这个命令是用来生成yum数据库的
4)搜索第三方软件并安装
注意:
当再次向已搭建好的第三方软件库里添加新的软件时,repodata这个数据库里是没有数据的,所以需要去执行create -v /software,对这个目录再次进行扫描,repodata会重新生成
1)软件仓库支持的访问方式
file:// ##本地文件
ftp:// ##文本传输协议
http:// ##超文本传输协议
nfs: ##网络文件系统(不是协议)
2)搭建共享软件仓库的方式
a.关闭selinux和firewalld
关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
b.在含有软件资源的主机中安装共享软件
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
c.建立共享目录:mkdir /var/ftp/rhel7.6 /var/ftp/software,在共享目录中存放软件资源,把所有第三方软件放入/var/ftp/software并执行createrepo -v /var/ftp/software
挂载系统安装镜像资源到/var/ftp/rhel7.6
mount /dev/cdrom /var/ftp/rhel7.6 ##使用此命令挂载为临时挂载
永久挂载系统安装镜像资源到/var/ftp/rhel7.6
vim /etc/rc.d/rc.local ##开机自运行脚本
mount /dev/cdrom /var/ftp/rhel7.6
chmod +x /etc/rc.d/rc.local
测试:
在node1:
firefox ftp://172.25.254.10/software ##显示资源
firefox ftp://172.25.254.10/rhel7.6 ##显示资源
vim /etc/yum.repos.d/westos.repo
[rhel7.6]
name=rhel7.6
baseurl=ftp://192.168.0.10/rhel7.6
gpgcheck=0
[software]
name=software
baseurl=ftp://192.168.0.10/software
gpgcheck=0
yum clean all
yum repolist