rpm简介

这是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件。

rpm:RPM is Redhat Package Manager(递归缩写)

rpm可以完成的操作

安装软件

卸载软件

查询软件信息

升级、降级

检验

打包程序

rpm仅仅能管理符合rpm格式的程序包,不能管理源码格式的程序

程序的格式

1)源码格式的程序:都是以压缩方式呈现的(后缀都是.tar.gz|bz2)

2)rpm格式的程序:这都是编译以后的程序 (后缀都是.rpm)

软件安装方式总结

安装软件方式有如下几种

方式1:编译安装

将源码程序按照需求进行先编译,后安装

缺点:

安装过程复杂,而且很慢

优点:

安装过程可控,真正的按需求进行安装(安装位置、安装的模块都可以选择)

方式2:rpm安装(用rpm来安装rpm后缀的安装包)

优点:

安装和卸载过程非常方便

缺点:

安装过程不可控(安装位置,安装那些功能模块)

rpm包的依赖关系非常复杂

方式3:yum安装

yum安装,其实就是自动分析rpm包的依赖关系,然后按照需要的顺序依次安装

方式4:绿色安装

rpm的操作

一、安装rpm包

格式:rpm -ivh  软件包名

选项

-i:安装软件

-v:显示安装过程

-h:用#表示安装进度(# 2%)

-vv:显示更详细的安装过程信息

-vvv:显示更更详细的安装过程信息

二、卸载rpm包

格式:rpm -e 软件名

选项:

-e:卸载软件

例子:卸载软件包ken

# rpm -e ken

三、查询已经安装的rpm包

格式:rpm -q 软件名

选项:

-q:查看一个已经安装的软件

-a:查看所有已经安装的软件all

-l:显示软件安装完成以后生成文件列表(所有文件)list

-i:查看软件包的相关信息 info

-d:显示该软件所生成的说明性质的文档列表docfiles

-c:查看软件所生成的配置文件列表configfiles

--scripts:查看软件相关的脚本

补充:

安装前脚本(preinstall)

安装后脚本(postinstall)

卸载前脚本(preuninstall)

卸载后脚本(postuninstall)

例子:查看ken是否安装

# rpm -q ken

例子:查看当前系统所有已经安装的软件

# rpm -qa

例子:统计当前系统一共安装了多少个软件

四、查看文件是哪个软件生成的

rpm -qf /path/to/file

五、升级软件

选项

-U:升级或安装软件

-F:仅仅是升级操作

使用格式;

rpm -Fvh 软件包名

rpm -Uvh 软件包名

软件管理yum

也是一个rpm包的管理工具,可以实现自动解决rpm包的依赖关系(自动安装依赖顺序进行rpm包的安装)

为何rpm包会有依赖关系?

制作rpm的人,在制作rpm包的时候,就将这个rpm的所依赖的软件的信息保存在这个rpm包的内部

yum的工作原理

1. 需要首先创建一个yum仓库(rpm包仓库、软件仓库)

1)仓库其实就是一个目录

2)仓库中存放的是rpm包

3)仓库中还保存了一个文件,文件中记录了该仓库中所有rpm包的元数据信息

4)元数据信息包括

软件名

软件版本

软件是否已经安装

软件的依赖关系

2. 用 yum 来从仓库中找软件进行安装的过程(比如要安装软件A,A依赖B 和C, B依赖C D)

1)yum首先会扫描保存元数据信息的文件,检查A是否已经安装,如果已经安装,那提示已经安装

2)如果A尚未安装,那么扫描A的依赖关系信息,会发现A 依赖B 和C

3)yum会再次扫描元数据文件,检测B C 是否安装,如果都已经安装,那么会开始开始安装A

4)如果B C尚未安装,那么会检测 B C的依赖关系,会发现B依赖C D

5)yum会再次扫描元数据文件,检测C D是否安装,如果都已经安装,那么会开始开始安装B,然后安装C,,然后安装A

yum仓库

本地:将本地的一个目录做成yum仓库,只有当前系统可以

网络:通过网络将服务器上的一个目录作为yum仓库,网络中的全部主机都可以用

使用yum仓库的方式,就是修改yum的配置文件

yum的配置文件

主:/etc/yum.conf

子:/etc/yum.repos.d/*.repo

/etc/yum.conf文件

cachedir=/var/cache/yum/$basearch/$releasever

指定缓存文件的保存位置,默认:/var/cache/yum/x86_64/7/

keepcache=0

指定是否保留缓存文件

用yum安装软件过程中会从yum仓库下载并缓存多个资源

1)会将yum仓库的元数据文件缓存到配置文件所指定的路径中

2)会将要安装的软件及其依赖的软件一并缓存到配置文件指定的目录中

yum配置文件的构成

[localRpm]      <<< 指定yum仓库的id,可以随便写,但是中间不能有空格

name=xxx        <<< 指定yum仓库的名称,可以随便写

enabled=0|1     <<< 指定是否使用该yum仓库,0表示不使用;1表示使用

gpgcheck=0|1    <<< 指定是否对rpm包做完整性和来源合法性验证,0表示不做验证;1表示必须做验证

gpgkey=         <<< 指定公钥文件(如果gpgcheck=1,那么该项不能省略)

baseurl=        <<< 指定yum仓库的url

yum仓库的url的表示方式

注意:在指定yum仓库的时候,其实不是指向rpm包的目录,而是执行repodata所在目录

本地yum仓库

file://

例子:比如我的yum仓库 /myrpm,此时yum仓库的表示方式就是file:///myrpm

网络yum仓库

http://

创建本地yum仓库

使用光盘中的rpm包作为yum仓库

第一步:挂载光盘

# mount /dev/cdrom /media

第二步:备份yum自带的配置文件

# cd /etc/yum.repos.d

# mkdir bak

# mv *.repo bak

第三步:创建yum的配置文件,使用光盘作为yum仓库

# vim 1.repo

[myrepo]

name=my repo

enabled=1

gpgcheck=0

baseurl=file:///media

第四步:执行yum命令检测结果

# yum clean all    <<< 清空yum缓存的全部数据

# yum repolist     <<< 检查yum仓库中有多少个可用的rpm包

yum使用

1. 安装软件

yum -y install 软件1 软件2 软件3 ....

2. 卸载软件

yum -y remove 软件1 软件2 软件3 ....

3. 管理包组

grouplist:查看系统中的全部的包组

groupinfo 包组名:查看指定包组的信息(包组的作用、包含的软件)

groupinstall 包组名:安装指定的包组

groupremove 包组名:卸载指定的包组

4. 管理yum的缓存数据

clean [ packages | metadata | all ]

all:清除所有数据

packages:仅仅清除rpm包

metadata:仅仅清理缓存元数据

5. 查看所有已经安装和尚未安装rpm包

yum list all 或者yum list 可以列出所有的软件包

6. yum list available:仅仅显示可以安装但是尚未安装的rpm包

7. yum list  installed:仅仅显示已经安装rpm包

@:表示已经安装rpm

8. 查看yum仓库的信息

yum repolist

网络yum源的使用方式

国内主流的网络yum仓库地址

mirrors.aliyun.com

mirrors.163.com

mirrors.sohu.com

rpm的yum源

centos提供的

epel提供的:

例子:使用aliyun提供的epel 和centos的yum源

cd /etc/yum.repos.d

mkdir bak

mv *.repo bak

vim new.repo

[centos]

name=centos repo

enabled=1

gpgcheck=0

baseurl=http://mirrors.163.com

[epel]

name=epel repo

enabled=1

enabled=1

baseurl=http://xxxx

制作一个网络yum源

思路:在网络上准备一个主机,在其中安装一个web服务器软件(比如apache),然后创建一个目录,在这个目录中准备上yum仓库的全部资源,如果用户可以通过网络访问到该主机的这个目录,那么这个目录就成为网络yum仓库

实现过程

第一步:配置yum源主机

1)安装配置apache

2)配置yum仓库相关资源

1. 创建一个目录,作为存储yum资源的目录

# mkdir /usr/local/apache/htdocs/mysource

2. 挂载光盘

# mount /dev/cdrom /mnt

3. 将光盘中的资源复制到前面所创建的目录下

# cp /mnt/* /usr/local/apache/htdocs/mysource -rvf

4. 用浏览器访问一下yum仓库,检查是否可以看到相关文件

http://ip/mysource

第二步:配置客户端主机

修改yum配置文件

1)备份原有的配置文件

# mkdir bak

# mv *.repo bak

# vim a.repo

[]

name

enabled=

gpgcheck=

baseurl=http://ip/mysource

2)测试一下

# yum repolist

yum和rpm的更多相关文章

  1. linux基础-第十六单元 yum管理RPM包

    第十六单元 yum管理RPM包 yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删 ...

  2. yum下载rpm

    yum下载rpm yum update --downloadonly --downloaddir=/root/rpm_package/   python-pip

  3. yum、RPM常用的命令(转)

    # yum install xxx            安装xxx软件# yum info xxx                查看xxx软件的信息# yum remove xxx         ...

  4. Linux网络原理及基础设,yum管理RPM包

    一:ifconfig命令 1,ifconfig命令的功能:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址. 2. 使用ifup和ifdown命令启动和停止网卡(详见linux系统管理P42 ...

  5. 一个极为简单的方法实现本地(离线)yum安装rpm包

    首先,我要关心的问题仍然是如何离线或者本地yum安装rpm包?这其中的关键当然是获取rpm包到本地,这其中的麻烦事是去解析依赖关系.然而,我发现一个极为简单的方法可以不用操心rpm包依赖关系,不多不少 ...

  6. yum与rpm的区别以及详细介绍

    rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时. Yum(全称为 ...

  7. linux软件管理之yum管理rpm包

    YUM 使用官方源 ==================================================================================== 阿里镜像站 ...

  8. Linux命令yum和rpm

    yum命令使用 可以简化软件安装命令 yum可以做软件的 1自动安装,安装软件的时候会自动安装需要的依赖 yum install 软件名如安装epel源yum install epel-release ...

  9. linux中yum与rpm区别

    一.源代码形式 1.      绝大多数开源软件都是直接以原码形式发布的 2.      源代码一般会被打成.tar.gz的归档压缩文件 3.      源代码需要编译成为二进制形式之后才能够运行使用 ...

  10. 【Linux】CentOs中yum与rpm区别

    一.源代码形式 1.      绝大多数开源软件都是直接以原码形式发布的 2.      源代码一般会被打成.tar.gz的归档压缩文件 3.      源代码需要编译成为二进制形式之后才能够运行使用 ...

随机推荐

  1. 动态dp学习笔记

    我们经常会遇到一些问题,是一些dp的模型,但是加上了什么待修改强制在线之类的,十分毒瘤,如果能有一个模式化的东西解决这类问题就会非常好. 给定一棵n个点的树,点带点权. 有m次操作,每次操作给定x,y ...

  2. 【系统架构】软件核心复杂性应对之道-领域驱动DDD(Domain-Driven Design)

    前言 领域驱动设计是一个开放的设计方法体系,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题,本文将介绍领域驱动的相关概念. 一.软件复杂度的根源 1.业务复杂度(软件的 ...

  3. source insight如何删除没用的project 及其常见问题

    4年09月05日 ⁄ 综合 ⁄ 共 439字 ⁄ 字号 小 中 大 ⁄ 评论关闭 我正在中文路径下加载了一个工程,结果一点击打开,source insight程序就会出现错误提示,要求关闭.我想可能是 ...

  4. python 线程/线程锁/信号量

    单线程 #常规写法 import threading import time def sayhi(num): # 定义每个线程要运行的函数 print("running on number: ...

  5. java io系列17之 System.out.println("hello world")原理

    我们初学java的第一个程序是"hello world" public class HelloWorld { public static void main(String[] ar ...

  6. MVCC 能解决幻读吗?

    MySQL通过MVCC(解决读写并发问题)和间隙锁(解决写写并发问题)来解决幻读 MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ). 未提交读(REA ...

  7. 第十六节: EF的CodeFirst模式通过Fluent API修改默认协定

    一. 简介 1. 优先级:Fluent API > data annotations > default conventions. 2. 所有的Fluent API配置都要在 OnMode ...

  8. Geometric regularity criterion for NSE: the cross product of velocity and vorticity 2: $u\times \om\cdot \n\times \om$

    在 [Lee, Jihoon. Notes on the geometric regularity criterion of 3D Navier-Stokes system. J. Math. Phy ...

  9. 【汇编语言】Doxbox 0.74 修改窗口大小

    1.打开Doxbox安装路径,找到DOXBox 0.74-2 Option.bat,双击打开. 2.找到windowresolution和output,将其值修改为下图中的值. 注意:图中,1280x ...

  10. LESS知识总结

      知识体系 1.认识less 2.使用less 3.变量( variables  ) 4.混合 ( mixins  ) 5.嵌套规则 ( nested-rules  ) 6.运算(operation ...