安装及管理程序(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”选项,但可能导致软件异


相关文章
|
1月前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
141 0
|
3月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
2月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
4月前
|
Oracle Java 关系型数据库
yum安装指定版本的openJDK
yum安装指定版本的openJDK
|
6月前
yum 可以安装rpm包
【6月更文挑战第18天】yum 可以安装rpm包
693 0
|
4月前
|
关系型数据库 MySQL Linux
在CentOS上使用yum安装与使用MySQL
在CentOS操作系统上使用yum包管理器安装和配置MySQL数据库的详细步骤,包括下载MySQL的yum源配置、安装MySQL服务、启动和停止服务、设置开机自启动、获取临时密码、修改root用户密码、授权用户以及处理相关问题。同时,文章还包含了一些操作的截图,帮助用户更直观地理解安装和配置过程。
1137 0
在CentOS上使用yum安装与使用MySQL
|
4月前
|
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
226 11
|
4月前
|
网络协议 Linux
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org;"之解决办法(换源)
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)
|
5月前
|
SQL Python
你需要在你的系统上安装`sqlmap`。这通常可以通过下载其源代码并编译,或者使用包管理器(如`apt`、`yum`或`pip`,但请注意,`pip`通常不直接提供`sqlmap`)来完成。
你需要在你的系统上安装`sqlmap`。这通常可以通过下载其源代码并编译,或者使用包管理器(如`apt`、`yum`或`pip`,但请注意,`pip`通常不直接提供`sqlmap`)来完成。
|
4月前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
497 0