【linux】13_软件管理

摘要:在Windows下安装软件很简单,只需要双击后缀为.exe的文件,然后根据提示连续单击“下一步”即可。那么在Linux下如何安装软件呢?这篇博文就来介绍如何在linux下安装软件。内容主要有
1)介绍rpm工具并管理rpm软件
2)用yum工具实现软件管理
3)共享yum源
4)安装第三方软件

1. RPM介绍

1.1 RPM工具

RPM全称是Red Hat Package Manager,类似于Windows下的“添加\删除程序”,但功能更为强大。是一种以数据库记录的方式把我们需要的套件安装到Linux主机上的一套管理程序。也就是说,我们的linxu系统中存在着一个关于RPM的数据库 ,这个数据库记录了安装的包以及包与包之间的依赖关系。

1.2 RPM包

RPM包中包含了已经编译好的二进制可执行文件,其实就是将软件源码文件进行编译、安装,然后进行封装,类似于Windows下的.exe文件。此外,RPM包中还有运行可执行文件所需的其他文件,这点也和Windows下的软件包类似,Windows程序的安装包中,除了.exe可执行文件之外,还有其他依赖运行的文件。
优点是安装简单方便,因为软件已经编译完成且打包完成,安装只是个验证环境和解压的过程。此外,通过RPM方式安装的软件,RPM工具都会记录软件的安装信息,这样方便了软件日后的查询、升级和卸载。
缺点是安装环境必须与编译环境一致或者相当,包与包之间有依赖关系。我们卸载RPM软件时也要把依赖的包卸载掉。但如果依赖的包是系统所必需的,就不能卸载这个包,否则系统会崩溃。
RPM包识别如下:
在这里插入图片描述
其中[which]是软件名称,[2.20-7]是软件版本号,[el7]是软件适用系统,[x86_64]是运行平台。我们需要知道的是,CPU目前分为32位和64位,其中i386、i586和i686都是32位平台,x86_64是64位平台。如果有些RPM包并没有写具体的运行平台而是noarch,则说明这个RPM包没有硬件平台限制。比如下图
在这里插入图片描述

1.3 RPM命令使用

  • rpm -q name ##查看软件包的安装信息,直接写软件名即可,显示出来的结果就是该软件安装后在系统中的名字。在这里插入图片描述
  • rpm -qa ##查询系统中安装的所有软件名称(由于软件太多,这里只显示前十行)在这里插入图片描述
  • rpm -qi name ##查看详细信息在这里插入图片描述
  • rpm -ql name ##查看软件生成的文件(生成的文件太多,这里只显示后10行)在这里插入图片描述
  • rpm -qf 文件绝对路径 ##列出某个文件属于哪个RPM包
    在这里插入图片描述
  • rpm -qa | grep name ##查询系统安装的所有包,并过滤在这里插入图片描述
    【注】rpm -q 后面跟软件名称。如果是个软件包,加p参数
    在这里插入图片描述
  • rpm -ivh name.rpm ##安装软件 -i:安装 -v:显示过程 -h指定加密方式为hash
    (后面参数是一个存在的文件,与卸载有区别)
    在这里插入图片描述
  • rpm -ivh name.rpm --force ##强制覆盖安装且不忽略依赖性(用于更新软件包)
  • rpm -ivh name.rpm --nodeps --force ##忽略软件依赖性并强制安装
  • rpm -Uvh name.rpm ##若后面接的软件没有安装过,则系统直接安装;若后面接的软件有安装过旧版,则系统直接更新到新版
  • rpm -Fvh name.rpm ##只有已经安装到系统的软件才会被更新;若后面接的软件
    没有安装到系统上,则该软件不会被安装
  • rpm -e name ##卸载(后面参数是包名)
    在这里插入图片描述
  • rpm --scripts ##查看脚本
    在这里插入图片描述
  • rpm -ivh name --nodeps ##安装软件忽略软件依赖性(有可能导致软件无法使用)
  • rpm -ivh name --force ##强行安装软件
  • rpm --Kv检测软件包是否被篡改
    在这里插入图片描述

2. YUM工具

rpm安装时需要手动安装依赖包,这样很麻烦。所以一般我们更倾向于使用yum安装软件,yum工具最大的优势在于可以联网去下载所需要的RPM包,然后自动安装。如果要安装的RPM包有依赖关系,yum工具会帮我们一次安装所有相关的RPM包。
特点是1)可以同时配置多个资源库 2)配置文件简单明了(主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repos.d/name.repo)3)保持与RPM数据库一致

2.1 yum命令使用

  • yum clean all ##清除原有yum缓存

  • yum repolist ##列出仓库信息

  • yum list ##列出所有的RPM包资源(包括已安装和可以安装的其他软件)
    在这里插入图片描述
    在这里插入图片描述
    左侧是软件名称,中间是版本信息,右侧是安装信息。yum list命令先列出已安装的包(installed package),再列出可以安装的包(available package)

  • yum list installed ##列出已经安装的所有RPM包

  • yum list all ##列出所有可以安装的RPM包

  • yum list extras ##列出已经安装的但不包含在资源库中的RPM包,即通过其他网站下载的RPM包

  • yum search name ##搜索RPM包在这里插入图片描述

  • yum list | grep name ##搜索RPM包在这里插入图片描述

  • yum install -y name ##安装软件,-y表示不与系统交互

  • yum reinstall name ##重新安装

  • yum remove -y name ##卸载软件,卸载某个RPM包时一定要看清楚,不要连其他重要的RPM包一起卸载了,以免影响正常的业务。因此建议使用此命令时,最好不要加-y。

  • yum info name ##查看软件信息

  • yum whatprovides name ##根据文件找出包含此文件的软件包
    【注】rpm -qf /usr/bin/rm只能查询原来有,但是现在没有了的(一定要安装过)
    yum whatprovides /usr/bin/rm可以查询所有的,包括从未安装过的

  • yum update -y name ##升级软件

2.2 搭建yum源

有时,linux系统并不能联网,因此也就无法使用联网的yum源。我们可以自己在linux系统下使用镜像文件制作yum源,把镜像文件.iso想象成一个超市,yum就是一个可以帮我们去超市里取(下载)各种资源(RPM包)的工具,前提是我们告知此超市地址(配置本机yum源指向),否则yum工具找不到地方自然也就无法下载软件啦。
1)从网络上下载与本机系统版本匹配的iso镜像文件
在这里插入图片描述
这里可以看到我们系统里已经有了这个镜像文件
2)把rhel-server-7.0-x86_64-dvd.iso挂载到/mnt 以便系统访问镜像文件
在这里插入图片描述
在这里插入图片描述
3)配置本机yum源指向
在这里插入图片描述
内容如下:
在这里插入图片描述
简单解释一下,名字可以随便起,这里我们配置的rhel7.0镜像文件的yum源,名字就可以起个显而易见的好理解的。baseurl中//表示格式,/mnt是告诉yum仓库挂载的地方。gpgcheck表示是否器用gpg检查,1表示启用,0表示不启用校验。如果启用,就是需要在配置文件里注明GPG-RPM-KEY的位置。

4)测试安装软件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述安装成功。
举个例子,如果ls这个命令被我们误删
在这里插入图片描述
我们就要使用whatprovides根据/bin/ls找出包含此文件的软件包
在这里插入图片描述
再重新安装这个软件包,即可。
在这里插入图片描述
在这里插入图片描述

  • rpm2cpio name(软件包) ##拆解软件包
    换一个例子,这次我们删除rm这个命令。解决办法:先把包含/bin/rm的软件包拷贝出来,使用rpm2cpio就可以把这个软件包拆开,再在里面找我们需要的/bin/rm
    在这里插入图片描述
    再把rm文件拷贝到/usr/bin下即可
    在这里插入图片描述

3. 共享yum源

上面的介绍中,我们只是在自己本机中搭建了yum源,然后配置了资源库文件。我们也可以把搭建的yum源共享出去,让其他主机也可以使用这个仓库。下面看一下步骤
1)安装资源共享服务
这一步骤主要就是要开启http服务以及关闭防火墙服务。
在这里插入图片描述
首先查看系统内是否安装了httpd。
在这里插入图片描述
关闭防火墙,开机不启动防火墙服务。
在这里插入图片描述
开启http服务,开机自启动。
2)把镜像文件挂载到共享目录中
我们使用Apache的web服务器实现共享,其中/var/www/html是Apache的默认根目录。
在这里插入图片描述
这里我们先写一个索引,其他主机通过访问共享yum源的服务器端ip地址,首先看到的就是这个index,html中的内容
在这里插入图片描述
这是我在服务器端写的索引内容,下面打开虚拟机作为客户端访问这个索引内容,直接在网址栏输入ip地址即可,当然如果手动配置了dns域名解析(/etc/hosts)也可以使用域名访问,读者可以自行尝试。
在这里插入图片描述
访问到了索引内容,下面就在/var/www/html下创建一个共享文件目录,把镜像文件挂载到这个目录下以便其他主机访问。
在这里插入图片描述
虚拟机同样可以看到镜像中的内容。
在这里插入图片描述
那么怎么使用这个共享yum源呢?回想一下,在本机搭建yum源后,我们要告诉本机这个yum源在哪里,也就是写资源配置文件。同样这里其他主机如果想使用这个共享yum源,也总得告诉自己的主机yum源的地址在哪吧。
在这里插入图片描述
我们知道虚拟机当前并没有rhel7.0这个镜像文件,但是ip地址为172.25.56.250的主机共享了这个镜像,现在我们一切准备就绪,尝试一下在虚拟机下能否安装这个共享yum源中的包。
在这里插入图片描述在这里插入图片描述httpd成功安装。
补充一点,mount命令只能帮我们临时挂载,开机重气后df就看不见挂载信息了。那么我们这个yum共享源并不永久可靠,解决办法是永久挂载。具体做法是vim /etc/rc.d/rc.local,配置内容如最后一行:
在这里插入图片描述

4.搭建第三方软件yum源

前面我们所搭建的yum仓库里面都是镜像文件中的软件,如果我们需要下载并且安安装第三方软件,那就需要重新搭建一个第三方软件的yum仓库,所以建议把所有的第三方软件包.rpm都放在一个目录下,并且使用工具createrepo。下面以安装kolourpaint这个软件为例
1.把所有的rpm包放到一个目录中
2.createrepo -v /存放软件包的目录 ##命令执行成功会生成repodata目录
在这里插入图片描述
这个命令可以帮助我们创建第三方软件仓库。可以看到software目录下多了一个repodata这个目录。这个目录记载着rpm软件包的信息
在这里插入图片描述
3.再在/etc/yum.repos.d/yum.repo中指定第三方软件仓库源即可。我们编辑下面的内容。(上面【rhel7.0】是镜像文件仓库的名字,下面【software】才是我们最新编辑的第三方软件仓库名称)
在这里插入图片描述
注意第三方软件仓库中,gpgcheck一定要为0,如果为1,则表示开启gpg检查,那第三方软件就无法安装。搭建完成后,我们在仓库中查找这个kolourpaint软件
在这里插入图片描述
在这里插入图片描述
安装时,可以发现yum这个工具,确实是在帮助我们解决软件之间的依赖性(如果用rpm命令装kolourpaint这个软件,就需要我们自己手动去解决一个个依赖性,读者可以自行尝试1.rpm -ivh 2.yum whatprovides 3.yum install 就是这三个命令)

在这里插入图片描述
所有依赖都已经解决完毕。
在这里插入图片描述
安装成功!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值