摘要:在Windows下安装软件很简单,只需要双击后缀为.exe的文件,然后根据提示连续单击“下一步”即可。那么在Linux下如何安装软件呢?这篇博文就来介绍如何在linux下安装软件。内容主要有 1)介绍rpm工具并管理rpm软件 2)用yum工具实现软件管理 3)共享yum源 4)安装第三方软件
RPM全称是Red Hat Package Manager,类似于Windows下的“添加\删除程序”,但功能更为强大。是一种以数据库记录的方式把我们需要的套件安装到Linux主机上的一套管理程序。也就是说,我们的linxu系统中存在着一个关于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包没有硬件平台限制。比如下图
rpm安装时需要手动安装依赖包,这样很麻烦。所以一般我们更倾向于使用yum安装软件,yum工具最大的优势在于可以联网去下载所需要的RPM包,然后自动安装。如果要安装的RPM包有依赖关系,yum工具会帮我们一次安装所有相关的RPM包。 特点是1)可以同时配置多个资源库 2)配置文件简单明了(主配置文件/etc/yum.conf、资源库配置目录/etc/yum.repos.d/name.repo)3)保持与RPM数据库一致
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 ##升级软件
有时,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下即可上面的介绍中,我们只是在自己本机中搭建了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,配置内容如最后一行:
前面我们所搭建的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 就是这三个命令)
所有依赖都已经解决完毕。 安装成功!