我们晓得,在linux中,安装软件有三种方式,源码、rpm/deb软件包、yum/apt这三种形式。在这儿,我介绍一下用rpm安装的技巧。
我们先来瞧瞧windows的安装方法。windows中linux运维最佳实践,我们习惯了先弄到完整的安装文件,这个文件要么在光碟里,要么从网上下载,弄到以后,上面往往有个setup或则install的程序,点击后,就可以把整个程序安装完成了。
在linux中,也有类似的方式,它就是rpm形式。我们也是先找到rpm软件包,之后通过rpm这个命令包软件安装到系统当中linux c,这个rpm命令就类似我们的setup或则install程序,rpm软件包就是windows中的安装文件。
为何会出现rpm这些安装方法呢?我们晓得,在包管理软件,即rpm、dpkg出现之前,主要是通过源代码的形式来安装软件。源码的安装过程是如何样的呢?首先要找到源代码,从软件的官方网站或则github里面找到,并下载。下载到本地,一般是一个压缩包,须要先把压缩包解压开来linux安装deb文件,释放上面的源代码文件。这样就可以直接编译生成软件了吗?其实不行,在编译之前,须要通过检测系统环境,瞧瞧有没有缺乏的东西,倘若缺乏了还要补上。环境合格后,就可以用编译工具进行编译了,编译完了,就可以把软件安装上了。假如在检测环境中缺乏某个软件,也是通过源码形式安装的,几个循环出来,软件没装上,仍然在编译安装依赖文件(这个又是啥?前面会解释)。据悉,编译软件也是十分历时间的,假如笔记本配置不高,你吃早饭了,软件还没有编译好呢!这个过程是不是想想都惊悚?在linux初期确实是这样,许久曾经试过安装电脑的无线网卡的驱动,就经历了这个惊悚的过程,整整搞了我几个夜晚。
所以,为了解决这个问题,人们就发明了包管理工具,rpm就是其中一个这个。它的全称是RedhatPackageManager,英文意思就是红帽包管理,是由大名鼎鼎的红帽公司整下来的,所以就用自己的公司取名了。
它的原理是怎样样的呢?rpm包提起把软件的源码编译了,产生可执行文件,但是在包上面提供了软件的相关信息,例如软件名称、版本、依赖关系,而且会有一个数据库,集中管理系统中安装了的包的信息。这个是不是有点类似windows的软件管理方法呢?通过rpm包,你就可以省去了找源代码、检测软件环境、编译软件的过程了,那些东西,rpm包提早帮你完成。你只要安装就可以了。在安装的过程中,尽管也会出现依赖软件缺乏的情况linux安装deb文件,但也可以通过rpm的方法来安装这种依赖文件。
在继续之前,先解释哪些是依赖包。
玩PC游戏的都有那么个经历,安装windows游戏的时侯,往往须要你先安装.net的框架,假如没有这个框架,这么程序就难以执行;再例如,有些游戏有时侯会要求你安装DirectX或则升级你的DirectX版本,没有这个DirectX游戏是未能启动的。
不玩游戏的可以如此理解,这个依赖关系有点类似盖房子时侯的地基,你的房屋是建在地基里面的,假如没有这个地基,人家是不会在前面盖房子的。这个被依赖的包就是地基。房屋就是你的软件。所以,安装的时侯,一定要先解决依赖关系。
好了,我们如今正是的来看一下怎样用rmp来安装软件。
首先,我们要找到rpm包,这上哪找呢?一般可以下载每位发行版的安装光碟,在安装光碟中会有常用的软件包。也可以在网上找,网上的途径主要有:
、国内的各大开源镜像,如北大学院开源镜像、浙江学院开源镜像、阿里巴巴开源镜像、网易开源镜像等,十分的多。
第二、到发行版的网站去找,例如fedoraproject的网站,suse的网站。这个就须要依照自己的发行版来了。
我的目前用了光碟上的rpm包,截图是这样的:
这种rpm结尾的就是rpm软件包了。假如你也是通过系统光碟的方式安装,须要先用mount命令把光碟挂载到系统。
我们先来瞧瞧rpm包长的哪些样子,我们随意拿一个来瞧瞧:
这儿的xorg-x11-drv-xgi就是软件包的名子,1.6.1就是版本号,1.el6就是发布号,x86_64就是硬件平台,这儿要非常注意的是el6和x86_64这两个东西,el6代表的是适用centos6系统,倘若是el7就代表是适用centos7系统,x86_64代表是在64为系统中使用的,假如要在32系统中使用,就要用i386的,安装的时侯要注意。所以,rpm的命名规则是这样的:软件名-版本号-发布号-硬件平台。
rpm的使用主要有三方面:查询、安装、卸载,我们一个个来讲。
rpm的查询
查询命令的核心是-q(即英语query的首字母)参数,前面可以加其他东西,基本上,只要带了-q就是表示查询的意思。
例如,要查询系统中安装了什么软件:rpm-qa,截图只显示了部份
要查询某个软件包是否安装:rpm-q软件名,例如:rpm-qvim,我安装的小版本,没有vim这个软件
例如查询某个安装包的信息:rpm-qpi未安装的软件包,例如:
rpm-qpivim-common-7.4.629-5.el6_8.1.x86_64.rpm,框框部份,就是rpm命名规则的部份内容
假如要查询这个软件包,会被安装到那个位置,可以用:rpm-qpl未安装的软件包,例如:rpm-qplvim-common-7.4.629-5.el6_8.1.x86_64.rpm|more,这儿的"|more"使用来分页显示。
rpm的安装
安装命令的核心是-i(即英语install的首字母)参数,前面可以跟其他东西,倘若直接用rpm-i软件包名子,这么安装过程都会一闪而过,只告诉你安装结果。在windows的安装过程,我们经常可以见到进度信息,虽然用rpm的安装方法也可以见到,用上vh参数就可以了,例如:rpm-ivhvim-filesystem-7.4.629-5.el6_8.1.x86_64.rpm
有时侯,会提示须要依赖软件,例如:
提示须要vim-filesystem这个软件,这么我们找到这个软件,把它安装上就可以了。
rpm的卸载
卸载命令的核心是-e(即英语erase的首字母,为何不用remove呢?)参数
这个就很简单了,rpm-e软件名,例如卸载刚安装的vim-common,rpm-evim-common。
假如你卸载这些被依赖的包,系统会报错:
其实你可以通过--force参数强制删掉,但不建议如此做。再想想建房子的事例,假定房屋有5层,假如你拆房屋,先拆一楼,这么房屋都会这个塌出来,拆的时侯才会很不安全了,恐吓到周围的房屋。假如你从里面开始拆,5楼、4楼、3楼、2楼、1楼,这样就可以顺利的把房屋拿掉。
卸载软件也一样,不能把基础依赖包删了,这样会放别的软件难以使用。拿安装游戏的事例来说,DirectX是许多游戏共用插口,假如你把这个软件包删了,再删了其中一个游戏,这么另外一个依赖这个插口的游戏就难以运行了。
好了,rpm管理软件的形式就介绍到这儿,假如想详尽了解可以用man指南、或者去官网。希望对你有用~