一、软件管理程序rpm
简介:RPM是通过预编译并打包成为RPM文件格式后再加以安装的一种方式,并且还能够进行数据库的记载。
1、优点:
1、RPM内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰;
2、RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本,可避免文件被错误安装;
3、RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件;
4、RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。
2、rpm包安装
rpm {-i|–install} [install-options] PACKAGE_FILE…
-i : install的意思
-v: 详细的安装画面。
-h: 以#显示程序包管理执行进度 。
rpm -ivh PACKAGE_FILE …
rpm包安装 [install-options]
–test: 测试安装,但不真正执行安装;dry run模式
–nodeps:忽略依赖关系
–replacepkgs | replacefiles
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscipts:不执行程序包脚本片断
%pre: 安装前脚本; –nopre
%post: 安装后脚本; –nopost
%preun: 卸载前脚本;–nopreun
%postun: 卸载后脚本; –nopostun
测试一下以前安装过的软件:
3、rpm包升级
升级:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE…
rpm {-F|–freshen} [install-options] PACKAGE_FILE…
upgrade:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则“安装”
freshen:安装有旧版程序包,则“升级” 如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …
–oldpackage:降级
–force: 强行升级
升级注意项
注意:
(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此 ,对直接安装新版本内核
(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本 的提供的同一个配置文件并不会直接覆盖老版本的配置文件,而 把新版本的文件重命名(FILENAME.rpmnew)后保留
包查询
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作;
–whatprovides CAPABILITY:查询指定的CAPABILITY 由哪个包所提供
–whatrequires CAPABILITY:查询指定的CAPABILITY被 哪个包所依赖
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件
[query-options]
–changelog:查询rpm包的changelog
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information
-l: 查看指定的程序包安装后生成的所有文件;
–scripts:程序包自带的脚本片断
-R: 查询指定的程序包所依赖的CAPABILITY;
–provides: 列出指定程序包所提供的CAPABILITY;
查询用法:
-q :仅查询,看后面跟的文件是否安装。
-qa:列出所有已经安装在本机的所有软件名称。
-qi :列出后面跟的软件的详细信息。
-ql :列出该软件相关的文件目录所在完整文件名。
-qc:列出该软件件所有的设置文件。
-qd:列出该软件所有的帮助文件。
-qR:列出该软件有关的依赖软件所含文件。
-qp:该选项后面接的所有参数以上面的说明一致,但用途仅在于找出某个RPM文件内的信息,而非已安装的软件信息。
实例1,找出tree软件,列出跟它有关的所有目录与文件,列出tree的软件信息,找出tree的帮助文件,找出他还需要什么软件才能正常安装,
卸载:
rpm {-e|–erase} [–allmatches] [–nodeps] [– noscripts] [–notriggers] [–test] PACKAGE_NAME …
包校验
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs:文件容量大小是否被改变
M Mode differs :文件的类型或文件的属性(rwx是否被改变),如是否可执行等参数已被改变。
5 formerly MD5 sum)MD5这一种的指纹骂的内容已经不同
D Device major/minor number mismatch :设备的主/次代码已经改变;
L readLink(2) path mismatch :Link路径已被改变;
U User ownership differs :文件的所有者已经改变;
G Group ownership differs :文件的所属组已经改变;
T mTime differs :文件的创建时间已经改变;
P capabilities differ
包来源合法性验正及完整性验正:
完整性验正:SHA256
来源合法性验正:RSA
公钥加密:
对称加密:加密、解密使用同一密钥;
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
导入所需要公钥:
rpm -K|checksig rpmfile 检查包的完整性和签名
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa gpg-pubkey*
rpm数据库
数据库重建:
/var/lib/rpm
rpm {–initdb|–rebuilddb}
initdb: 初始化如果事先不存在数据库,则新建之否则,不执行任何操作
rebuilddb:重建无论当前存在与否,直接重新创建数据库
2、yum
简介:
Yellowdog Update Modifier,rpm的前端程序,用来解决软件包相关依赖性,可以在多个库之间定位软件包, up2date的替代工具 yum repository: yum repo,存储了众多rpm包,以及 包的相关的元数据文件(放置于特定目录repodata下)
文件服务器: ftp:// http:// file:///
yum配置文件:
yum客户端配置文件:
/etc/yum.conf:为所有仓库提供公共配置
/etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向的定义:
[repositoryID] 容器的名字
name:说明容器的意义
baseurl=容器的实际网址
enabled=1:启动容器 0:关闭容器
gpgcheck=是否需要查询证书
gpgkey=数字证书所在位置一般使用默认值
enablegroups={1|0}
failovermethod={roundrobin|priority} 默认为:roundrobin,意为随机挑选;
cost=n 默认为1000
yum命令的用法: yum [options] [command] [package …]
yum-config-manager –disable “仓库名" 禁用仓库
yum-config-manager –enable “仓库名” 启用仓库 yum-config-manager
显示仓库列表:
repolist [all|enabled|disabled]
显示程序包:list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list {available|installed|updates} [glob_exp1] […]
安装程序包:
install package1 [package2] […]
reinstall package1 [package2] […] (重新安装)
升级程序包:
update [package1] [package2] […]
downgrade package1 [package2] […] (降级)
检查可用升级:
check-update
卸载程序包:
remove | erase package1 [package2] […]
查看程序包information:
info […]
查看指定的特性(可以是某文件)是由哪个程序包所提供: provides | whatprovides feature1 [feature2] […]
清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
构建缓存:
makecache
搜索:
search string1 [string2] […]
以指定的关键字搜索程序包名及summary信息
查看指定包所依赖的capabilities: deplist package1 [package2] […]
查看yum事务历史:
history [info|list|packages-list|packages-info|
summary|addon-info|redo|undo|
rollback|new|sync|stats]
yum history
yum history info 6
yum history undo 6
日志 :
/var/log/yum.log
安装及升级本地程序包:
* localinstall rpmfile1 [rpmfile2] […] (用install替代)
* localupdate rpmfile1 [rpmfile2] […] (用update替代)
包组管理的相关命令:
groupinstall group1 [group2] […]
groupupdate group1 [group2] […]
grouplist [hidden] [groupwildcard] […]
groupremove group1 [group2] […]
groupinfo group1 […]
yum的命令行选项:
–nogpgcheck:禁止进行gpg check
-y: 自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
yum仓库
yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等
$basearch:基础平台;i386
$YUM0-$YUM9:自定义变量
创建yum仓库:
createrepo [options] <directory>
实例:yum安装tree软件
原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/38951