rpm简介

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

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

rpm可以完成的操作

1、安装软件。2、卸载软件。3、查询软件信息。4、升级、降级。5、检验。6、打包程序

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

程序的格式

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

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

软件安装方式总结

安装软件方式有如下4种

方式1:编译安装,用的多

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

缺点:安装过程复杂,而且很慢

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

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

优点:安装和卸载过程非常方便

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

rpm包的依赖关系非常复杂,依赖关系(安装的先后)需手动解决

方式3:yum安装(解决了依赖关系)

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

方式4:绿色安装 ,解压后可直接使用。

rpm的操作

一、安装rpm包

格式:# rpm -ivh  软件包名

  选项

  -i:安装软件

  -v:显示安装过程

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

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

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

  # htop 查看详细信息 ,和 # top 类似。

 传包: [root@ken ~]# yum install lrzsz -y     

        # rz  : window文件传送到linux中  

        # sz    : 把linux文件传送到window        # ls

以下的报错表明此安装文件的安装过程存在别的依赖程序:

# systemctl restart redis      # redis-cli

>set name ken       >get name       >exit  (缓存)

二、卸载rpm包

格式:rpm -e 软件名(包名)

  选项:

  -e:卸载软件

  例子:卸载软件包ken

  # rpm -e ken

  # rpm -e htop

三、查询已经安装的rpm包 (用的最多,需要掌握)

格式:rpm -q 软件名

选项:

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

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

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

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

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

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

--scripts:查看软件相关的脚本   (# rpm -q --scripts httpd)

补充:

安装前执行脚本(preinstall)

安装后脚本(postinstall)

卸载前脚本(preuninstall)

卸载后脚本(postuninstall)

例子:查看ken是否安装

# rpm -q ken

# rpm -q mysql

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

# rpm -qa    查询所有已安装和未安装的软件

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

# rpm -qa  |  wc -l    (图形化比命令窗口的软件数目更多)

例子:查询下载apache后生成多少文件: # rpm -ql httpd   (查看主配置所属文件,子配置文件,log日志文件,安装目录等)

# rpm -qc httpd  or  # rpm -qd httpd  |  grep log    日志相关的文件

查看httpd 的日志文件位置: # ls /var/log/httpd/    (一般的日志文件都存放于 /var/log/messages)

# rpm -qf `which commond`   查找文件所依赖的包

四、查看文件是哪个软件生成的(要记住)

rpm -qf /path/to/file

当系统中不存在lsof程序,需要安装此文件时,需要知道lsof文件依赖的程序,# rpm -qf  `which lsof `

# yum search lsof

五、升级软件 (了解一下)

选项

-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仓库,网络中的全部主机可以ping通ip,则都可以用

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

yum的配置文件

主:# vim /etc/yum.conf

子:/etc/yum.repos.d/*.repo   (*.repo :所有以 .repo 结尾的文件)

# vim /etc/yum.conf文件

cachedir=/var/cache/yum/$basearch/$releasever  :下载文件的缓存位置

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

keepcache=0     (0:关闭;1:开启)

指定是否保留缓存文件

gpgcheck=1  是否开启校验 (1:开启)

# cd /etc/yum.repos.d/       # ls

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

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

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

(挂载一个新的yum元要先清空其缓存)

yum配置文件的构成(重点,背下来)

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

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

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

gpgcheck=0|1    <<< 指定是否对rpm包做完整性和来源合法性验证,0表示不做验证;1表示必须做验证(1 会开机变慢,一般不建议开启)

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

baseurl=        <<< 指定yum仓库的url (本地或网络)

yum仓库的url的表示方式

注意:在指定yum仓库的时候是执行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         or  # mv C* bak

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

# vim 1.repo

[myrepo]

name=my repo

enabled=1

gpgcheck=0

baseurl=file:///media

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

# yum clean all    <<< 清空yum缓存的全部数据,每换一个新的yum源都要执行此操作

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

然后就可以下载安装本地源中存在的程序了。如:# yum install unzip -y

  指定优先级,则可默认优先使用本地源下载程序。

yum使用

1. 安装软件

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

2. 卸载软件

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

3. 管理包组

grouplist:查看系统中的全部的包组   # yum grouplist  统计包组数目# yum grouplist | wc -l

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

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

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

CentOS7: 命令行界面升级为图形化界面

yum groupinstall "X Window System"  -y
yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y

这时,我们可以通过命令 startx 进入图形界面,第一次进入会比较慢,请耐心等待。(可能需要重启,命令为reboot)

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  清华大学镜像源

搜索阿里云yum 仓库地址--epel--7Server/--x86_64(找到repodate)--复制当前网络链接

# vim test.repo

# yum clean all    # yum repolist

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 list | grep "redis"

  # vim 7yum.repo.bak  # sz 7yum.repo.bak

制作一个网络yum源

 学apache 时做详解。

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

通过本地yum源下载安装:# yum localinstall redis-3.2.12-2.el7.x86_64.rpm -y

由多个 rpm 制作yum 仓库:# yum install createrepo -y

# yum install createrepo -y

最后一步操作错误,# cd /etc/yum.repos.d/      # ls /root  # cat net1.repo  # vim net1.repo

:wq      # yum clean all  # yum repolist

实现过程

第一步:配置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

rpm和yum软件管理的更多相关文章

  1. 末学者笔记--rpm和yum软件管理(Linux)

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

  2. rpm和yum软件管理(week2_day5)--技术流ken

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

  3. rpm与yum软件管理

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

  4. Linux rpm和yum软件管理

    rpm是管理程序的一个小工具,rpm常来用作查询 什么源码包:大多数都是tar.gz,bz.bz2结尾的包 zip结尾的包 压缩格式为 zip –r 命名.zip ./* 解压格式为 unzip 命名 ...

  5. rpm 和 yum 软件管理

    软件安装总结: 安装软件方式有如下几种: 方式1:编译安装 将源码程序按照需求进行先编译,后安装 缺点: 安装过程复杂,而且很慢 优点: 安装过程可控,真正的按需求进行安装(安装位置.安装的模块都可以 ...

  6. yum 软件管理器

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

  7. Linux之yum软件管理

    YUM yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题. 它能便于管理大量系统的更新问题 yum特点 *可以 ...

  8. linux系统rpm和yum软件包管理

    软件安装方式总结 安装软件方式有如下几种: 方式1:编译安装 将源码程序按照需求进行先编译,后安装 缺点:装过程复杂,而且很慢 优点:安装过程可控,真正的按需求进行安装(安装位置.安装的模块都可以选择 ...

  9. linux yum软件管理

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

随机推荐

  1. 【荐2】Total Commander 7.57 配置选项 个性化设置备份,,,开启时如何自动最大化???(二)

    最近安装了下新版的“Total Commander 7.56”,发现它的默认设置是如此的不好用,现把对其个性化设置备份如下(符合大部分用户的操作习惯): 默认打开Total Commander 7.5 ...

  2. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

  3. NRF51822之修改设备名(掉电不保存)

    主要代码 /**@brief Function for handling the Application's BLE Stack events. * * @param[in] p_ble_evt Bl ...

  4. [译] 二、开始iOS编程之前,你还需要做什么?

    声明:本文翻译自AppCoda网站的文章:What You Need to Begin iOS Programming?,作者是创建者Simon Ng.如有异议,请联系博主.   更新:帖子已经重新被 ...

  5. malloc/free和new/delete的区别

    转自:http://blog.csdn.net/chance_wang/article/details/1609081 malloc与free是C++/C语言的标准库函数,new/delete是C++ ...

  6. iframe的使用小贴士

    1.之前又说到“根据内容计算iframe的高度” 链接 2.现在想说的是,一般iframe页面都是嵌套在父页面当中,所以在一般在iframe里面做相关动作时默认都是iframe页面的,不会影响到父页面 ...

  7. 【Jenkins】Linux搭建Jenkins平台

    为了配合上一篇的ant+jenkins做持续集成,需要在linux环境下搭建一个jenkins平台.网上有很多安装的例子,我主要记录一下自己遇到的问题,真真的是特别惆怅的,每次我遇到的问题都格外多. ...

  8. webpack详细配置解析

    阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本 ...

  9. 获取oracle 随机数

    http://www.cnblogs.com/lgzslf/archive/2008/11/29/1343685.html select substr(dbms_random.random,2,2) ...

  10. 768A Oath of the Night&#39;s Watch

    A. Oath of the Night's Watch time limit per test 2 seconds memory limit per test 256 megabytes input ...