软件分类:
Linux系统中,软件包一般可以分为2种,一种是源代码包,例外一种就是RPM包。源代码包又叫做脚本安装包,它的特点就是属于源代码安装包。
源码安装包的优点是:
1、开源的,如果对C或C++很了解的情况下,可以修改或者扩展源码。
2、可以自由选择所需的功能
3、软件是编译安装,所以更加适合自己的系统,更加稳定效率更加高。因为编译不通过,大家就会直接修改。
而不是其他人处理好的东西,然后再操作。
4、卸载方便,相当于windows的绿色安装一样,直接删除安装路径即可。
源码安装包的缺点是:
1、安装步骤多,尤其安装大型软件集合时,容易出现拼写错误。
2、编译时间较长,一个几十M的源码包,编译下来估计就得花费个1-2天。
3、编译安装,安装出错,新手很难解决问题。
RMP包,又叫二进制包,它是属于编译之后的安装包。一般属于系统默认包,大多存储在.iso镜像文件的Packages
文件夹内。
二进制包的优点是:
1、包管理简单,只需要几个简单的命令就可以完成对包的安装,升级,查询和卸载等操作。
2、安装速度比源代码包安装快的多,因为它是编译之后的产品,无需再次编译了。
二进制包的缺点是:
1、经过编译,不再可以查看源代码了
2、功能选择不如源码来的灵活
3、依赖性提高了
这篇博客以RPM包的指令操作为主,暂时不涉及到源码包的安装内容。
首先,我们先看下RPM包的命名规范,包
的命名的组织规范
从上面的图例中,我们可以看出,httpd为软件的包名,而httpd-2.2.15-15.el6.centos.1.i686.rpm才是包的包全名
。
这2个内容要区分开来,因为指令会按照场景选择包名或者包的包全名,一般在安装,升级时这种指令都是用的包的
包全名。
可以这样理解,一般我们在操作未安装的包的时候,那么都用的是包的包全名。而查看,卸载这些指令就
用的多是
包名。
例外,就是看下RPM包的依赖性,RPM包在安装的时候,常常会依赖于其它包的安装,这种情况在windows中也是很
常见的。
可能看到依赖一般分为3种,树形与环形,还有模块。前2种都说的RPM包之间的依赖,后者则说的RPM包与.so.0
这种类似模块之间的依赖。
需要说明的是:在Packages包中并不存在,那么需要将依赖的模块完整信息,在www.rpmfind.net这个网站上去
查
看具体依赖的是哪一个RPM包。然后再完成安装。
RPM安装
RPM二进制包的安装,主要依靠如下命令:rpm -ivh 包全名 其中的i代表(install)安装的含义,v代表显示详
细
信息,h代表显示进度。rpm的手动安装,很复杂,依赖太多,不好操作,只作为了解即可。
RPM二进制包的更新,只需将上述安装命令的i修改为大写的U即可完成升级操作。命令也就是:rpm -Uvh 包全
名
RPM二进制包安装好后,如果需要卸载,采用命令:rpm -e 包名
RPM查询
查看软件包:
需要想要查看某个软件包,是否在系统中有过安装,则采用指令:rpm -q 包名 例如:
这里查看是否有安装apache,那么最终的结果是并未安装。
查看所有已经安装过的包:
如果要查看所有已经安装的软件包,那么就采用指令:rpm -qa 这条指令将会把所有在系统中依旧安装的软件包
显示出来。当然不便于我们查找我们想要的结果,这时就可以使用:rpm -qa | grep perl模糊查询所有包名中有
perl的软件包。例如:
查看软件包的详细信息:
如果想要查看一个软件包的详细信息,我们可以采用如下命令:rpm -qi 包名 其中的i表示(information),
例如:
这种是查看已经安装过的软件包的信息,如果要查看尚未安装的软件包的信息,则在命令后,添加一个p即可,其中p
代表(package)的含义,指令:rpm -qip 包全名。
查看软件包安装后的位置:
如果要查看一个软件包在安装后,安装的目录在什么地方, 则采用:rpm -ql 包名,其中l代表(list)的含义
,例如:
当然,如果想要查看未安装的软件包,即将安装的位置,则在命令后,添加p即可,p同样代表(package)的
含义,命令如:rpm -qlp 包全名。
查询系统文件属于哪个RPM软件包:
如果我们想要查看某个系统文件,它是哪个软件包下面的,则可以采用:rpm -qf 系统文件名来进行查看,
例如:
查询软件包的依赖性:
如果我们需要查看某个软件安装包的依赖包信息,那么则可以采用:rpm -qR 包名 ,其中R代表(requires),即可完成查看,例如:
这都是需要依赖的软件包,那么在手动安装上述包之前,就需要将这些依赖包都给先安装好才可以完成手动安装
RPM包。如果要查看一个未安装的软件包的依赖关系,则在上述命令之后,添加p即可,命令如:rpm -qRp 包全名。
RPM包的校验:
首先,要知道RPM软件包,一般都是系统包,那么系统包如果被其它人修改后,我们如何查看是否有过变化,
则可以通过命令:rpm -V 已安装的包名 来完成校验,其中的V代表(verify)校验。例如:
如果系统文件没有发生改变,则不会显示任何内容出现,但是一旦经过修改,我将上述文件的一个字母有大写的P修改为小写的p,则会出现如下情况:
可以看的到,出现了..5....T. 这8个字符,这8个字符分别代表了不同的含义:
例外,就是在这个图中未显示出来的文件类型,需要注意:
当出现g “鬼"文件时,一定要注意,这种文件不应该出现在我们的系统中的。
RPM包中文件提取:
有的时候,我们在操作windows时,将系统文件删除了,除了重新安装系统以外,几乎毫无办法,但是linux却不是这样的,只要我们找到相应的文件,直接重新导入到系统文件目录下即可重新一切恢复正常。例子如下:
上述指令中,需要说明的是:“./bin/ls”中间的这个"."实际上是代表当前目录,没有其他的意思。提取文件通常来说都是用于系统修复,文件的恢复。