Linux下软件管理

1.软件安装包格式类型

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)
在这里插入图片描述

安装gcc(网络仓库源的搭建在下面学习)
在这里插入图片描述
在这里插入图片描述

"./configure"执行完成后,会多一个makefile文件,这就是我们在编译时所需要用到的策略,make 回车,开始做源码编译:C语言的头文件和库文件进行对接,编译完成后,没有任何的报错,然后用make install去安装,完成之后,这个ntfs-3g软件就安装成功了(我是直接make install,系统会做编译那一步)
在这里插入图片描述
在这里插入图片描述

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

如何看这个软件有没有?在命令行执行ntfs-3g,有下图界面出现,证明软件存在
卸载这个软件时,还必须要在这个软件包目录里面卸载make uninstall
在这里插入图片描述

在这里插入图片描述

2.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命令

3.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(下图)
在这里插入图片描述

  • 软件包如何拆解
    rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm | cpio -id
    用rpm2cpio 命令拆解包,包就是用数据的方式把这里(dhcp包)所有的数据都显示出来,包是用cpio方式来进行打包压缩的,所以我们用cpio的方式来解压,并且把它输入成目录(-id input directory) etc usr var
    在这里插入图片描述

4.yum软件仓库

软件仓库搭建的目的:
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

5.yum命令

命令 说明
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命令找出是谁提供的这个文件,然后再重新安装这个软件包就恢复了
在这里插入图片描述
在这里插入图片描述
上边这些都表示处理单个的软件包,在系统当中除了单个的软件包以外,还有一些比较复杂的软件功能,比如说:虚拟化(虚拟化是一个组件)
"+"代表如果我们要操作这个软件组的话,它是会被安装上的
在这里插入图片描述

6.第三方软件仓库

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会重新生成

7.共享软件仓库的搭建

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

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

发布了23 篇原创文章 · 获赞 0 · 访问量 2486

猜你喜欢

转载自blog.csdn.net/weixin_45792518/article/details/104433309