作业(练习)内容:
1、总结rpm和yum实现程序包的管理功能.
要求:作业要图文并茂
一、RPM包管理的用途;
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
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:
文件服务器:
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/下面的配置,如下图:
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:///指明其访问路径;
原文地址:http://dengyinjun.blog.51cto.com/8749413/1694103