软件包管理rpm和yum基本使用

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。


rpm 执行安装包

二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。

源代码:name-VERSION.tar.gz|bz2|xz

VERSION: major.minor.release

rpm包命名方式:

name-VERSION-release.arch.rpm

例:bash-4.2.46-19.el7.x86_64.rpm

VERSION: major.minor.release

release:release.OS

常见的arch:

x86: i386, i486, i586, i686

x86_64: x64, x86_64, amd64powerpc: ppc

跟平台无关:noarch

程序包管理器:

功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作

语法格式

rpm [option] [argiment]


常用组合命令

-ivh:安装显示安装进度–install–verbose–hash

-Uvh:升级软件包–Update;

-qpl:列出RPM软件包内的文件信息[Query Package list];

-qpi:列出RPM软件包的描述信息[Query Package install package(s)];

-qf:查找指定文件属于哪个RPM软件包[Query File];

-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];

-e:删除包[erase]


rpm -ivh file.rpm  #[安装新的rpm并用#显示进度]–install–verbose–hash  

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 -q tree //#查询程序是否安装,安装了会显示软件包名。

rpm -qpi  #查看rpm包–query–package–install package信息

rpm -qpi tree-1.5.3-3.el6.x86_64.rpm #查看rpm包–file

rpm -qpR file.rpm       #[查看包]依赖关系

rpm2cpio file.rpm |cpio -div    #[抽出文件]

rpm -Uvh file.rpm    #[升级一个rpm]–upgrade

rpm -e file.rpm      #[删除一个rpm包]–erase


常用参数:

Install/Upgrade/Erase options:安装,升级,卸载

-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) #升级更新安装,存在即更新,不存在即安装

{-F|–freshen} [install-options] PACKAGE_FILE… #更新升级,不存在即不安装

--replacepkge                    无论软件包是否已被安装,都强行安装软件包

–test                            安装测试,并不实际安装

–nodeps                          忽略软件包的依赖关系强行安装

–force                           忽略软件包及文件的冲突


Query options (with -q or –query):查询

-q 软件名    #查询软件是否安装

-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 # 查询根(/)上的文件是由哪个软件包生成的

-c, –configfiles   #查询程序的配置文件

-R, –requires   #查询软件的依赖关系


导入所需要公钥:

rpm -K|checksigrpmfile检查包的完整性和签名

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7

rpm -qagpg-pubkey*


示例

centos7环境下

若想安装rpm包,你先得把安装光配挂载起来

[root@localhost yum.repos.d]# mkdir /media/cdrom #创建挂载目录(media和mnt常用来当挂载目录)
[root@localhost yum.repos.d]# mount /dev/cdrom /media/cdrom/ #挂载
mount: /dev/sr0 is write-protected, mounting read-onl #挂载成功
[root@localhost cdrom]# ls#列出/media/cdrom下的文件
CentOS_BuildTag  images    repodata
EFI              isolinux  RPM-GPG-KEY-CentOS-7
EULA             LiveOS    RPM-GPG-KEY-CentOS-Testing-7
GPL              Packages  TRANS.TBL
[root@localhost cdrom]# rpm --import ./RPM-GPG-KEY-CentOS-7 #导入公钥
[root@localhost cdrom]# rpm -ivh /media/cdrom/Packages/tree-1.6.0-10.el7.x86_64.rpm #安装tree软件包等功能就可以使用了
Preparing...                          ################################# [100%]
Updating / installing...
   1:tree-1.6.0-10.el7                ################################# [100%]


yum

yum(全 称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载 RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至 全部软件包的命令,而且命令简洁而又好记。


语法

 yum [options] [command] [package …]


常用选项

1 安装

yum install :全部安装

yum install package1 安装指定的安装包package1

yum groupinsall "group1"…  安装指定的组包

2 更新和升级

yum update 全部更新

yum update package1 更新指定程序包package1

yum check-update 检查可更新的程序

yum upgrade package1 升级指定程序包package1

yum groupupdate group1 升级程序组group1

3 查找和显示

yum info package1 显示安装包信息package1

yum list 显示所有已经安装和可以安装的程序包

yum list package1 显示指定程序包安装情况package1

yum groupinfo group1 显示程序组group1信息yum search string 根据关键字string查找安装包

4 删除程序

yum remove | erase package1 删除程序包package1

yum groupremove group1 删除程序组group1

yum deplist package1 查看程序package1依赖情况

5 清除缓存

yum clean packages 清除缓存目录下的软件包

yum clean headers 清除缓存目录下的 headers

yum clean oldheaders 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers


在使用yum之前首先要安装yum库。

yum仓库的三种格式安装

ftp://

http://

file:/// (最后一个为/路径)

yum客户端配置文件:

/etc/yum.conf:为所有仓库提供公共配置

/etc/yum.repos.d/*.repo:为仓库的指向提供配置 

仓库指向的定义:

[repositoryID]

name=Some name for this repository

baseurl=url://path/to/repository/ #必须填

enabled={1|0}

gpgcheck={1|0}

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority}

默认为:roundrobin,意为随机挑选;

cost= 默认为1000


yum-config-manager –add-repo= http:/10.1.0.1/cobbler/ks_mirror/CentOS-X-x86_64/ 自动生成仓库文件

yum-config-manager –disable “仓库名" 禁用仓库

yum-config-manager –enable “仓库名” 启用仓库


示例,篇幅太长就不多做示例了!

[root@localhost repository]# yum -y install httpd #安装httpd软件及它所依赖的包
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-40.el7.centos will be installed
--> Processing Dependency: httpd-tools = 2.4.6-40.el7.centos for package: httpd-2.4.6-40.el7.centos.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-40.el7.centos.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-3.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-40.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=====================================================================================================================================
 Package                        Arch                      Version                                Repository                     Size
=====================================================================================================================================
Installing:
 httpd                          x86_64                    2.4.6-40.el7.centos                    repository                    2.7 M
Installing for dependencies:
 apr                            x86_64                    1.4.8-3.el7                            repository                    103 k
 apr-util                       x86_64                    1.5.2-6.el7                            repository                     92 k
 httpd-tools                    x86_64                    2.4.6-40.el7.centos                    repository                     82 k
Transaction Summary
=====================================================================================================================================
Install  1 Package (+3 Dependent packages)
Total download size: 3.0 M
Installed size: 9.9 M
Downloading packages:
(1/4): apr-1.4.8-3.el7.x86_64.rpm                                                                             | 103 kB  00:00:00     
(2/4): apr-util-1.5.2-6.el7.x86_64.rpm                                                                        |  92 kB  00:00:00     
(3/4): httpd-2.4.6-40.el7.centos.x86_64.rpm                                                                   | 2.7 MB  00:00:00     
(4/4): httpd-tools-2.4.6-40.el7.centos.x86_64.rpm                                                             |  82 kB  00:00:00     
-------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                2.7 MB/s | 3.0 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : apr-1.4.8-3.el7.x86_64                                                                                            1/4 
  Installing : apr-util-1.5.2-6.el7.x86_64                                                                                       2/4 
  Installing : httpd-tools-2.4.6-40.el7.centos.x86_64                                                                            3/4 
  Installing : httpd-2.4.6-40.el7.centos.x86_64                                                                                  4/4 
  Verifying  : httpd-2.4.6-40.el7.centos.x86_64                                                                                  1/4 
  Verifying  : apr-util-1.5.2-6.el7.x86_64                                                                                       2/4 
  Verifying  : httpd-tools-2.4.6-40.el7.centos.x86_64                                                                            3/4 
  Verifying  : apr-1.4.8-3.el7.x86_64                                                                                            4/4 
Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos                                                                                                 
Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7             apr-util.x86_64 0:1.5.2-6.el7             httpd-tools.x86_64 0:2.4.6-40.el7.centos            
Complete!
[root@localhost repository]# yum grouplist all  #查看配置的yum仓库
Loaded plugins: fastestmirror, langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Warning: no environments/groups match: all
[root@localhost repository]# yum repolist all
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
repo id                                                repo name                                                       status
base                                                   cent7 repository                                                enabled: 8,508
repository                                             CentOS7 repository                                              enabled: 9,007
repolist: 17,515

原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/39621

(0)
ladsdmladsdm
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

  • kickstart+ftp+dhcp+tftp实现centos6的无人值守安装

    环境IP : 172.16.0.32 centos 6.6 一.安装相关包 安装图形界面 [root@localhost ~]# yum groupinstall “Desktop” “X Window System” “Chinese Support” [root@localhost ~]# yum -y install dhcp tftp-server …

    Linux干货 2017-06-03
  • ubuntu kylin虚拟机安装KVM

    1.确定物理机CPU是否支持虚拟化    查看方法1:计算机->属性->处理器(Inter(R) Core(TM) i5-2450M),然后去网上查看自己的电脑CPU是否支持虚拟化,    地址http://ark.intel.com/zh-cn/找到自己CPU的信息,虚拟化技术后是否显示为yes,如果是n…

    Linux干货 2016-10-15
  • Linux基础之shell脚本编程(一)

    本文主要是shell脚本编程练习 1、写一个脚本    (1)、获取并列出当前系统上的所有磁盘设备;    (2)、显示每个磁盘设备上每个分区相关的空间使用信息;   1 #!/bin/bash   2 #author:BaoZhang  &nbsp…

    Linux干货 2016-11-11
  • 逻辑卷实例

    1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录 2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录 3、扩展testlv至7G,要…

    Linux干货 2016-09-01
  • 第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~]# fdis…

    Linux干货 2017-07-04
  • Linux系统启动流程、内核及模块管理、linux启动故障排除和自制linux

    Linux系统启动流程、内核及模块管理 Linux系统的组成部分组成:内核+根文件系统(kernel+rootfs)内核(kernel): 进程管理(创建、调度、销毁等)、内存管理、网络管理(网络协议栈)、驱动程序、文件系统、安全功能IPC:Inter Process Communication机制本地进程间通信机制:消息队列、semerphor、shm(共…

    2016-09-29