码迷,mamicode.com
首页 > 其他好文 > 详细

CentOS-rpm与yum程序包管理

时间:2015-09-12 20:30:43      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:centos   yum   rpm   


作业(练习)内容:

    1、总结rpm和yum实现程序包的管理功能.

         求:作业要图文并茂

一、RPM包管理的用途;

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2
、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3
、可以在查询系统中的软件包是否安装以及其版本;
4
、作为开发者可以把自己的程序打包为RPM 包发布;
5
、软件包签名GPGMD5的导入、验证和签名发布
6
、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

二、RPM 的使用权限;

RPM
软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;


三、rpm 的一点简单用法;

我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;

RPM数据库在/var/lib/rpm

RPM数据库的建立可以利用rpm --rebuilddb命令。

 

安装选项参数

命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
参数:
file1.rpm ... fileN.rpm 将要安装的RPM包的文件名
通用选项
rpm -i /PATH/TO/PACKAGE_FILE:安装软件包

rpm -h :以#显示安装进度,每个#表示2%

rpm -v :显示安装详细信息

rpm -vv :更详细的信息

rpm -ivh :一般都是组合使用


--root
让RPM将指定的路径做为"根目录",这样预安装程序和后安
装程序都会安装到这个目录下
--rcfile 设置rpmrc文件为

--dbpath 设置RPM资料库存所在的路径为

技术分享

技术分享

上图其中zsh-5.0.2-7.el7.x86_64.rpm是你要安装的rpm包的文件名,一般置于当前目录下。 

详细选项:
-h (or --hash) 安装时输出hash记号(``#‘‘)
--test 只对安装进行测试,并不实际安装。
--percent 以百分比的形式输出安装的进度。
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
--ftpproxy 用 作为 FTP代理
--ftpport 指定FTP的端口号为
这里列出几个常用的:

 rpm --nodeps:忽略依赖关系。

 rpm --replacepkgs|repackage:重新安装、替换原来安装。

 rpm -ivh --oldpackage:降级安装。

 rpm -ivh --force:强行安装,可以实现重装或降级

rpm --test:仅测试有没有依赖关系

查询:

           rpm {-q|--query} [select-options] [query-options]

 

           查询选项:

               -qa: 查询本机已经安装的所有程序包;

技术分享

               -qf /PATH/TO/SOMEFILE: 查询此处的文件由哪个程序包安装生成;

如果某个rpm包尚未安装,我们需要查询其说明信息,安装后会生成的文件

 rpm -qpi /PATH/TO/PACKAGE_FILE

技术分享

               -qc: 查询指定程序包安装生成的配置文件

技术分享

               -qd: 查询指定的程序包安装生成的文档

技术分享

               -qi: 查询指定的程序包的相关信息;

技术分享

               -ql: 查询程序包安装生成的所有文件的列表;

技术分享

查看软件包的文档所在的位置;

语法: rpm -qpd file.rpm

技术分享

查看一个软件包的依赖关系

语法: rpm -qpR file.rpm

技术分享

               -q --scripts:查询程序包相关的脚本:

                  preinstall: 安装前脚本

                  postinstall:安装后脚本

                  preuninstall: 卸载前脚本

                  postuninstall: 卸载后脚本

技术分享

               -p: 查询针对是未安装的程序包文件;

 

升级:

           rpm{-U|--upgrade} [install-options] PACKAGE_FILE ...

           rpm {-F|--freshen} [install-options]PACKAGE_FILE ...  

 

               -Uvh: 如果有旧版程序包,则升级之;如果没有,则安装之;

               -Fvh:如果有旧版程序包,则升级之;如果没有,则不安装;

 

               --nodeps

               --oldpackage:降级;

               --force

卸载:

           rpm {-e|--erase} [--nodeps] [--noscripts][--notriggers] [--test] PACKAGE_NAME ... 

技术分享

校验:

           rpm {-V|--verify} [select-options] [verify-options]

              S file Size differs

              M Mode differs (includes permissions andfile type)

              5 digest (formerly MD5 sum) differs

              D Device major/minor number mismatch

              L readLink(2) path mismatch

              U User ownership differs

              G Group ownership differs

              T mTime differs

              P caPabilities differ

技术分享

包校验:

       来源合法性验正:非对称加密

       完整性验正:单向加密

       导入密钥:rpm --import /PATH/TO/KEY_FILE

       校验:rpm -K /PATH/TO/RPM_FILE

技术分享

校验都OK 的

 

 

YUM: Yellowdog Updater Modified

    yum repositories:

       文件服务器:

           ftp://hostname/PATH/TO/REPO

           http://hostname/PATH/TO/REPO

           file:///PATH/TO/REPO

yum程序的配置文件:

       /etc/yum.conf

           定义全局配置:对所有仓库都适用的配置

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

           一个文件通常用于一个或一组功能相近或相关的仓库

定义一个仓库指向:

              [REPO_ID]

              name=

              baseurl=

              #mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE

              enabled={1|0}

              gpgcheck={1|0}

              gpgkey=

              cost=

 

           定义仓库指向可用变量:

              $releasever:引用当前系统的主版本号;

              $basearch:当前系统的基本架构;

                  i386, i486, i586, i686: i386

              http://mirrors.magedu.com/CentOS/$releasever/os/$basearch

 

默认情况下:yum 安装好后的rpm包会被自动清除,如果我们想不自动清除的话,
[root@jesse ~]# vi /etc/yum.conf 
[main]
cachedir=/var/cache/yum
keepcache=1     #
将这里的0修改为1
debuglevel=2
#
保存退出
#
我们安装好后的软件存放的位置:/var/cache/yum/base/packages

 

    创建本地仓库:

       yum installcreaterepo

 

       createrepo/PATH/TO/RPMFILES/

技术分享

这里发现报错了,错误显示连接不到那个地址,为什么会出现这样的情况咧,是因为在/etc/yum.conf文件,里面有包含/etc/yum.repo.d/下面的配置,如下图:

技术分享

那就去修改/etc/yum.repos.d目录下修改技术分享技术分享

 

 

yum命令:

       yum [options][command] [package ...]

 

           命令:

              安装:install

              卸载:remove

              升级:update

              查询:

                  Info

技术分享

                  searchKEYWORD

                  listall|installed|availiable

                  provides/PATH/TO/SOMEFILE: 查询指定文件由哪个包安装生成

              重新安装:reinstall

              降级:downgrade

              清理缓存:clean [ packages | metadata | expire-cache| rpmdb | plugins | all ]

              生动生成缓存:makecache

 

              包组:

                  Grouplist  列出所有包组

                  groupinfo"GRP_NAME"   查看包组

                  groupinstall"GRP_NAME"   安装包组

                  groupremove"GRP_NAME"    移除包组

 

              仓库:

                  repolist[all|enabled|disabled]

技术分享

                  repoinfo[all|enabled|disabled]

技术分享

 

    如何使用光盘当做本地仓库: 

       挂载光盘至某目录

       定义仓库,使用file:///指明其访问路径;

 

 


CentOS-rpm与yum程序包管理

标签:centos   yum   rpm   

原文地址:http://dengyinjun.blog.51cto.com/8749413/1694103

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!