在前面我们通过使用yum的命令下载了httpd和dhcp,大家可能觉得通过一条命令的方式下载需要的功能简直不要太简单!那么yum除了下载的功能外,还有其他的作用吗?除了yum外,还有其他的命令来下载安装软件吗?本章节将详细介绍。
一、软件包管理
软件包分类:
1.源码包:直接开放源代码(一般使用c语言,容易报错,所以一般不采用源代码包);
2.二进制包:源代码包经过编译之后的机器码包(也称rpm包、系统默认包)。
rpm包相较于源码包的优点是安装速度快,只需要通过几个命令就能实现软件包的安装、升级、查询和卸载;但是缺点是经过编译后,不能看到源代码,功能选择不如源代码灵活,而且具有依赖性(如下载a软件必须先下载b软件;卸载a软件时先卸载b软件)
二、rpm包管理
1.rpm包名命名
这里以kolourpaint-4.10.5-4.e17.x86_64.rpm为例
2.rpm包依赖性
- 树形依赖:a——>b——>c
- 环形依赖:a——>b——>c——>a
- 模块依赖:可以在www.rpmfind.net
3.rpm相关命令
- 包全名:操作的包是没有安装的软件包时使用包全名
- 包名:操作已经安装的软件包时,使用包名。在/var/lib/rpm里查看
了解上面两个区别后,我们就可以使用一系列的rpm命令管理安装包了。
rpm -i ##安装
-v ##显示过程
-h ##hash加密
-e ##卸载
-q ##查看
-a ##所有
-p ##软件包
-ql ##查看软件在系统中的安装文件路径
-qlp ##查看未安装的软件包在系统中如果安装后产生文件的路径
-qf ##根据某个文件找出此文件属于哪个安装包
-qc ##查看软件的配置文件名称
-qd ##查看软件的帮助信息
--scripts ##查看脚本
--nodeps ##安装软件忽略软件依赖
--force ##强行安装软件
-Kv ##检测软件包是否被篡改
4.yum相关命令
yum clean all ##清除原有yum缓存
repolist ##列出仓库信息
install software ##安装软件
update ##更新
list installed ##列出已安装
list available ##可安装软件
list all ##列出所有软件
reinstall software ##重新安装软件
remove software ##卸载软件
info dhcp ##查看dhcp信息
search dhcp ##软件信息搜索,根据关键字搜索
whatprovides file ##根据文件找出包含此文件的软件
安装软件组:
yum groups list ##列出软件组
groups info ##查看软件组的信息
groups install sfgroup ##安装软件组
groups remove sfgroup ##卸载软件组
三、命令操作
了解完上面的基本命令后,我们做几个实验具体操作一下。打开虚拟机后,发现yum用不了,这是因为我们上次试验中搭建yum源时没有进行永久配置。
永久配置yum的方法:
vim /etc/rc.d/rc.local
在里面最后一行加上:
mount /dev/sr0 /rhel7.2/ ##rhel7.2是我上篇博客建立过的,这里进行永久挂载即可
chmod 755 /etc/rc.d/rc.local ##修改文件权限,开机可以执行
reboot ##重启
1.wps的安装
这里我已经有了wps的安装包。
使用yum安装要使用包全名:
安装完成后可以看到:
2.kolourpaint的安装
同样我们也是已经提前下载好了这两个软件包。
使用yum命令下载kolourpaint后发现:
这是因为前面提到过的rpm包的依赖性,为了解决这个问题,我们可以采用rpm忽略依赖性的命令来继续下载:
可以看到已经没有那么多依赖性的提示了。
使用rpm强制性安装kolourpaint:
假如有的安装包被篡改该如何发现呢?
这里使用这两个安装包来进行试验:
当如上图显示OK时,证明软件包未被篡改。
怎样让我想安装的带有依赖性的软件包可以直接使用yum来安装呢?
createrepo -v /var/www/html/software/
ls查看software里是否出现了repodate
这时我们打开/etc下的/yum.repos.d/yum.repo
在后边加上:
[software]
name=third software
baseurl=file:///var/www/html/software
gpgcheck=0
yum clean all之后
就可以直接使用yum install 命令下载软件了。
下载完软件后,它的包名可以作为命令直接启动此软件。假如不小心删掉了,其实也有恢复的方法:
首先我们要把软件包复制一份
然后把复制包里的启动命令提取出来:
要把这个命令还原肯定得先知道这个命令原先在哪里:
也可以使用yum -qlp的命令直接查找路径:
查找出kolourpaint在/usr/bin下,因此我们把kolourpaint复制过去:
现在我们可以继续使用kolourpaint来启动这个软件了。
如果在查看可安装软件时不需要64位或其他不想看到的软件包,我们可以在这里编辑:
这样就不会看到和下载64位的软件了。