1.RPM基本概述

1.什么是rpm?

RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询

2.如何获取rpm包

在我们刚开始学习rpm包,建议先使用本地CentOS7的镜像,但实际生产环境中都是通过联网的方式获取rpm包。(先学会,你懂的?)

我们先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt,此时你会在/mnt/Packages目录下看到很多rpm的包文件。那么就可以开始rpm包管理之旅。

3.扩展: Linux中除了rpm安装软件,是否还有安装软件方式?

分类 安装 版本
rpm包 预先编译打包,安装简单 软件版本偏低
源码包 手动编译打包,安装繁琐 软件版本随意
二进制包 解压即可使用, 安装简单 不能修改源码

2.RPM使用示例

1.rpm包如何安装

以下列出了rpm命令进行安装软件的常用参数

选项 描述
-i 安装rpm
-v 显示安装详细信息
-h 显示安装rpm进度
--force 强制重新安装
--nodeps 忽略依赖关系
#安装软件包, 需要指定软件包绝对路径
[root@xuliangwei ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@xuliangwei ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm #在软件包所在目录下可以不指定绝对路径
[root@xuliangwei ~]# cd /mnt/Packages/
[root@xuliangwei Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm #如果软件包存在, 强制再次安装
[root@xuliangwei ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm #安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装
[root@xuliangwei ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm

2.如何查询已安装好的rpm包

选项 描述
rpm -q 查看指定软件包是否安装
rpm -qa 查看系统中已安装的所有RPM软件包列表
rpm -qi 查看指定软件的详细信息
rpm -ql 查询指定软件包所安装的目录、文件列表
rpm -qc 查询指定软件包的配置文件
rpm -qf 查询文件或目录属于哪个RPM软件
rpm -qip 查询未安装的rpm包详细信息
rpm -qlp 查询未安装的软件包会产生哪些文件
#查询vsftpd这个rpm包是否安装
[root@xuliangwei ~]# rpm -q vsftpd #模糊查找系统已安装的rpm包
[root@xuliangwei ~]# rpm -qa |grep ftp #查询vsftpd软件包的相关信息
[root@xuliangwei ~]# rpm -qi vsftpd #查询rpm包所安装的文件
[root@xuliangwei ~]# rpm -ql vsftpd #查询rpm包相关的配置文件
[root@xuliangwei ~]# rpm -qc vsftpd #查询配置文件或命令来自于哪个rpm包
[root@xuliangwei ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@xuliangwei ~]# rpm -qf /usr/sbin/vsftpd #查询未安装的软件包会产生哪些文件
[root@xuliangwei ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm #查询未安装的软件包会产生哪些文件
[root@xuliangwei ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm

3.RPM包升级

选项 描述
rpm -U 如果老版本不存在则全新安装,如果存在有新版即升级
# wget  https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
# wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm #1.先安装低版本
[root@www.xuliangwei.com ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm #2.尝试安装高版本(会出现错误)
[root@www.xuliangwei.com ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm #3.使用升级的方式,完美解决替换
[root@www.xuliangwei.com ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm

3.RPM包卸载

卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

#先查询, 然后卸载
[root@www.xuliangwei.com ~]# rpm -qa |grep sh
[root@www.xuliangwei.com ~]# rpm -e zsh

4.RPM包校验(扩展了解)

软件相关的数据库存放于/var/lib/rpm目录

参数 描述
S 文件的容量大小是否被改变
M 文件的类型或者文件的属性是否被修改
5 MD5 这一种指纹加密的内容已经不同
L 路径已经被改变
U 文件的所属主已被修改
G 文件的所属组已被修改
T 文件的创建时间已被改变
[root@www.xuliangwei.com ~]# rpm -V vsftpd
S.5....T. c /etc/pam.d/vsftpd
.......T. c /etc/vsftpd/ftpusers
S.5....T. c /etc/vsftpd/vsftpd.conf
.M....... /var/ftp/pub

6.RPM包小结

如何查询 util-linux 软件包安装了哪些文件? 

如何查询 mkdir 命令是由哪个 RPM 软件包安装的?

安装 .rpm 软件包时,-i、-U、选项有何区别?

3.YUM基本介绍

1.什么是YUM

Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。(PS: YUM是生产最佳实践)

2.YUM源是什么

1要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源。(可以是本地源、网络源)

3.YUM源配置实例

1.阿里yum源

#默认系统是国外源,需要替换为国内的源
[root@www.xuliangwei.com ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \
http://mirrors.aliyun.com/repo/Centos-7.repo #扩展源,有很多软件在基本源中没有
[root@www.xuliangwei.com ~]# wget -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo

2.Nginx官方源,比如在学习Nginx时需要使用官方的yum源来安装

[root@www.xuliangwei.com ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

PS:源超找方式基本一致,zabbix,Docker、Nginx、saltstack、openstack

4.YUM实践案例

1.使用yum查询软件包的方式

[root@www.xuliangwei.com ~]# yum list
[root@www.xuliangwei.com ~]# yum list|grep ftp
[root@www.xuliangwei.com ~]# yum info ftp

2.使用yum安装软件包的方式

[root@www.xuliangwei.com ~]# yum install tree
[root@www.xuliangwei.com ~]# yum install tree -y #非交互 #安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
[root@www.xuliangwei.com ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm #直接安装网络上的rpm包
[root@www.xuliangwei.com ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

3.使用yum重新安装软件包的方式

#1.如果不小心删除vsftpd配置文件
[root@www.xuliangwei.com ~]# rm -f /etc/vsftpd/vsftpd.conf #2.可以对软件进行重新安装
[root@www.xuliangwei.com ~]# yum reinstall vsftpd #3.检查软件的配置文件
[root@www.xuliangwei.com ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf

3.使用yum更新软件包

#对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@www.xuliangwei.com ~]# yum check-update #更新acl软件
[root@www.xuliangwei.com ~]# yum update acl -y #如下的执行很危险,这代表更新整个系统所有的软件,包括内核
[root@www.xuliangwei.com ~]# yum update -y

4.使用yum删除软件包

[root@www.xuliangwei.com ~]# yum install samba -y
[root@www.xuliangwei.com ~]# yum erase samba -y
[root@www.xuliangwei.com ~]# yum remove samba -y

Day 16 软件管理的更多相关文章

  1. yum 软件管理器

    yum软件管理器 yum是一个强大的软件包管理器,能够自动解决安装时rpm包之间的依赖关系. 一.使用yum管理软件包 1.使用命令 yum help 查看使用方法 [root@majinhai ~] ...

  2. linux-源码软件管理-yum配置

    总结如下:1.源码配置软件管理2.配置yum本地源和网络源及yum 工作原理讲解3.计算机硬盘介绍 1.1 源码管理软件 压缩包管理命令: # 主流的压缩格式包括tar.rar.zip.war.gzi ...

  3. linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

    红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...

  4. XC软件管理器应用

    这是一个基于android 4.4开发的android应用-XC软件管理器.包含应用的信息查看,打开应用以及应用的卸载等功能.非常实用的一个应用,欢迎大家下载使用. 下载地址:http://downl ...

  5. IT软件管理人员的职业路线(从技术经理到总经理) - CEO之公司管理经验谈

    技术.业务和管理永远是工作的一个话题.笔者今天就根据自身的经验,通过这三个方面介绍下IT软件管理人员的职业路线.前面写过一个文(IT软件技术人员的职位路线(从程序员到技术总监) - 部门管理经验谈), ...

  6. Debian系列软件管理(第二版)

    Debian系列软件管理 1.搜索软件包信息 apt-cache search apt-cache search yum 2.查看软件包信息 apt-cache show rpm 3.安装软件 apt ...

  7. RedHat系列软件管理(第二版) --脚本安装

    RedHat系列软件管理 --脚本安装 一.解压缩 tar -zxvf webmin-1.700.tar.gz 二.进入相关目录 cd webmin-1.700 三.如果此时执行./configure ...

  8. RedHat系列软件管理(第二版) --源码包安装

    RedHat系列软件管理 --源码包安装 源码包特点: 拥有广泛的平台支持性,可以装在所有的类UNIX操作系统上,不用考虑CPU架构. 灵活性,可以在安装过程中指定特有的选项. 定制度非常高,可以自己 ...

  9. RedHat系列软件管理(第二版) --二进制软件包管理

    RedHat系列软件管理 --二进制软件包管理 Linux学习思想-Linux相对与Windows来非常透明,因此,无论是系统,还是软件,都会有本身自带,或者是Man给提供的非常详细的说明/帮助文档, ...

随机推荐

  1. 第一章 .NET基础-C#基础

    一.1.1. 基础语法 一.1.1.1. 注释符 一.1.1.1.1. 注释符的作用 l 注释 l 解释 一.1.1.1.2. C#中的3中注释符 l 单行注释 // l 多上注释 /* 要注释的内容 ...

  2. 启xin宝app的token算法破解——token分析篇(三)

    前两篇文章分析该APP的抓包.的逆向: 启xin宝app的token算法破解--抓包分析篇(一) 启xin宝app的token算法破解--逆向篇(二) 本篇就将对token静态分析,其实很简单就可以搞 ...

  3. 使用VS Code 开发.NET CORE 程序指南

    1. 前言 近两年来,很多前端的同学都开始将 VSCode 作为前端主力开发工具,其丰富的扩展给程序开发尤其是前端开发带来了很多便利,但是作为微软主力语言的 .NET,却由于有宇宙第一编辑器 Visu ...

  4. eShopOnContainers部署在docker的坑

    把eShopOnContainers(.net core 的版本是2.1)下载之后,部署到docker上,查看容器eShopOnContainers的项目都部署上去了. 用http://localho ...

  5. Servlet 常用API学习(一)

    Servlet常用API学习 一.Servlet体系结构(图片来自百度图片) 二.ServletConfig接口 Servlet在有些情况下可能需要访问Servlet容器或借助Servlet容器访问外 ...

  6. Python Web Flask源码解读(四)——全局变量

    关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https:/ ...

  7. Redis持久化的原理及优化

    更多内容,欢迎关注微信公众号:全菜工程师小辉~ Redis提供了将数据定期自动持久化至硬盘的能力,包括RDB和AOF两种方案,两种方案分别有其长处和短板,可以配合起来同时运行,确保数据的稳定性. RD ...

  8. log4j配置相对路径

    整理自网上: 一般在我们开发项目过程中,log4j日志输出路径固定到某个文件夹,这样如果我换一个环境,日志路径又需要重新修改,比较不方便, 1.log4j的FileAppender本身就有这样的机制, ...

  9. D-Big Integer_2019牛客暑期多校训练营(第三场)

    题意 设A(n) = n个1,问有多少对i,j使得\(A(i^j)\equiv0(modp)\) 题解 \(A(n) = \frac{10^n-1}{9}\) 当9与p互质时\(\frac{10^n- ...

  10. cogs 2652. 秘术「天文密葬法」(0/1分数规划 长链剖分 二分答案 dp

    http://cogs.pro:8080/cogs/problem/problem.php?pid=vSXNiVegV 题意:给个树,第i个点有两个权值ai和bi,现在求一条长度为m的路径,使得Σai ...