您的位置:首页 > 产品设计 > UI/UE

2015年9月10日【程序包管理:rpm, yum】-JY1506402-19+liuhui880818

2015-09-14 13:54 429 查看
《Linux系统管理》(1)磁盘和文件系统管理;(2)RAID, LVM; btrfs; (3)程序包管理:rpm, yum(dnf)(4)Linux的网络管理; (5)进程和作业管理:htop, glances, tsar;(6)sed和awk;(7)Linux系统的开机启动流程;(8)内核基础知识,内核定制编译;(9)系统安装:kickstart, pxe一、作业(练习)内容:
1、总结rpm和yum实现程序包的管理功能.
要求:作业要图文并茂
二、完成时间:
2015年9月15日之前。
三、完成步骤:
《程序包管理:rpm,yum》目录:
1.程序包的组成部分
2.包管理器
3.rpm软件管理
1)rpm包说明
2)如何获取rpm包
3)rpm命令:实现对程序包管理
(1)安装
(2)升级
(3)卸载
(4)查询
(5)校验
4.YUM软件管理
1)YUM程序的配置文件 2)yum命令:
(1)安装
(2)卸载
(3)升级
(4)查询
3)创建自己的本地yum仓库

1.程序包的组成部分
二进程序:/bin,/sbin,/usr/bin,/usr/sbin 库文件:/lib64,/usr/lib64 配置文件:/etc 帮助文件:manual,info,INSTALL, 2.包管理器
Debian的软件包管理工具命令:dpkg,apt-get

CentOS/Redhat常用软件包管理工具命令:rpm,yum
3.rpm包
1)rpm包说明
RPM 全称为 Redhat Package Manager,最早由 Red Hat 公司制定实施,随后被 GNU 开源操作系统接受并成为很多 Linux 系统 (RHEL) 的既定软件标准。与 RPM 进行竞争的是基于 Debian 操作系统 (UBUNTU) 的 DEB 软件包管理工具- DPKG,全称为 Debian Package,功能方面与 RPM 相似。二者之具体比较不在本文范围之内。
2)如何获取rpm包
(1)发行版提提供的程序包
(2)Fedora-EPEL
(3)项目的官方站点
(4)搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org

3)rpm命令:实现对程序包管理

RPM软件包常用的命令规范如下:

lrzsz-0.12.20-36.el7.x86_64.rpm
说明:
lrzsz :软件名字
0.12.20-36:软件版本号,
el7:针对于RHEL7的发现版本,
x86_64:表示运行在64位上的系统。

(1)安装
rpm -ivh PACKAGE_FILE
-i 安装rpm包
-v:显示详细信息
-h:显示文本进度条
--nodeps:忽略依赖关系安装
--relacepkgs:重装程序包
示例:安装
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
1:lrzsz-0.12.20-36.el7             ################################# [100%]
(2)升级
rpm-[Uvh|Fvh_ PACKAGE_FILE
-Uvh:如果有旧版程序包,则升级之,如果没有,则安装之;
-Fvh:如果有旧版程序包,则升级之,如果没有,则不安装;
--oldpackage:降级;
--force:强制安装。
(3)卸载

rpm-e RACKAGE_NAME
示例:
[root@localhost Packages]# rpm -e lrzsz
[root@localhost Packages]# rpm -qa lrzsz
(4)查询
rpm-q PACKAGE_NAME
查询选项:
-qa:查询本机已经安装的所有程序包;
-qf /PATH/TO/SOMEFILE:查询此处的文件由哪个程序包安装生成;
-qc:查询指定程序包安装生成的配置文件
-qd:查询指定的程序包安装生成的文档
-qi:查询指事实上的程序包的相关信息;
-ql:查询程序包安装生成的所有文件的列表;
-q --scripts:查询程序包相关的脚本;
preinstall:安装前脚本
postinstall:安装后脚本
preuninstall:卸载前脚本
postiuninstall:卸载后脚本
-p:查询针对是未安装的程序外文件

RPM常用查询命令:
rpm -qa 列出所有已安装的rpm软件
rpm -qf filename 查询指定文件属于哪个rpm包
rpm -qi packagename 查询已软件包的信息
rpm -ql packagename 查询指定软件包包含的文件
rpm -qip software.rpm 查询rpm文件的信息
rpm -qilp software.rpm 查询rpm文件包含的文件
示例:
[root@LiuHui Packages]# rpm -qa lrzsz
lrzsz-0.12.20-36.el7.x86_64
[root@LiuHui ~]# rpm -qa
tuned-2.4.1-1.el7.noarch
centos-release-7-1.1503.el7.centos.2.8.x86_64
aic94xx-firmware-30-6.el7.noarch
filesystem-3.2-18.el7.x86_64
openssh-server-6.6.1p1-11.el7.x86_64
ncurses-base-5.9-13.20130511.el7.noarch
openssh-clients-6.6.1p1-11.el7.x86_64
linux-firmware-20140911-0.1.git365e80c.el7.noarch
selinux-policy-targeted-3.13.1-23.el7.noarch
[root@LiuHui Packages]# rpm -qip lrzsz-0.12.20-36.el7.x86_64.rpm
Name        : lrzsz
Version     : 0.12.20
Release     : 36.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Communications
Size        : 184846
License     : GPLv2+
Signature   : RSA/SHA256, Thu 03 Jul 2014 11:35:32 PM EDT, Key ID 24c6a8a7f4a80eb5
Source RPM  : lrzsz-0.12.20-36.el7.src.rpm
Build Date  : Mon 09 Jun 2014 07:29:11 PM EDT
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.ohse.de/uwe/software/lrzsz.html Summary     : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.
[root@LiuHui ~]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
(5)校验
rpm -K software.rpm #验证rpm文件
rpm -V softname #验证已安装的软件
验证通常是使用非对称的加密算法,所以就需要一个密钥。一般的RPM软件包里面都加入了密钥,如果没有加入我们可以通过 rpm --import RPM-GPG-KEY-CentOS-6 命令手动加入即可。
示例:
[root@LiuHui Packages]# rpm -K lrzsz-0.12.20-36.el7.x86_64.rpm
lrzsz-0.12.20-36.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@LiuHui Packages]# rpm -V audit
[root@LiuHui Packages]#
如果没有出现任何错误,就表示该软件是完整的,没有被修改。

4.YUM软件管理
使用YUM的特点:
(1)自动解决依赖性问题
(2)可以对RPM进行分组,并基于组来进行安装操作
(3)引入了仓库的概念,支持多个仓库
(4)配置简单
仓库可以是本地的,也可是互联网上的,可以通过http、ftp或者nfs等形式使用集中的、统一的网络仓库

1)yum程序的配置文件
(1)/etc/yum.conf
定义全局配置:对所有创库都适用的配置
(2)/etc/yum.repos.d/*.repo
定义一个以.repo结尾的文件常用于一个或一组功能相近或相关的仓库

(3)定义一个仓库指向
示例:
[root@LiuHui yum.repos.d]# cat CentOS-bendi.repo
[bendi]    #仓库名字
name=This is beidi cdrom's rpm soft repo    #仓库描述
baseurl=file:///mnt/    #仓库地址,可以是http,ftp,nfs等网络仓库地址,这是里本地仓库地址
enabled=1    #1表示使用这个仓库,默认就是1
gpgcheck=1   #是否启用软件校验,
2)yum命令:
(1)安装 install
(2)卸载 remove
(3)升级 update
(4)查询
yum search 关键字

yum list (all|installed|recent|updates) #列出全部的、安装的、最近的、更新的软件
yum info packagename #显示软件信息
-y #自动安装,不用确认
示例:
[root@LiuHui ~]# yum install lrzsz
Loaded plugins: fastestmirror
base                                   | 3.6 kB     00:00
epel/x86_64/metalink                   | 4.9 kB     00:00
epel                                   | 4.3 kB     00:01
extras                                 | 3.4 kB     00:00
updates                                | 3.4 kB     00:00
(1/2): epel/x86_64/primary_db            | 3.5 MB   00:40
epel/x86_64/updateinfo         FAILED http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: [Errno 12] Timeout on http://mirrors.isu.net.sa/pub/fedora/fedora-epel/7/x86_64/repodata/6822870af83ae6bcdbfeded540fb33c3c5f8a5dcd3c16d283f3d7dc4ad351b32-updateinfo.xml.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
Trying other mirror.
(2/2): epel/x86_64/updateinfo            | 355 kB   00:04
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: ftp.cuhk.edu.hk
* extras: mirrors.aliyun.com
* updates: mirrors.sina.cn
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
Package    Arch        Version               Repository
Size
==============================================================
Installing:
lrzsz      x86_64      0.12.20-36.el7        base       78 k
Transaction Summary
==============================================================
Install  1 Package
Total download size: 78 k
Installed size: 181 k
Is this ok [y/d/N]: y
Downloading packages:
lrzsz-0.12.20-36.el7.x86_64.rpm          |  78 kB   00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : lrzsz-0.12.20-36.el7.x86_64                1/1
Verifying  : lrzsz-0.12.20-36.el7.x86_64                1/1
Installed:
lrzsz.x86_64 0:0.12.20-36.el7
Complete!
[root@LiuHui ~]# yum remove lrzsz
Loaded plugins: fastestmirror
Resolving Dependencies
--> Running transaction check
---> Package lrzsz.x86_64 0:0.12.20-36.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================
Package    Arch        Version              Repository  Size
==============================================================
Removing:
lrzsz      x86_64      0.12.20-36.el7       @base      181 k
Transaction Summary
==============================================================
Remove  1 Package
Installed size: 181 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing    : lrzsz-0.12.20-36.el7.x86_64                1/1
Verifying  : lrzsz-0.12.20-36.el7.x86_64                1/1
Removed:
lrzsz.x86_64 0:0.12.20-36.el7
Complete!
[root@LiuHui ~]#
[root@LiuHui ~]# yum clean all  #清除yum缓存
Loaded plugins: fastestmirror
Cleaning repos: base bendi epel extras updates
Cleaning up everything
Cleaning up list of fastest mirrors
[root@LiuHui ~]# yum list    #列出仓库
Loaded plugins: fastestmirror
base                                   | 3.6 kB     00:00
bendi                                  | 3.6 kB     00:00
epel/x86_64/metalink                   | 5.3 kB     00:00
epel                                   | 4.3 kB     00:00
extras                                 | 3.4 kB     00:00
updates                                | 3.4 kB     00:00
3)创建自己的本地yum仓库
(1)创建本地yum仓库
[root@LiuHui ~]#mount /dev/cdrom /mnt
[root@LiuHui yum.repos.d]# mkdir /bendi.yum
[root@LiuHui yum.repos.d]# cd /bendi.yum/
[root@LiuHui bendi.yum]# cp -rv /mnt/Packages/* .
(2)创建repo文件
[root@LiuHui yum.repos.d]# cat bendi.repo
[bendi]
name=This is bendi's yum repo
baseurl=file:///bendi.yum/

(3)安装createrepo
[root@LiuHui Packages]# rpm -ivh createrepo-0.9.9-23.el7.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
1:createrepo-0.9.9-23.el7          ################################# [100%]
(4)创建索引
[root@LiuHui bendi.yum]# createrepo -v .
注:需要将网络yum源移动到备份文件夹下。再清空缓存,列出仓库下的包
[root@LiuHui yum.repos.d]# mkdir back
[root@LiuHui yum.repos.d]# mv CentOS-* epel* back/
[root@LiuHui yum.repos.d]# ls
back  bendi.repo
[root@LiuHui repodata]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: bendi
Cleaning up everything
[root@LiuHui repodata]# yum list
Loaded plugins: fastestmirror
bendi                                  | 2.9 kB     00:00
bendi/primary_db                         | 2.7 MB   00:00
Determining fastest mirrors
Installed Packages
本文出自 “学习:没有借口” 博客,请务必保留此出处http://eahui.blog.51cto.com/3408952/1694564
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: