十四:安装软件,玩转系统!软件包的管理

说起安装软件,我们应该很熟悉。在Windows系统下,我们可能需要购买一张软件安装光盘,然后执行“安装软件”,然后不断的下一步就好。在Linux的图形界面中,也有类似的操作,但是这里并不讨论图形界面的安装,我们需要知道在命令行下进行软件的安装。
Linux的软件安装和Windows有诸多不同,比如Windows有注册表的概念,但是Linux没有;Windows的软件,相关的文件一般都位于自己的目录下,但是Linux不是;Windows的软件有安装版和绿色版,或者说,正版和盗版,但是Linux没有。
Linux通过软件包来安装软件,包是一个文件压缩的集合,可以理解为一个压缩包,里面包含了软件的程序,数据,配置,帮助文档,脚本等等,那么我们如何来获得软件包呢?
想获得软件包,就需要先知道软件包管理工具。众多的发行版Linux分别隶属两大包管理技术阵营,Debian和Red Hat,这两种风格的Linux使用了不同的包管理技术,Debian风格的Linux使用dpkg底层工具,Red Hat风格的Linux则使用rpm底层工具,但是不同的发行版可能使用了不同的上层工具。

*你可以简单理解为:底层包管理工具就是拥有基本包管理功能的工具,上层工具就是对底层工具的优化和拓展,更方便使用。

这里以Rad Hat风格的Linux为例,使用rpm及其上层工具yum作为演示

安装一个软件包
示例:rpm -i 软件包,这是最基本的使用,选项-i表示install安装,一般我们会使用rpm -ivh来安装一个软件包,-v表示安装的内容信息,-h来开启进度提示,选项vh一般联合使用,但是在安装的过程中,可能会碰到依赖的问题。比如你要安装一个mysql的控制台程序,那么首先你需要安装mysql,否则你安装了mysql的控制也没法使用,虽然你可以强制安装。安装中,出现依赖的问题,那么你需要手动的先安装依赖的软件包,才能继续安装你所需要的软件包。

卸载一个软件包
示例:rpm -e 软件包,如果这个软件包依赖了其他的应用,那么删除的过程中会有错误信息,如果你想强制删除他的话(并不建议这么做),你可以添加–nodeps选项强制删除。
示例:rpm -e –nodeps 软件包
好了,如果排除其他的细节,那么安装软件就到此为止了呗?在Windows下,你或许可以这么说,但是Linux下的软件管理可不止安装和卸载这么简单。

查询一个软件是否安装
示例:rpm -q 需要查询的软件名,-q是查询的选项。如果已经安装,那么就显示相关信息
但是这有时并不准确,因为软件名可能很长,你给定的名字可能不完全对,所以通过过滤来查找,结果会更理想。
示例:rpm -qa|grep 软件名,-a表示查询所有软件包

常见查询命令

查看一个文件所属的软件包
示例:rpm -qf(file) 文件名
查看一个软件包的信息,软件包必须要安装才行
示例:rpm -qi(information)文件
查看一个软件包的信息,安装与否皆可
示例:rpm -qip(package)软件包名
查看一个软件包安装了哪些文件(我们会看到,一个软件安装的文件会分布在系统中各个不同的目录中,这和Windows就很不同,Windows软件通常会把各种作用的文件都放在自己的目录下,而linux的软件则会根据系统目录的一般作用而放入不同的目录)
示例:rpm -ql 软件包名
查看一个软件包将要安装哪些文件
示例: rpm -qlp 软件包名

一些其他常见选项

排除软件包的文档:–excludedocs
指定安装的路径:–prefix,使用时添加–prefix=/XXX/XXX,但是要注意,使用rpm安装或者yum安装软件包,该选项的意义不大,因为安装的都是二进制软件包,在安装的时候就已经规定好了软件包要安装的文件的位置,除了使用rpm和yum安装二进制软件包,还有通过源码包和脚本安装的方式进行软件安装。
测试一个软件的安装:–test
安装之前我们需要知道安装这个软件可能出现的问题,所以在安装之前我们可以先测试安装,把问题暴露出来。
校验一个软件包
示例:rpm -V 软件名,如题,对一个软件包含的所有文件进行校验,如果没有问题,那么没有输出。
如果有问题,那么会产生一个可疑文件列表,列表中会用不同标识来标识可疑文件的疑点。

这些标识如下:
5:使用MD5校验,校验值发生变化,说明文件的内容被修改了
  • S:文件大小产生了变化
  • L:文件的链接特征发生变化
  • D:文件的设备特征发生变化
  • U:文件的用户发生变化
  • G:文件的用户组发生变化
  • M:文件的权限发生变化
由于底层工具rpm在对依赖的管理上存在不足,所以yum工具的出现,很好的解决的这个问题,在安装的过程中,yum可以自动解决软件包的依赖问题,不必再手动去一个一个安装依赖了。

一些常见使用方式:
  • yum install 软件包名,安装一个软件包
  • yum chech-update 软件包名,检查一个软件包是否有升级
  • yum update 软件包名,升级一个软件包
  • yum list,列出yum源中所有的软件包,同时会罗列一些状态信息
  • yum info 软件包名,查看软件包的描述
  • yum remove 软件包名,删除一个软件包
Debian风格linux的软件包底层管理工具是dpkg,上层管理工具是apt-get,在使用方式上是类似的,这里不再赘述帮助文档的内容,因为这些实现性质的操作,看十遍不如动手做一遍来得印象深刻

posted on 2015-07-23 10:42 都较瘦 阅读(95) 评论(0)  编辑  收藏 所属分类: Linux


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

公告

博客定位:囿于目前的水平,博客定位在记录自己的学习心得和随手的练习

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜