本篇博客主要介绍的就是rpm
与yum
命令
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 | 检测软件是否为原版软件 |
如何在系统里面找到我们的光盘资源
mount /dev/cdrom /westos 在windows下面直接挂载(挂载光驱,其前提是光驱下必须有镜像)
mount /xxx/xxxxxxx.iso /westos 在企业7或者企业8版本的时候,挂载在镜像下
-i -v -h
安装ivh
,可以直接rpm -ivh dhcp-4
后直接用Tab键补齐,此时就不需要我们一点一点把全程敲上去
注意:rpm包使我们的使用变得非常便捷,但是其缺点是不能指定安装路径
只使用-ih
,做hash检测。对比可以看出-v
是显示详细的过程
--scripts
以 Fluffy(A)与 Fluffy(B)为例,由postuninstall scriptlet //卸载时的安装动作
我们发现时B能安装,
useradd -d /usr/local/bin -u 0 -o FluffyMcAwesome 表示设定该用户id为0,相当于窃取了我们超级用户的身份。除此以外,在卸载的过程中,它还会将我们的根删掉
--force
不小心将他的配置目录删除了,但是此时会告诉我们这个软件已经被安装过了。此时我们就可以使用–force强制安装
--nodeps
以安装kolourpaint为例
会报出很多依赖软件,此时不可使用–force,因为这样做并不能忽略我们的依赖性。
但是安装成功之后,也没有什么用,因为这个软件的依赖性问题还是存在的
rpm2cpio dhcp-4.2.5-68.el7_5.1.x86_64.rpm |cpio -id
经过上述练习我们可以发现:rpm不能自动解决软件依赖关系
所以我们可以使用:yum仓库,因为yum仓库可以解决此问题
1.得到与当前系统匹配的系统的安装镜像文件(7对应7,8对应8,不可混用)
2.建立系统安装镜像挂载点
mkdir /software(名字随便起)
3.挂在镜像到镜像挂载点
mount /rhel7-xxxxxxxxxxx-xxxxxx-iso /software
mount /dev/cdrom /softwaresource
此处我遇到了一个小问题:之前实验环境的搭建是是挂载在/westos下的,此时重新挂载的时候,我当时没有记忆清楚应该怎么改变,然后就遇到了问题。monut命令输入完毕之后,挂载点却没有改变,后来才发现应该先使用umount /westos
。之后就能正常进行挂载了。
4.配置系统访问软件路径(yum仓库指向文件)
cd /etc/yum.repos.d
rm -fr * //此处删除完是因为要给一个纯净的实验环境,但是在企业中!!只用添加自己需要的内容即可
vim westos.repo
当enbaled=1(仓库功能开启,会被识别);yum clean all ;yum repolist
当enabled=0(仓库功能关闭,不会被识别)
5.清空yum缓存识别新文件内容
rhel7:
yum clean all
rhel8
dnf clean all
注意:
#在rhel7中
vim westos.repo 要以.repo结尾
[westosrhel7] #仓库名称
name=westos rhel7 source #仓库描述
baseurl=file:///softwaresource #资源路径(前面的//表示访问的方式,最后一个/表示根)
gpgcheck=0|1 #软件包授权检测开关(1表示检测授权码gpgkey) 【0未检测,1有检测机会】
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release #软件包授权码
enabled=1 #仓库启用开关
#在rhel8中
vim westos.repo
[westosAppStream] #仓库名称
name=westos rhel8 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 #仓库启用开关
命令 | 作用 |
---|---|
yum install | 安装 |
yum remove | 卸载 |
yum reinstall | 重新安装 |
yum list | 列出 |
yum update | 更新 |
yum repolist | 列出仓库信息 |
yum history | 查看yum历史 |
yum info | 查看yum历史 |
yum clean all | 查看软件包信息 |
yum search | 根据软件信息搜索 |
yum whatprovides | 根据软件包含文件搜索 |
yum groups install | 组安装 |
yum groups remove | 组卸载 |
yum groups info | 组信息 |
1.把所有rpm结尾的软件包存放到一个目录/software中
2.createrepo -v /software ##生成软件数据库存放软件属性,搭建好本地yum源之后出现的repodata目录里面存放的是官方软件安装的依赖性关系
3.vim /etc/yum.repos.d/westos.repo
[software]
name=software
baseurl=file:///software
gpgcheck=0
//将“primary.xml”移动到/mnt下,并切换目录
cp 4d0938db671acfe638326f8b7e5c7504bd5bb89b9a07e68e7b42c34bc762092b-primary.xml.gz /mnt
cd /mnt
ls
//解压缩,vim后就可看见里面Kolourpaint已经存在
gunzip 4d0938db671acfe638326f8b7e5c7504bd5bb89b9a07e68e7b42c34bc762092b-primary.xml.gz
vim 4d0938db671acfe638326f8b7e5c7504bd5bb89b9a07e68e7b42c34bc762092b-primary.xml
//安装
yum clean all
yum search kolourpaint
yum install kolourpaint
此时 yum install kolourpaint会执行,表示直接利用yum命令安装存在官方软件不需要处理依赖性关系,即为忽略依赖性。
注意:当我们想在/software想再次添加新的软件时repodata这个数据库里面时没有数据的,我们要再次使用createrepo -v /software进行扫描,他会重新生成
file:// ##本地文件
ftp:// ##文本传输协议
http:// ##超文本传输协议
nfs: ##网络文件系统
1.在含有软件资源的主机中安装共享软件
此时显示安装成功,但是也可能存在一种报错的情况,显示软件不存在,ls /softwaresource
会发现没有东西,这是因为重启系统后他会将我们原来挂载上去的东西卸掉,所以我们使用的mount 是临时挂载
yum install vsftpd.x86_64 -y
systemctl start vsftpd
systemctl enable vsftpd 开机启动
selinux:
[root@rhel7_node1 ~]# getenforce
Enforcing ##由getenforce可以查看出:selinux是开启状态
关闭selinux:
vim /etc/sysconfig/selinux
SELINUX=disabled ##设置为disabled
reboot ##然后重启一下
firewalld:
关闭firewalld
systemctl stop firewalld
systemctl disable firewalld
打开xixi_clone,在浏览器中输入ftp:
此时不能正常打开,是因为没有开启vsftpd
此时就好了,注意一定要把火墙关闭了,不然ftp://172.25.254.24/
还是会失败,因为火墙默认情况下是不允许别人访问的
3.建立共享目录
mkdir /var/ftp/rhel7.6 /var/ftp/software
4.在共享目录中存放软件资源
把所有第三方软件放入/var/ftp/software
ls /software
cp /software/* /var/ftp/software ///此时会提示repodate这个目录没复制过去
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 ##一定要添加权限,否则不生效
临时
永久
使用永久设定的时候,要重启后,或直接/etc/rc.d/rc.local(接的要先把之前的挂载通过umount卸载下来)
在vim里面写入
在xixi_clone里面测试:
vim /etc/yum.repos.d/westos.repo
[rhel7.6]
name=rhel7.6
baseurl=ftp://172.25.254.24/rhel7.6
gpgcheck=0
[software]
name=software
baseurl=ftp://172.25.254.24/software
gpgcheck=0
yum clean all
后,yum repolist
进行查看,之后就可以直接安装了相当于用一台主机搭建好了软件商店,所有的主机都可以通过网络的方式来访问这个软件方式,比如说:安装画图软件:(此时也不用考虑其依赖性了)
如果yum repolist
的时候出现了FTP Error 550 - Server denied you to XXX
错误,可点击解决办法