Linux(rpm,yum安装及管理程序)

目录

1.应用程序与系统命令

2.RPM

2.1rpm软件包管理工具

[2.2 rpm命令的形式](#2.2 rpm命令的形式)

2.3查询rpm软件包

​2.4安装、升级、卸载rpm软件包

2.5维护数据库

3.yum

[3.1 配置本地yum源仓库](#3.1 配置本地yum源仓库)

[3.2 yum常用操作命令](#3.2 yum常用操作命令)

[3.3 源码编译安装软件](#3.3 源码编译安装软件)


1.应用程序与系统命令

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

典型应用程序的目录结构

常见的软件包封装类型

2.RPM

2.1rpm软件包管理工具

RPM软件包管理器(Red-Hat Package Manager

*由Red Hat公司提出,被众多Linux发行版所采用

*建立统一的文件数据库

*详细记录软件包安装、卸载、升级等变化信息

*自动分析软件包依赖关系

RPM包命名规则

2.2 rpm命令的形式

rpm命令能够实现几乎所有RPM软件包的管理功能

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

rpm命令功能:

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

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

*维护重建RPM数据库信息等综合管理操作

2.3查询rpm软件包

查询已安装的rpm软件信息

rpm -q 【子选项】 【软件名】

常用选项

-qa、-qi、-ql、-gf、-qc、-qd

查询RPM软件包文件中的信息

rpm -qp[子选项] rpm包文件

常用选项

-qpi、-qpl、-qpc、-qpd

* 使用"-q"选项时,实际上调用了=="/usr/bin/rpmquery"==程序完成查询工作

* 软件包查询主要包括两种情况:

(1)查询系统中已经安装的软件包信息;

(2)查询尚未安装的RPM包文件的信息;

* 对于"-qa "查询选项,命令参数(即软件包名)是非必须的;

* 一般查询时,软件名不需要指定版本号.

[root@localhost ~]# rpm -q rpm #查询rpm包是否已经安装
rpm-4.11.3-48.el7_9.x86_64
[root@localhost ~]# rpm -q yum #查询yum软件包是否已经安装
yum-3.4.3-168.el7.centos.noarch
[root@localhost ~]# systemctl status nfs #查看nfs服务的状态
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@localhost ~]# rpm -q nfs-utils #查询nfs-utils软件包是否已经安装
nfs-utils-1.3.0-0.68.el7.2.x86_64
[root@localhost ~]# 

rpm -qa命令

[root@localhost ~]# rpm -qa |wc -l #统计当前系统中,以rpm方式安装的软件包有多少个

1489

rpm -qi命令

[root@localhost ~]# rpm -qi yum #显示已安装的yum软件包的详细信息
Name        : yum
Version     : 3.4.3
Release     : 168.el7.centos
Architecture: noarch
Install Date: 2024年04月02日 星期二 22时29分36秒
Group       : System Environment/Base
Size        : 5829237
License     : GPLv2+
Signature   : RSA/SHA256, 2020年10月15日 星期四 03时21分12秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : yum-3.4.3-168.el7.centos.src.rpm
Build Date  : 2020年10月02日 星期五 01时03分49秒
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://yum.baseurl.org/
Summary     : RPM package installer/updater/manager
Description :
Yum is a utility that can check for and automatically download and
install updated RPM packages. Dependencies are obtained and downloaded
automatically, prompting the user for permission as necessary.
[root@localhost ~]# 

rpm -ql命令

[root@localhost ~]# rpm -ql yum #显示已安装的指定软件yum的文件列表
/etc/logrotate.d/yum
/etc/yum
/etc/yum.conf
/etc/yum.repos.d
/etc/yum/fssnap.d
/etc/yum/pluginconf.d
/etc/yum/protected.d
/etc/yum/vars
/etc/yum/version-groups.conf
/usr/bin/yum
/usr/lib/python2.7/site-packages/rpmUtils

rpm -qc命令

root@localhost ~]# rpm -qc yum #列出已安装的指定软件yum的配置文件
/etc/logrotate.d/yum
/etc/yum.conf
/etc/yum/version-groups.conf
[root@localhost ~]# rpm -qd yum
/usr/share/doc/yum-3.4.3/AUTHORS
/usr/share/doc/yum-3.4.3/COPYING
/usr/share/doc/yum-3.4.3/ChangeLog
/usr/share/doc/yum-3.4.3/INSTALL
/usr/share/doc/yum-3.4.3/PLUGINS
/usr/share/doc/yum-3.4.3/README
/usr/share/doc/yum-3.4.3/TODO
/usr/share/doc/yum-3.4.3/comps.rng
/usr/share/man/man5/yum.conf.5
/usr/share/man/man8/yum-shell.8
/usr/share/man/man8/yum.8

[root@localhost ~]# rpm -qd yum #列出已安装的指定软件yum的软件包文档所在位置
/usr/share/doc/yum-3.4.3/AUTHORS
/usr/share/doc/yum-3.4.3/COPYING
/usr/share/doc/yum-3.4.3/ChangeLog
/usr/share/doc/yum-3.4.3/INSTALL
/usr/share/doc/yum-3.4.3/PLUGINS
/usr/share/doc/yum-3.4.3/README
/usr/share/doc/yum-3.4.3/TODO
/usr/share/doc/yum-3.4.3/comps.rng
/usr/share/man/man5/yum.conf.5
/usr/share/man/man8/yum-shell.8
/usr/share/man/man8/yum.8
[root@localhost ~]# rpm -qR yum #列出已安装的指定软件yum依赖的软件包及文件
/usr/bin/python
config(yum) = 3.4.3-168.el7.centos
cpio
diffutils
pygpgme
pyliblzma
python >= 2.4
python(abi) = 2.7
python-iniparse
python-sqlite
python-urlgrabber >= 3.10-8
pyxattr
rpm >= 0:4.11.3-22
rpm-python
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
yum-metadata-parser >= 1.1.0
yum-plugin-fastestmirror
rpmlib(PayloadIsXz) <= 5.2-1

rpm -qf命令

[root@localhost ~]# rpm -qf /etc/yum.conf #查询已安装的指定软件yum,
属于哪个安装包(-qf命令参数是文件名或目录名)
yum-3.4.3-168.el7.centos.noarch

rpm -qpi命令

[root@localhost /mnt/Packages]# rpm -qpi zip-3.0-11.el7.x86_64.rpm   #查看指定软件包的详细信息
警告:zip-3.0-11.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : zip
Version     : 3.0
Release     : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Archiving
Size        : 815173
License     : BSD
Signature   : RSA/SHA256, 2016年11月21日 星期一 05时04分58秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : zip-3.0-11.el7.src.rpm

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

安装或升级rpm软件

rpm [选项] rpm包文件...

常用选项

-i 、-u 、-f

卸载指定的rpm软件

rpm -e 软件名

辅助选项

--force、--nodeps、-h、-v

2.5维护数据库

* RPM数据库:用于记录在Linux系统中安装、卸载、升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预.

* 当RPM数据库发生损坏,且Llinux系统无法自动完成修复时,将导致无法使用rpm命令正常地安装、卸载及查询软件包,这时可以使用--rebuildbd或--initdb重建rpm数据库.

* 在Linux/Unix应用领域,相当一部分软件厂商会对发布的软件包进行数字签名,以确保软件的完整性、合法性。对于用户来说。可以利用软件官方提供的公钥文件,自动对下裁的软件包进行验证,如果在安装软件时,出现验证失败的提示,则表示该软件包可能已经被非法篡改。

注:有的软件没有秘钥也可以安装,有的软件必须要有秘钥才能安装,如果说没有密钥则会安装报错,此时就需要向RPM数据库中导入位于光盘根目录下的公钥文件。

3.yum

3.1 配置本地yum源仓库

配置本地yum源仓库步骤如下所示:

(1)挂载光盘镜像到指定位置/mnt;

(2)进入yum仓库配置目录,备份之前的*.repo原文件;

(3)创建本地yum源配置文件

vim local.repo

(4)删除yum缓存并更新

(5)测试yum源安装是否成功

yum install -y ####软件名

3.2 yum常用操作命令

yum info命令

[root@localhost yum.repos.d]# yum install -y htpd
已安装的软件包
名称    :httpd
架构    :x86_64
版本    :2.4.6
发布    :97.el7.centos.5
大小    :9.4 M
源    :installed
来自源:local
简介    : Apache HTTP Server
网址    :http://httpd.apache.org/
协议    : ASL 2.0
描述    : The Apache HTTP Server is a powerful, efficient, and extensible
         : web server.

yum list命令

[root@localhost ~]# yum list available
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile

yum search命令

[root@localhost ~]# yum search all httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
===================================== 匹配:httpd =====================================
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
httpd.x86_64 : Apache HTTP Server

yum whatprovides命令

[root@localhost yum.repos.d]#  yum whatprovides ifconfig #查询ifconfig命令属于哪个软件包
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
源    :@anaconda
匹配来源:
文件名    :/usr/sbin/ifconfig

3.3 源码编译安装软件

步骤

(1)安装软件依赖包
  yum install -y gcc gcc-c++ make zlib-devel.x86_64 #(用于压缩文件)pcre-devel.x86_64 #(用于正则表达式)

(2)下载,tar解压软件包
   70  cd /opt
   71  rz -E
   72  ls
   73  tar xf nginx-1.22.0.tar.gz 
   74  ls


(3)配置软件模块(安装路径、开启或关闭模块功能、管理服务进程的用户设定)
   86  cd /opt
   87  ls
   88  cd nginx-1.22.0/
   89  ./configure --prefix=/usr/local/nginx
#configure是配置模块的目录,这是更改的安装路径位置/usr/local/nginx

(4)编译,将源码转换为可执行的二进制文件
  90  make (-j2)#默认是单核编译,-j2代表2个cpu编译

(5)安装
  92  make install
相关推荐
猪蹄手3 分钟前
网络层协议IP
服务器·网络·tcp/ip
Peter_chq16 分钟前
【计算机网络】数据链路层
linux·c语言·开发语言·网络·c++·后端·网络协议
御风_2126 分钟前
Linux——Uboot命令使用
linux·ubuntu
麻瓜也要学魔法30 分钟前
网络地址转换
服务器·网络
找藉口是失败者的习惯33 分钟前
AWS服务器介绍
服务器·云计算·aws
田鑫科技34 分钟前
高端服务器可以防护哪些攻击?
运维·服务器
catchtimea34 分钟前
将服务器上的服务映射到本地使用
运维·服务器
人工糖精37 分钟前
nfs服务器
linux·运维·服务器
w979102839 分钟前
网络编程并发服务器的应用
运维·服务器·网络
for_syq1 小时前
Android res复制脚本
android·linux·服务器