查看原文
其他

Linux环境下安装及管理程序(软件包封装、RPM命令、源代码编译安装的基本过程)

Jake Tian 杰哥的IT之旅 2022-06-06

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


  • 应用程序命令的执行文件大多比较小,通常放置在/bin和/sbin目录中。对于内部命令,常集成在Bash程序内,而不是独立地执行文件。

  • 命令文件一般在安装操作系统时一起安装,用于辅助操作系统本身的管理。

  • 命令行大多适用于“命令字  选项  参数”形式的一般格式。

  • 命令只在字符操作界面中运行。

  • 应用程序的执行文件通常放在/usr/bin、/usr/sbin和/usr/local/bin、/usr/local/sbin等目录中。

  • 应用程序一般需要在操作系统之外再另行安装,提供相对独立于操作系统的功能,有时候等同于“软件”的概念。

  • 应用程序一般没有固定的执行格式,运行方式由程序开发者自行定义。

  • 应用程序可能会使用到图形界面,形式多样。

  • 有些应用程序提供的执行文件,能够使用像Linux命令一样的运行格式,所以也经常称为程序命令。


2Linux 应用程序的组成


普通的可执行程序文件:一般保存在"/usr/bin"目录中,普通用户即可执行。

服务器程序、管理程序文件:一般保存在"/usr/sbin"目录中,只有管理员能执行。

配置文件:一般保存在"/etc"目录中,配置文件较多时会建立相应的子目录。

日志文件:一般保存在"/var/log"目录中。

关于应用程序的参考文档等数据:一般保存在"/usr/share/doc/"目录中。

执行文件及配置文件的man手册页:一般保存在"/usr/share/man/"目录中。


3软件包的封装类型


对于各种应用程序的软件包,在封装时可采用不同的类型,不同类型的软件包其安装方法也不同。


常见的软件包封装类型:


  • RPM软件包:这种软件包文件的扩展名为".rpm",只能在使用RPM软件包管理器机制的Linux操作系统中安装,对特定版本的系统量身定制,依赖性比较强。安装RPM包需要使用系统中rpm命令。

  • DEB软件包:这种软件包文件的扩展名为".deb",只能在使用DPKG机制的Linux操作系统中进行安装,如Ubuntu,安装DEB软件包需要使用dpkg命令。

  • 源代码软件包:这种软件包是程序员开发完成的原始代码,一般被制作为".tar.gz"和".tar.bz2"等格式的压缩包文件。

  • 移植附带安装程序的软件包:这种软件包的扩展名不一,但仍以TarBall格式的居多,用于安装的可执行程序或脚本文件,如install.sh、setup等,只需运行安装文件就可以根据向导程序的提示完成安装操作。


4RPM概述


RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装、卸载、升级的各种.rpm软件包进行详细的记录,并能够自动分析软件包之前的依赖关系。


一般使用"软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm"的文件名形式表示;


5RPM的主要功能


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

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

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


6RPM包管理命令


man rpm获得关于rpm命令的详细帮助信息。
-qa显示当前系统中以RPM方式安装的所有软件列表。
-qi查看指定软件包的名称、版本、许可协议、用途描述等。
-ql显示指定的软件包在当前系统中安装的所有目录、文件列表。
-qf查看指定的文件或目录是由哪个软件包所安装的。
-qp针对尚未安装的RPM包文件进行查询。
-qpl查看该软件包准备要安装的所有目标目录、文件列表。
-i在当前系统中安装一个新的rpm软件包。
-e卸载指定名称的软件包。
-U检查并升级系统中的某个软件包,若软件包未安装,则等同于“-i”选项
-F检查并更新系统中的某个软件包,若软件包未安装,则放弃安装。
--force强制安装某个软件包。需要替换现已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项。
--nodeps在安装或升级卸载软件包时,不检查与其他软件包的依赖关系。‍
-h在安装或升级软件包的过程中,以“#”号显示安装进度。
-v显示软件安装过程中的详细信息。
7编译安装的基本过程


获得所需安装的软件源代码以后,安装的基本过程包括解包、配置、编译及安装的步骤,具体流程图如下:



  • 解包:开源软件的源代码包一般为tarball形式,扩展名为“.tar.gz”或“.tar.bz2”,可以使用tar命令进行解压缩。对于只有“.gz”扩展名的源代码包,表示只经过压缩而并未使用tar归档,这样的文件只需使用gzip命令进行解压缩。

  • 配置:配置工作由源代码目录中的“configure”脚本文件来完成,可用的各种配置参数可以通过在源代码目录中执行“./configure --help”进行查看。对于不同的软件程序来说,其配置蚕食会存在区别,但是“--prefix”形式的参数,大多数开源软件通用,该配置参数用于指定的软件包安装的目标文件夹。

  • 编译:编译过程主要是根据makefile文件内的配置信息,将源代码文件进行编译而生成二进制的程序模块、动态链接库、可执行文件等。配置完成后,只要在源代码目录中执行“make”命令即可进行编译操作。

  • 安装:编译完成后,执行“make install”命令将软件的执行程序、配置文件、帮助文档等相关文件复制到系统中,即应用程序的最后“安装”过程。为方便起见,上述的编译、安装步骤可以写成一行命令执行,中间使用“&&”符号分隔。make && make install



▼往期精彩回顾▼
Linux下MySQL基本操作

Tomcat的三种运行模式

Nginx反向代理upstream模块介绍

Tomcat和Weblogic的区别

高可用Redis服务架构分析与搭建

Linux磁盘扩容 | LVM逻辑卷使用手册

Linux环境下Oracle数据库常用命令

Oracle数据库环境搭建

Linux环境下vi/vim编辑器常用命令

99%的Linux运维工程师必须要掌握的命令及运用

Linux环境搭建 | 手把手教你如何安装CentOS7虚拟机

IT行业技术圈

专注分享技术干货、学习资源、实用工具等,欢迎关注,共同进步!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存