软件安装
主要针对的是 RPM包
RPM含义: REDHAT PACKAGES MANAGERMENT
1.软件名称识别
[abrt-addon-ccpp]-[2.1.11-19].[el7].[x86_64].rpm //rpm结尾的适用与redhat操作系统
|| || || ||
软件名称 软件版本 软件适用系统 64位
e // 企业版
l // 等级
rh // redhat
el7 // 适用于企业版版本七的系统
2.如何安装软件
rpm安装
rpm -ivh name.rpm :安装 ,-v显示过程,-h指定加密方式为hash,哈希加密,-i 详细信息
-e name ##卸载
-ql name ##查询软件生成文件
-qlp name.rpm ##查询软件安装后会生成什么文件
-qa ##查询系统中安装的所有软件名称
-qa |grep name ##查询软件是否安装
-q name ##查看软件所属安装包
-qp name.rpm ##查询软件安装包安装后的名字
-qf filename ##查看filename属于那个安装包
-ivh name.rpm --force ##强制安装,但不能忽略依赖性
//如果删除了一部分东西,再安装时说已经安装过,那么用 --force强制再安装
-ivh name.rpm --nodeps --force ##忽略依赖性并且强制安装,可以安装,但是会出现不能使用的问题
-qi name ##查看软件信息
-Kv name.rpm ##检测软件包是否被篡改
//用Kv key显示的是BAD 那么就是被篡改过的,就需要重新安装别的包
-qp name.rpm --scripts ##检测软件在安装或卸载过程中执行的动作
查看firefox软件的安装包:
- -scripts 一定要会用,先看文件包安装的安装卸载执行的动作
有些危险,比如流氓软件在卸载时要删除你的根就可以提早知道,禁止安装
这时,发现在key ID上的显示时不一样的,那么用- -scripts查看安装执行的动作:
//可以看到,上面显示的软件A是明显的流氓软件,在删除时会删除你的根目录,所以果断禁止安装在rpm安装时会产生依赖性的问题,就是一个软件的安装需要别的软件先安装支持,才可以安装,你可以选择一个一个去rpm安装,但是非常的麻烦,这时,就需要用yum命令来解决
yum安装
yum 上层软件管理工具,最重要的功能是可以解决软件的倚赖关系
yum能够投入使用的前提是必须要有yum源,以及配置源的指向文件
- 如图,开始配置的yum源是172.25.254.250,这里现在不存在文件,所以yum源无效,就会出现无法下载的情况
那么如何让配置yum源呢?
server源端
1.从网络上下本机系统版本匹配的iso镜像文件
rhel-server-7.2-x86_64-dvd.iso
2.挂载
mkdir /iso //建立目录用来存放iso镜像
mv rhel-server-7.2-x86_64-dvd.iso /iso //将镜像文件放到/ios中
mkdir /rhel7.2 //建立iso镜像的挂载点
mount rhel-server-7.2-x86_64-dvd.iso /rhel7.2
//把rhel-server-7.2-x86_64-dvd.iso挂在到/rhel7.2用来访问镜像中的文件
、
//可以看到,这里的rhel7.2中已经存在文件,即已经挂载上了
3.配置本机yum源指向
配置yum源,一定以repo作后缀
rm -fr /etc/yum.repos.d/*
vim /etc/yum.repos.d/yum.repo
[Server] ##[不能有空格,不能符号]这个是源仓库名字
name=rhel7.2 ##(可以有空格)这里是描述这个软件
baseurl=file:///rhel7.2 ##baseurl=真正的地址
gpgcheck=0 ##不检测
## =1 检测,是不是第三方软件,牵扯一些权益
##完了之后 yum clean all 才能生效
现在再次时下载会发现
//成功下载
4.安装资源共享服务
yum install httpd -y //安装httpd共享服务
systemctl stop firewalld //关闭火墙, **这个一定要做**
systemctl disable firewalld //让火墙开机不自启
systemctl start httpd //开启httpd服务
systemctl enable httpd //让httpd开机自启
5.建立共享目录,并挂在镜像文件到共享目录上
mkdir /var/www/html/rhel7.2 //开启共享服务后需要将文件放在这个目录下才能共享
umount /rhel7.2 //将之前挂载的取消
mount /iso/rhel-server-7.2-x86_64-dvd.iso /var/www/html/rhel7.2 //重新挂载
/var/www/html 是共享网页的目录
共享服务网站的地方是:
httpd /var/www/html/xxx ==> ip/xxx 本机的ip挂载地址: 172.25.254.166/xxx
6.测试
在浏览器中输入:http://本机ip/rhel7.2,就可以看到镜像中的内容
7.修改本机yum源指向
打开/etc/yum/repos.d/yum.repo
[server]
name=rhel7.2
baseurl=file:///var/www/html/rhel7.2 修改yum源指向
gpgcheck=0
8.开机自动挂在iso
打开 /etc/rc.d/rc.local
在里面添加挂载命令
或者直接 echo “mount rhel-server-7.1-x86_64-dvd.iso /var/www/html/rhel7.1” >>/etc/rc.d/rc.local
:wq退出后记得给权限才能生效: chmod +x /etc/rc.d/rc.local
9.第三方软件仓库的搭建
把所有的rpm软件包放到一个目录中,这个目录中只能存放rpm文件
createrepo -v /rpm存放目录 //在企业版7中-v参数可以省去
vim /etc/yum.repos.d/yum.repo //**在这个文件原有内容的下面添加**
[Software]
name=software
baseurl=file:///rpm存放目录
gpgcheck=0
//createrepo 也要yum clean all 才能生效
如图所示为createrepo后出现的显示,扫面里面的rpm文件
-
另外,如果想要在下载时,屏蔽掉一些不要的东西,可以在 /etc/yum.conf里面添加exclude=…
比如不想要x86_64后缀的任何东西,不想要linuxqq.i386,可以设置
//之后,即使去搜索软件包,也不会显示- 添加之前:
- 添加之后:
- 添加之前:
client指向端
vim /etc/yum.repos.d/xxxx.repo //仓库指向文件位置"
[xxxx] //自定义软件仓库名称
name=xxxx //自定义软件仓库描述
baseurl=ftp://|http://|file:// //server配置的仓库位置
//比如要刚刚server配置的地方填写:
"baseurl=http://172.25.254.166/rhel7.2"
gpgcheck=0 //不检测gpgkey
//gpgkey表示软件的出品logo
yum clean all ##清空yum缓存识别新配置
yum命令
yum install softwarename ##安装
repolist ##列出设定yum源信息
remove softwarename ##卸载
list softwarename ##查看软件源中是否有次软件
list all ##列出所有软件名称
list installd ##列出已经安装的软件名称
list available ##列出可以用yum安装的软件名称
clean all ##清空yum缓存
search softwareinfo ##根据软件信息搜索软件名字
##yum search 时是在搜索数据库 repodate在就还是能搜索到的,但是安装时就不会出现了
whatprovides filename ##在yum源中查找包含filename文件的软件包
update ##更新软件
history ##查看系统软件改变历史
reinstall softwarename ##重新安装
info softwarename ##查看软件信息
"yum info ...
= : 安装过的
+ : 必选安装,默认会选择安装的
- : 在安装时将会被安装的,需要手动安装
但是要考虑各软件依赖关系,即使安装也不一定能用。
"
groups list ##查看软件组信息
groups info softwaregroup ##查看软件组内包含的软件
groups install softwaregroup ##安装组件
groups remove softwaregroup ##卸载组件
//yum用来寻找安装包
//查看yum历史记录
安装包的拆解
rpm2cpio xxxx.rpm | cpio -id
在管理文件时不小心把那个配置文件年删除了,那么可以拆解相应软件包,将少的东西直接用拆解下来对应的文件添加上去就恢复了。
如果将/usr/bin/wps删除了,可以直接将这个wps放到/usr/bin/下 完成恢复
如果觉得有问题,不妨 vimdiff wps(拆解出来的) /usr/bin/wps
对比一下
//两个文件一模一样,可以替换
附上自动配置yum源的脚本