安装及管理程序(RPM、YUM、源码编译安装)(上)

简介: 1 Linux 应用程序基础1.1 应用程序与系统命令的关系

1 Linux 应用程序基础


1.1 应用程序与系统命令的关系

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


1.2 典型应用程序的目录结构

文件类型 保存目录 说明
普通可执行程序文件 /usr/bin 所有用户可执行
服务器程序、管理程序文件 /usr/sbin 只有管理员能执行
应用程序配置文件 /etc 通过rpm或yum方式安装的应用程序
日志文件 /var/log 系统日志
应用程序参考文档文件 /usr/share/doc 关于应用程序的参考文档等
应用程序手册页文件 /usr/share/man 执行文件及配置文件的man手册页


1.3 常见的软件包封装类型

文件类型 保存目录
RPM软件包 扩展名为“.rpm” ,适用于RHEL、CentOS等系统
DEB软件包 扩展名为“.deb”,适用于Ubuntu、Debian等系统
源代码软件包 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包 包含程序的原始代码,需要编译成二进制安装
绿色免安装的软件 软件包扩展名不一;以TarBall格式的居多;在压缩包内提供已经编译好的执行程序文件,解开压缩包后的文件即可直接使用


2 RPM软件包管理工具


2.1 RPM简介

RPM软件包管理器Red-Hat package Manager

  • 由Red Hat公司提出, 被众多Linux发行版所采用
  • 建立统一的文件数据库
  • 详细记录软件包安装、卸载、升级等变化信息
  • 自动分析软件包依赖关系

RPM软件包获取途径:

  • RPM软件包软件素材参考:www.rpm.org
  • RPM软件包一般命名格式:bash-4.1.2.-28.el6.x86_64.rpm

网络异常,图片无法展示
|


2.2 RPM命令

rpm命令功能:

  • 查询、验证RPM软件包的相关信息
  • 安装、升级、卸载RPM软件包
  • 维护重建RPM数据库信息等综合管理操作


2.3 查询

2.3.1 查询已安装的 RPM 软件信息

命令格式:

rmp -q[子选项]  [软件名]
复制代码


常用选项:

选项 功能
-qa (all) 显示当前系统中以 RPM 方式安装的所有软件列表
-q 查询指定软件是否已安装
-qi 查看指定软件包的名称、版本、许可协议、用途描述等详细信息
-ql (list) 显示指定的软件包在当前系统中安装的所有目录、文件列表
-qc (configfiles) 列出已安装的指定软件的配置文件
-qd (docfiles) 列出已安装的指定软件的软件包文档所在位置
-qR (requires) 列出已安装的指定软件依赖的软件包及文件
-qf (file) 查看指定的文件或目录是由哪个软件包所安装的


示例:

[root@localhost ~]# rpm -q tree      //查询tree是否已安装,发现已安装
tree-1.6.0-10.el7.x86_64xxxxxxxxxx
[root@localhost ~]# rpm -q httpd     //查询httpd是否已安装,发现未安装
未安装软件包 httpd 
[root@localhost ~]# rpm -qd tree     //查看tree的安装位置
/usr/share/doc/tree-1.6.0/LICENSE
/usr/share/doc/tree-1.6.0/README
/usr/share/man/man1/tree.1.gz
[root@localhost ~]# rpm -qi tree     //查看tree的版本、许可协议等详细信息
Name        : tree
Version     : 1.6.0
Release     : 10.el7
Architecture: x86_64
Install Date: 2022年01月19日 星期三 10时55分28秒
Group       : Applications/File
Size        : 89505
License     : GPLv2+
Signature   : RSA/SHA256, 2014年07月04日 星期五 13时36分46秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : tree-1.6.0-10.el7.src.rpm
Build Date  : 2014年06月10日 星期二 03时28分53秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://mama.indstate.edu/users/ice/tree/
Summary     : File system tree viewer
Description :
The tree utility recursively displays the contents of directories in a
tree-like format.  Tree is basically a UNIX port of the DOS tree
utility.
复制代码


2.3.2 查询未安装的RPM软件包文件信息

命令格式:

rmp -qp[子选项]  RPM包文件
复制代码


常用选项:

选项 功能效果
-qp 查询未安装的软件包
-qpd 查询未安装的指定软件包的文档位置
-qpi 查询未安装的指定软件包的完整名称等详细信息
-qpl 查询未安装的指定软件包的文件列表
-qpc 查询未安装的指定软件包的配置文件位置

示例:

[root@localhost Packages]# rpm -qp httpd-2.4.6-67.el7.centos.x86_64.rpm  //查询未安装的软件httpd
httpd-2.4.6-67.el7.centos.x86_64
[root@localhost Packages]# rpm -qpi httpd-2.4.6-67.el7.centos.x86_64.rpm  //查询httpd的详细信息
Name        : httpd
Version     : 2.4.6
Release     : 67.el7.centos
Architecture: x86_64
Install Date: (not installed)
Group       : System Environment/Daemons
Size        : 9823661
License     : ASL 2.0
Signature   : RSA/SHA256, 2017年08月11日 星期五 00时40分32秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-67.el7.centos.src.rpm
Build Date  : 2017年08月04日 星期五 11时21分07秒
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
复制代码


2.4 安装、升级、卸载RPM软件包

2.4.1 安装和升级

安装命令:

rpm  -i  RPM包文件
复制代码


升级命令:

rpm  -U|-F  RPM包文件
#-U:升级某个软件包,若未安装则进行安装
#-F:升级某个软件包,若未安装则直接结束
复制代码


辅助选项:

选项 说明
-h 在安装或升级软件包的过程中,以“#”号显示安装进度。
-v 显示软件安装过程中的详细信息。
- -force 强制安装某个软件包,比如要安装版本更旧的软件包。
--nodeps 在安装或升级、卸载一个软件包时,不检查与其他软件包的依赖关系,强制安装。


示例:

[root@localhost Packages]# rpm -ivh  httpd-2.4.6-67.el7.centos.x86_64.rpm  //安装httpd,需根据提示先安装依赖软件。
复制代码


注意:

因rpm不会自动解决依赖关系,实际项目中一般使用yum安装或源代码编译安装。

2.4.2 卸载

卸载命令:

rpm  -e  软件名
复制代码


示例:

[root@localhost Packages]# rpm -evh  httpd-2.4.6-67.el7.centos.x86_64.rpm  //卸载httpd
复制代码


2.5 维护RPM数据库

当RPM 数据库发生损坏,可通过重建RPM数据库修复。操作步骤:

1)重建RPM数据库

rmp --rebuilddb 或 rmp --initdb
复制代码


2)导入验证公钥

rpm --import  /mnt/RPM-GPG-KEY-CentOS-7
复制代码


2.6 解决软件包依赖关系的方法

1)安装有依赖关系的多个软件时

  • 被依赖的软件包需要先安装
  • 可同时指定多个.rpm包文件进行安装

2)卸载有依赖关系的多个软件时

  • 依赖其他程序的软件包需要先卸载
  • 可同时指定多个软件名进行卸载

3)忽略依赖关系

  • 结合“- -nodeps”选项,但可能导致软件异


相关文章
|
2月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
1月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
3月前
|
Oracle Java 关系型数据库
yum安装指定版本的openJDK
yum安装指定版本的openJDK
|
3月前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
325 0
|
5月前
yum 可以安装rpm包
【6月更文挑战第18天】yum 可以安装rpm包
628 0
|
3月前
|
关系型数据库 MySQL Linux
在CentOS上使用yum安装与使用MySQL
在CentOS操作系统上使用yum包管理器安装和配置MySQL数据库的详细步骤,包括下载MySQL的yum源配置、安装MySQL服务、启动和停止服务、设置开机自启动、获取临时密码、修改root用户密码、授权用户以及处理相关问题。同时,文章还包含了一些操作的截图,帮助用户更直观地理解安装和配置过程。
748 0
在CentOS上使用yum安装与使用MySQL
|
3月前
|
Web App开发 缓存 Ubuntu
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
189 11
|
3月前
|
网络协议 Linux
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org;"之解决办法(换源)
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)
|
3月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
188 0
|
3月前
|
jenkins Java Devops
CentOS 7上安装 Jenkins 2.346 -- yum 方式
CentOS 7上安装 Jenkins 2.346 -- yum 方式
171 0