Linux安装及管理程序

本文详细介绍了如何使用RPM命令查询、安装、升级和卸载软件包,涵盖了RPM软件包的基础知识、依赖管理,以及Linux应用程序的目录结构、编译安装流程。重点讨论了源代码编译和常见的软件包类型。

安装及管理程序

一、查询RPM软件包信息

1、RPM概述

RPM包是各种Linux发行版本中应用最广泛的软件包之一。

RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装、卸载、升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之间的依赖关系,保持各种应用程序在一个协调、有序的整体环境中运行。

使用RPM机制封装的软件包文件有固定的命名形式,一般为“软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm”的文件名形式。如“bash-4.1.2-15.el6_4.x86_64.rpm”,其中硬件平台通常为“i386”、“i686”等,表示适用于Intel公司的处理器,“x86_64”表示适用于64位的系统,如果是“noarch”表示不区分硬件架构。

2、RPM包管理命令–rpm

在Linux系统中,rpm命令是实现PR软件包管理的主要工具。

1)rpm命令的格式

执行”man rpm“命令可以获得关于rpm命令的详细帮助信息。

rpm命令结合不同的命令选项及子选项可以实现以下几类功能:

  • 查询、验证RPM软件包的相关信息。

  • 安装、升级、卸载RPM软件包。

  • 维护RPM数据库信息等综合管理操作。

2)查询RPM软件包信息
①查询已安装的RPM软件包信息

为了便于管理Linux系统中的应用程序,可以使用rpm命令的查询功能来检查某个软件是否已经安装,了解软件包的用途,软件包复制到系统中的文件等各种相关信息。常用的选项有:

  • q:查看指定软件包是否已经安装。

  • qa:显示当前系统中以RPM方式安装的所有软件列表。

  • qi:查看指定软件包的名称、版本、许可协议、用途描述等详细信息。

  • ql:显示指定的软件包在当前系统中安装的所有目录、文件列表。

  • qf:查看指定的文件或目录是由哪个软件包所安装的。

    当需要查询某个软件包是否已经安装时,可以指定软件包名称作为参数(可以是1或多个)。例如执行“rpm -q httpd”可以查看是否已经安装apache。

如果不知道准确的软件包名称,还可以对查询结果进行过滤,使用软件包的一部分名称进行模糊查询,根据查询结果再进行判断。例如执行以下操作查询系统中是否安装了名称中包含“samba”的软件包,查询时不区分大小写。

如果不知道已安装的某个软件的用途,可以通过执行”rpm -qi 指定软件包名称“来进行查询。

当需要查看某个软件包安装的目录和文件清单时,使用“-ql”选项。例如执行‘rpm -ql httpd“命令可以列出apache软件包安装的目录和文件清单。

当需要知道系统中某个文件是由哪一个软件包生成的时候,可以使用”-qf“选项,例如执行以下操作查询vim编辑器程序是由哪个软件包生成的(注意:rpm命令的-qf选项必须以rpm包文件的路径作为参数,可以是单个或多个)。

PS:使用rpm命令只能查询通过rpm方式安装的软件包信息,对于其他途径安装(如源码编译、手工复制等方式)到系统的软件包,rpm命令无法获取相关信息。

②查询未安装的的RPM包文件

使用”-qp“选项时,必须以RPM包文件得路径作为参数(可以有多个),而不是软件包名称。其相关的子选项与使用“-q“查询时类似,常用的两个查询选项如下所述。

*-qpi:查看指定软件包的名称、版本、许可协议、用途等详细信息。

*-qpl:查看指定软件包准备要安装的所有目标目录、文件列表。

二、安装、升级、卸载RPM包

在日常系统管理工作中,安装、升级、卸载软件包是管理应用程序最基本的工作内容。使用rpm命令实现这些操作时,基本的命令选项有:

  • -i:在当前系统中安装(install)一个新的RPM软件包。
  • -e:卸载指定名称的软件包。
  • -U:检查并升级系统中的某个软件包,若该软件未安装,则相当于”-i“选项。
  • -F:检查并更新系统中的某个软件包,若该软件未安装,则放弃安装。
  • –force:强制安装某个软件包当需要替换现已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。
  • –nodeps:在安装、升级或卸载软件包的过程中,不检查与其他软件包的依赖关系。
  • -h:在安装或升级软件包的过程中,以#显示安装进度。
  • -v:显示软件包安装过程中的详细信息。

1、安装、升级软件包

使用rpm命令安装软件包时,需要指定完整的包文件名作为参数(可以有多个),而卸载软件包时,只需要指定软件名称即可。若要一次安装多个RPM软件包,可以使用通配符” * “这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统将会自动检查依赖性并决定安装顺序,而无需管理员去判断先应该安装哪个包。

在安装一个新的软件包时,通常使用”-ivh“的组合选项,这样便于了解软件安装的过程信息,及时跟踪安装进度。如果是使用新版本的软件包替换旧的软件包,则只需将”-i“换成”-U“即可。

2、卸载软件包

卸载一个软件包时,使用“-e”选项。例如执行“rpm -e -nodeps python2-caribou-0.4.21-1.el7.noarch“操作可以卸载已安装的”python2-caribou-0.4.21-1.el7.noarch“,再执行查询时会发现该软件没有安装。

当需要安装、卸载一个与其他程序存在依赖关系的软件包时,系统将提示存在依赖关系而放弃执行。这是可以结合“–nodeps”选项忽略依赖关系,而强行安装或者卸载指定的软件包(需要注意的是,忽略依赖关系可能导致软件功能异常或者失效)。

3、维护RPM数据库

用于记录再Linux系统中安装、卸载、升级应用程序的相关信息,有RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件、非法关机、病毒破坏等导致),且Linux系统无法自动完成修复时,将导致无法使用rpm命令正常的安装、卸载及查询软件包。这是可以使用命令”rpm --rebuilddb“或”rpm --initdb“命令对RPM数据库进行重建。

三、Linux应用程序基础

下面将简单介绍Linux操作系统中应用程序的一些基本知识。

1、Linux命令与应用程序的关系

在Linux系统中,命令和应用程序并没有特别明确的区别,而从长期使用习惯来看,可以通过以下描述来对两者进行区别。

  • 文件位置:系统命令一般在/bin和/sbin目录中,或为shell内部指令,而应用程序则通常在/usr/bin和/usr/sbin目录中。
  • 主要用途:系统命令是完成系统的基本管理工作,例如IP配置工具;而应用程序则是完成相对独立的其他辅助任务,例如网页浏览器。
  • 适用环境:系统命令一般只在字符操作界面运行,应用程序则是根据实际的需要,有些程序可在图形界面中运行。
  • 运行格式:系统命令一般包括命令字、命令选项和命令参数,应用程序却没有固定的执行格式。

2、典型应用程序的目录结构

安装完成一个软件包后,可能向系统中复制大量的数据文件,并进行相关设置。在Linux系统中,典型的应用程序通常由以下几部分组成。

  • 普通的可执行程序文件:一般保存在/usr/bin目录中,普通用户即可执行。
  • 服务器程序、管理程序文件:一般保存在/usr/sbin目录中,只有管理员能执行。
  • 配置文件:一般保存在/etc目录中,配置文件较多时会建立相应的子目录。
  • 日志文件:一般保存在/var/log目录中。
  • 关于应用程序的参考文档等数据;一般保存在/usr/share/doc目录中。
  • 执行文件及配置文件的man手册页:一般保存在/usr/share/man目录中。

3、常见的软件包及其封装类型

对于各种应用程序的软件包,在封装时可以采用各种不同的类型,不同类型的软件包其安装方法也各不相同。常见的软件包封装类型如下所述。

  • RPM软件包:这种软件包文件的扩展名为”.rpm“,只能在RPM(RPM package manager,RPM软件包管理器)机制的Linux操作系统中安装。PM软件包一般针对特定版本的系统量身定制,因此依赖性较强。安装RPM包需要使用系统中的rpm命令。
  • DEB软件包:这种软件包文件的扩展名为”.deb“,只能在DEPG(debian package,Debian包管理器)机制的Linux操作系统中进行安装。安装DEB软件包需要使用系统中的dpkg命令。
  • 源代码软件包:这种软件包时程序员开发完成的原始代码,一般被制作成”.tar.gz”“.tar.gz2“等格式的压缩包文件,因多数使用tar命令打包而成,所以经常被称为”TarBall“。安装源码软件包时需要使用相应的编译工具,如Linux中的C语言编辑器gcc。
  • 附带安装程序的软件包:这种软件包扩展名不一,但仍以TarBall格式的居多。软件包中会提供用于安装的可执行程序或脚本文件,如install.sh、setup等,有时会以”.bin"格式的单个安装文件形式出现。

4、源代码编译安装

1)源代码编译概述

Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。

编译源代码需要有相应的开发环境,对于自由软件来说,gcc和make是最佳的编译工具。gcc和make是由GNU项目所贡献的功能强大的C/C++语言编译器。由于安装gcc、make编译环境的依赖包众多,因此建议在首次安装Linux操作系统同时安装这两个编译工具。执行命令“gcc --version”或“make --version”可以查看gcc和make开发工具的版本信息。

2)编译安装的基本过程(手工编译安装Apache)

获得所需安装的软件源代码以后,安装的基本过程包括解包、配置、编译及安装这几个通用步骤。大多数开源软件的安装都遵循这个过程。

下一章以手工编译安装apache来详细介绍手工编译安装过程。

四、小结

  • 应用程序由执行程序、配置文件、帮助文件等部分组成。
  • 软件包封装类型包括RPM包、DEB包、源代码包、带安装程序的包。
  • 使用RPM命令可以完成对RPM软件包的查询、安装、升级、卸载等管理操作。
  • 在Linux系统中编译源代码需要使用gcc、make编译环境。
  • 从源代码包安装应用程序的基本过程包括解包、配置、编译、安装这四个步骤。

配置文件、帮助文件等部分组成。

  • 软件包封装类型包括RPM包、DEB包、源代码包、带安装程序的包。
  • 使用RPM命令可以完成对RPM软件包的查询、安装、升级、卸载等管理操作。
  • 在Linux系统中编译源代码需要使用gcc、make编译环境。
  • 从源代码包安装应用程序的基本过程包括解包、配置、编译、安装这四个步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值