RPM:Red Hat package manager(RedHat软件包管理工具),现在为RPM is Package Manager好比windows里的文件扩展名为·exe的软件包。

RPM的包装包到底是什么啦?

它是二进制包(binary)以及源代码包(source)的两种。二进制包里边包括了已经通过编译,你只需要下载和解包,便可以在计算机上运行了。而源代码包里只有程序的原始代码,需要我们自己在计算机上先编译以后才可以运行程序。而我这里讲到的源码包是通过rpm包的自动编译和安装。Rpm编译的源代码包通常以src.rpm作为后缀名。

程序包的版本:

比如 testapp-version

注解:

version: x.y.z=major.minor.release

major ß--à x :主版号

minor ß--à y:次版号

release ßà release : 发行号,修订版

RPM 包的命名:name-Major.minor.Release.arch.rpm

其中Arch:是适用的硬件平台

如 X86系列:i386,i486,i586,i686等

noarch :跟硬件平台无关

RPM包还有分包机制

核心包,主包:命名与源程序包名一致

如 bash-4.3.2-1.centos6.x86_64.rpm

子包(支包):如 bash-devel-4.3.2-1.centos.x86_64.rpm

devel是 develop 的缩写 开发的意思, 有devel的包就是开发包,你要编译安装某些软件会提示你缺少那些开发包然后就可以根据这个装上.

RPM安装语法:

rpm {-i|--install} [install-options] PACKAGE_FILE ...

常用命令组合:

  1. ivh:安装显示安装进度--install--verbose--hash
  2.  
  3. Uvh:升级软件包--Update
  4.  
  5. qpl:列出RPM软件包内的文件信息[Query Package list];
  6.  
  7. qpi:列出RPM软件包的描述信息[Query Package install package(s)];
  8.  
  9. qf:查找指定文件属于哪个RPM软件包[Query File];
  10.  
  11. Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
  12. e:删除包

相应的案例可以形象的带大家去理解rpm命令的运用,不过大家还是多多 man rpm 一下,用到的时候,多留意下。

rpm -q samba //查询程序是否安装

rpm -ivh  /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm    //指定安装目录

rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm    //用来检查依赖关系;并不是真正的安装;
rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本

rpm -qa | grep httpd      #[搜索指定rpm包是否安装]--all搜索*httpd*
rpm -ql httpd         #[搜索rpm包]--list所有文件安装目录

rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息
rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--file
rpm -qpR file.rpm       #[查看包]依赖关系
rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -ivh file.rpm  #[安装新的rpm]--install--verbose--hash
rpm -ivh

rpm -Uvh file.rpm    #[升级一个rpm]--upgrade
rpm -e file.rpm      #[删除一个rpm包]--erase

常用参数:

-i, --install                     install package(s)
-v, --verbose                     provide more detailed output
-h, --hash                        print hash marks as package installs (good with -v)
-e, --erase                       erase (uninstall) package
-U, --upgrade=<packagefile>+      upgrade package(s)
--replacepkge                    无论软件包是否已被安装,都强行安装软件包
--test                            安装测试,并不实际安装
--nodeps                          忽略软件包的依赖关系强行安装
--force                           忽略软件包及文件的冲突

Query options (with -q or --query):
-a, --all                         query/verify all packages
-p, --package                     query/verify a package file
-l, --list                        list files in package
-d, --docfiles                    list all documentation files
-f, --file                        query/verify package(s) owning file

RPM源代码包装安装

.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:

rpm --recompile vim-4.6-4.src.rpm   #这个命令会把源代码解包并编译、安装它,如果用户使用命令:

rpm --rebuild vim-4.6-4.src.rpm  #在安装完成后,还会把编译生成的可执行文件重新包装成i386.rpm的RPM软件包。

Yum专题的随笔

一· 首先得了解我们为什么要了解yum,它有何特殊地位???

Yum是通过分析rpm的标题数据后,根据各软件的相关性制作出依赖时的解决方案,通俗的讲就是rpm安装一个软件,它只是安装这个软件包,而与这个软件有依赖关系的软件包,是不会安装的。可是我们的yum就是在rpm的基础上,既把你想要安装的软件包给安装了,还会自动分析与这个软件包相依赖的所有软件包,并且一一下载并为你安装好。这是多么人性化,主要是省了我们不少时间。

二. 利用yum进行查询,安装,升级与删除功能

yum的使用真的很简单,就是用yum这个命令来。

  1. 查询功能: yum [list | info | search |provides |whatprovides] 参数

[root@localhost ~]# yum [option] [查询工作项目] [相关参数] 包名

[option] : 主要的选项,包括有:

-y : 当yum 要等待用户输入时,这个选项可以自动安装

--installroot=/some/path:将该软件安装在 /some/path 中而不使用默认路径

[查询工作项目] [相关参数]:

search :搜索某个软件名称或者是描述的重要关键字;

list :列出目前yum所管理的所有软件名称与版本,有点类似 rpm -qa ;

info :同上,不过有点类似于 rpm -qf 的功能

范例 1 :搜索磁盘阵列(raid)相关的软件有哪些?

[root@localhost ~]# yum search raid

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

========================================= N/S Matched: raid ==========================================

dmraid.i686 : dmraid (Device-mapper RAID tool and library)

dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)

范例 2 : 找出mdadm 这个软件的功能为何?

[root@localhost ~]# yum info mdadm

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

Installed Packages

Name : mdadm

Arch : x86_64

Version : 3.3

Release : 6.el6

Size : 819 k

Repo : installed

From repo : anaconda-CentOS-201410241409.x86_64

Summary : The mdadm program controls Linux md devices (software RAID arrays)

URL : http://www.kernel.org/pub/linux/utils/raid/mdadm/

License : GPLv2+

Description : The mdadm program is used to create, manage, and monitor Linux MD (software

: RAID) devices. As such, it provides similar functionality to the raidtools

: package. However, mdadm is a single program, and it can perform

: almost all functions without a configuration file, though a configuration

: file can be used to help with some common tasks.

范例 3 : 列出yum 服务器上面提供的所有软件名称

[root@localhost ~]# yum list

zabbix22-server-mysql.x86_64 2.2.1-5.el6 epel

zabbix22-server-pgsql.x86_64 2.2.1-5.el6 epel

zabbix22-web.noarch 2.2.1-5.el6 epel

" 软件名称 " " 版本 " " 在哪个仓库里 "

范例 4:列出目前服务器上可供本机进行升级的软件有哪些

[root@localhost ~]# yum list updates //一定要 updates

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

范例 5:列出提供nginx 这个文件的软件有哪些

[root@localhost ~]# yum provides nginx

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

nginx-1.0.15-5.el6.x86_64 : A high performance web server and reverse proxy server

repo : epel

Matched from:

找到了,可以从容器repo或是epel里找到

我们来个小练习吧。

利用yum 的功能,找出http为开头的软件名称有哪些

[root@localhost ~]# yum list http*

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

Installed Packages

httpd.x86_64 2.2.15-39.el6.centos @anaconda-CentOS-201410241409.x86_64/6.6

httpd-tools.x86_64 2.2.15-39.el6.centos @anaconda-CentOS-201410241409.x86_64/6.6

Available Packages

http-parser.i686 2.0-4.20121128gitcd01361.el6 epel

http-parser.x86_64 2.0-4.20121128gitcd01361.el6 epel

接下来就是谈谈安装与升级功能:

[root@localhost ~]# yum [install | update] 软件包

Install : 后边要接安装的软件

update : 后边要接升级的软件,若想升级整个系统,直接update便可以;

实例1 安装tree 软件

[root@localhost ~]# yum install tree -y

Loaded plugins: fastestmirror, refresh-packagekit, security

Setting up Install Process

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package tree.x86_64 0:1.5.3-2.el6 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================

Package Arch Version Repository Size

===============================================================================================================

Installing:

tree x86_64 1.5.3-2.el6 base 36 k

Transaction Summary

===============================================================================================================

Install 1 Package(s)

Total download size: 36 k

Installed size: 65 k

Downloading Packages:

tree-1.5.3-2.el6.x86_64.rpm | 36 kB 00:00

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : tree-1.5.3-2.el6.x86_64 1/1

Verifying : tree-1.5.3-2.el6.x86_64 1/1

Installed:

tree.x86_64 0:1.5.3-2.el6

Complete!

删除功能:yum remove 软件名称

[root@localhost ~]# yum remove tree

Loaded plugins: fastestmirror, refresh-packagekit, security

Setting up Remove Process

Resolving Dependencies

--> Running transaction check

---> Package tree.x86_64 0:1.5.3-2.el6 will be erased

--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================

Package Arch Version Repository Size

======================================================================================================

Removing:

tree x86_64 1.5.3-2.el6 @anaconda-CentOS-201410241409.x86_64/6.6 65 k

Transaction Summary

======================================================================================================

Remove 1 Package(s)

Installed size: 65 k

Is this ok [y/N]: y

Downloading Packages:

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Erasing : tree-1.5.3-2.el6.x86_64 1/1

Verifying : tree-1.5.3-2.el6.x86_64 1/1

Removed:

tree.x86_64 0:1.5.3-2.el6

Complete!

三. yum 的设置文件

yum repository: yum仓库

存储了众多rpm包,以及包的相关元数据的文件(放在repodata目录中)服务器

文件服务器:

http://

ftp://

nfs://

file:///

repodata目录就是分析RPM软件后所产生的软件属性依赖数据放置处。我们来修改一下设置文件吧:在[root@localhost ~]# vim /etc/yum.repos.d/CentOS-Base.repo 修改下[REPO_ID],name,baseurl,enabled,gpgcheck这几个重要的,其它可以自行决定有否。

yum客户端:

配置文件:指向仓库的位置以及各种配置信息;每个yum客户可以有多个可用的yum仓库;

有两部分组成:

主配置文件:/etc/yum.conf

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

仓库定义:

[REPO_ID] //这个没有强制规定,根据自己的选择,来定一个容器的名字

name=REPO description //来形象说明这个容器是什么

baseurl=ftp://172.16.0.1/pub/CentOS6/ //这个非常非常重要,后面接的是容器的实际网址

enabled={1|0} //是否启动这个容器

gpgcheck={1|0} //进行自检,也就是数字证书认证

gpgkey=ftp://172.16.0.1/pub/CentOS6/gpg-key //数字证书的公钥文件的所在位置。

实例 1 : 列出目前yum server 所有的容器有哪些?

[root@localhost ~]# yum repolist all

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

Repoid reponame status

C6.0-base CentOS-6.0 - Base disabled

epel Fedora EPEL for CentOS6 x86_64 on local server 172.16.0.1 enabled: 12,922

extra CentOS 6 x86_64 extras enabled: 2,334

制作yum仓库

我想给大家来个实战的,大体的思路是先制作本地(yum源)yum仓库???

首先我的是CentOS6.6,而我的本地要的镜像是CentOS-5.11-x86_64-bin-DVD-1of2,

朋友们自己做实验的时候,随便下载和自己系统一样的的镜像。废话不多说了。

前期准备阶段:

  1. 先挂载 CentOS-5.11-x86_64-bin-DVD-1of2 的镜像,如下所示
  2.  

3. 把CentOS-5.11-x86_64-bin-DVD-1of2 的镜像挂载到指定目录下,通常是挂载到 /mnt/cdrom 下

#mount /dev/cdrom /mnt/cdrom

5. cd /etc/yum.repos.d

6. # ls 一下如果看到有Centos-Base.repo 文件,朋友可以用 vim Centos-Base.repo 进入编辑 enable=0 ,因为我们是制作本地yun源,所以要禁止Centos-Base.repo 文件从互联网上寻找 mirror(镜像) 。

7.我们在/etc/yum.repos.d 目录下新建一个文件以 .repo结尾,我的是 CentOS.repo 文件

再用 vim CentOS.repo ,修改下几个重要项:

[c5-Media]

name=CentOS 5.11

baseurl=file:///mnt/cdrom //这里是我之前镜像挂载的路径

gpgcheck=0

8. # yum list //执行下。到这里本地yum仓库就作好了。

现在来制作本地外的yum源,具体的步骤和前面的差不多,但其中也有一些需要变动的,莫怕,我来给朋友一一道来:

第一步:# cd /etc/yum.repos.d

第二步:我是在/etc/yum.repos.d目录下,新建一个文件 touch CentOS-network.repo ;还有就是我们 得进入CentOS-Base.repo文件下,vim CentOS-Base.repo , 修改下 选项 enable=1,这样默认是从互联网上搜索yum源。

第三步 : 进入CentOS-network.repo 文件下:vim CentOS-network.repo,修改下具体的选项:(这里我就义装个CentOS6为例)

[CentOS-network]

name=CentOS6

baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS -6.6-X86_64 //这里是我的老师在教室里配置的yum仓库,如果没有找到,会默认从互联网上,如网易,搜狐等镜像站点。。。。。。。。。

enable=1

gpgcheck=0

朋友按照我的配置来,我想问题应该不会太大吧。。。

rpm与yum命令的初步认识的更多相关文章

  1. rpm、yum命令

    一.rpm命令 挂载光盘文件到/media目录: 进去/media目录下的Packages目录: 查看系统已安装的所有rpm包: 查看系统是否安装dhcp软件包: 安装dhcp软件包: 查看dhcp软 ...

  2. 简述rpm与yum命令的常见选项

    rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装.升级和删除软件包的工作变的容易.并且具有查询.验证软件包的功能. 1)安装选项 命令格式:rpm {-i|--install} [i ...

  3. (十五)、linux软件的安装与查询-rpm与yum命令

    一.RPM软件管理程序:rpm 1.RPM安装软件(install) rpm命令的选项超级多,安装话直接使用-ivh即可,其余做了解即可 命令格式:rpm  -ivh  package_name.rp ...

  4. rpm与yum,at与crontab,sed命令使用

    1.简述rpm与yum命令的常见选项,并举例. rpm——软件包管理系统,它使得在Linux下安装.升级.删除软件包的工作变得容易,并且具有查询.验证软件包的功能. 1)安装选项 命令格式: rpm ...

  5. rpm 与 yum 源

    rpm rpm -e                删除软件包rpm -i                安装软件包rpm -U                更新软件包rpm -qa         ...

  6. Linux系统yum命令安装软件时保留(下载)rpm包 -- 转载

    昨天在部署zabbix监控的时候,遇到一个问题:监控服务器处于无外网状态,在线安装不可用.而某些依赖包度娘或谷姐搜索起来也挺呛人的!于是想到一个办法,利用有外网的服务器的yum命令来安装这些软件,并自 ...

  7. 常用的rpm和yum的一些命令

    常用的rpm命令  rpm -qa | grep coreutils    <-- 查看系统上是否已经安装了coreutils  rpm -qi coreutils           < ...

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

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

  9. 由于CentOS的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题

    由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题.解 ...

随机推荐

  1. Oracle学习(七):集合运算

    1.知识点:能够对比以下的录屏进行阅读 SQL> -- 查询10和20号部门的员工的3种方法 SQL> --1. select * from emp where deptno in (10 ...

  2. rtp的封包与拆包h264

    请看文档rfc3984 1.看h264的帧 SPS序列參数帧 00 00 00 01 67 64 . . .. PPS图像參数帧 00 00 00 01 68 EE... . I帧 00 00 00 ...

  3. yii 隐藏index.php的步骤

    Apache 1.开启apache的mod_rewrite模块       去掉LoadModule rewrite_module modules/mod_rewrite.so前的“#”符号     ...

  4. Ruby on Rails Tutorial 第一章 之 搭建开发环境

    云端开发环境,Cloud9(https://ide.c9.io/).这个开发环境预先安装好了Rails开发所需要的大多数软件,包括Ruby.RubyGems和Git,需要自己安装Rails. 1.安装 ...

  5. Clustering by density peaks and distance

    这次介绍的是Alex和Alessandro于2014年发表在的Science上的一篇关于聚类的文章[13],该文章的基本思想很简单,但是其聚类效果却兼具了谱聚类(Spectral Clustering ...

  6. [置顶] mybatis的批量新增

    开发项目中,总是与数据打交道,有的时候将数据放入到一个集合中,然后在遍历集合一条一条的插入,感觉效率超不好,最近又碰到这个问题,插入50条数据用了将近1s,完全满足不了系统的需求.效率必须加快,然后网 ...

  7. 如何在 PHP 中处理 Protocol Buffers 数据

    Protocol Buffers是谷歌定义的一种跨语言.跨平台.可扩展的数据传输及存储的协议,因为将字段协议分别放在传输两端,传输数据中只包含数据本身,不需要包含字段说明,所以传输数据量小,解析效率高 ...

  8. 4D数据介绍

    转自青椒炒蛋:http://www.smallleafs.com/article/35.aspx 4D数据包括DLG(数字线画地图).DEM(数字高程模型).DOM(数字正射影像地图).DRG(数字栅 ...

  9. SQL 生成一个日期范围

    有时想按日或月生成一个序列,就像2014-1-1.2014-1-2.2014-1-3... 在sql server中可以写个函数来实现. /* 生成一个日期范围,如2014.01.2014.02... ...

  10. 安装.Net framework 3.5 sp1报错的解决方法

    错误日志,提示: [11/22/07,18:04:40] Microsoft .NET Framework 2.0a: [2] Error: Installation failed for compo ...