博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RPM包管理器
阅读量:6759 次
发布时间:2019-06-26

本文共 4699 字,大约阅读时间需要 15 分钟。

库文件

  • 查看二进制程序所依赖的库文件

    ldd/PATH/TO/BINARY_FILE

  • 管理及查看本机装载的库文件
    ldconfig加载配置文件中指定的库文件
    /sbin/ldconfig–p显示本机已经缓存的所有可用库文件名及文件路径

映射关系配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf缓存文件:/etc/ld.so.cache

RPM包管理器

数据库(公共):/var/lib/rpm

  • 安装

    rpm {-i|--install} [install-options] PACKAGE_FILE...

    -v: verbose
    -vv:
    -h: 以#显示程序包管理执行进度rpm -ivhPACKAGE_FILE ...
    [install-options]
    --test: 测试安装,但不真正执行安装,即dry run模式
    --nodeps:忽略依赖关系
    --replacepkgs| replacefiles--nosignature: 不检查来源合法性
    --nodigest:不检查包完整性
    --noscripts:不执行程序包脚本
    %pre: 安装前脚本--nopre
    %post: 安装后脚本--nopost
    %preun: 卸载前脚本--nopreun
    %postun: 卸载后脚本--nopostun

-升级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...rpm {-F|--freshen} [install-options] PACKAGE_FILE...    upgrade:安装有旧版程序包,则“升级”如果不存在旧版程序包,则“安装”    freshen:安装有旧版程序包,则“升级”如果不存在旧版程序包,则不执行升级操作    rpm -UvhPACKAGE_FILE ...    rpm -FvhPACKAGE_FILE ...    --oldpackage:降级    --force: 强制安装

注意:(1) 不要对内核做升级操作;Linux支持多内核版本并存,因此直接安装新版本内核(2) 如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件不会直接覆盖老版本的配置文件,而把新版本文件重命名(FILENAME.rpmnew)后保留

-包查询

rpm {-q|--query} [select-options] [query-options][select-options]    -a:所有包    -f:查看指定的文件由哪个程序包安装生成    -p rpmfile:针对尚未安装的程序包文件做查询操作    --whatprovidesCAPABILITY:查询指定的CAPABILITY由哪个包所提供    --whatrequiresCAPABILITY:查询指定的CAPABILITY被哪个包所依赖

rpm2cpio 包文件|cpio–itv预览包内文件

rpm2cpio 包文件|cpio–id “*.conf”释放包内文件

[query-options]--changelog:查询rpm包的changelog-c:查询程序的配置文件-d:查询程序的文档-i:information-l:查看指定的程序包安装后生成的所有文件--scripts:程序包自带的脚本--provides:列出指定程序包所提供的CAPABILITY-R:查询指定的程序包所依赖的CAPABILITY
  • 常用查询用法:-qi PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE,-qpi PACKAGE_FILE, -qpl PACKAGE_FILE, ...-qa
  • 包卸载rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

    当包卸载时,对应的配置文件不会删除,以FILENAME.rpmsave形式保留

  • 包校验
  • rpm {-V|--verify} [select-options] [verify-options]

    S file Size differs
    M Mode differs (includes permissions and file 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 mTimediffers
    P capabilities differ

  • 包来源的合法性验证及完整性验证

    完整性验证:SHA256
    来源合法性验证:RSA

  • 公钥加密
    对称加密:加密、解密使用同一密钥
    非对称加密:密钥是成对儿的
    public key: 公钥,公开所有人
    secret key: 私钥, 不能公开
  • 导入所需要公钥

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

    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:重建已安装的包头的数据库索引目录

yum

  • yum客户端配置文件:

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

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

仓库指向的定义:

[repositoryID]name=Some name for this repositorybaseurl=url://path/to/repositoryenabled={1|0}gpgcheck={1|0}gpgkey=URLenablegroups={1|0failovermethod={roundrobin|priority}    roundrobin:意为随机挑选,默认值    priority:按顺序访问cost=  默认为1000
  • yum仓库

yum的repo配置文件中可用的变量:

$releasever: 当前OS的发行版的主版本号$arch: 平台,i386,i486,i586,x86_64等$basearch:基础平台;i386, x86_64$YUM0-$YUM9:自定义变量

示例:

http://server/centos/$releasever/$basearch/http://server/centos/7/x86_64http://server/centos/6/i386

yum命令

yum命令的用法:yum [options] [command] [package ...]

显示仓库列表:yum repolist[all|enabled|disabled]
显示程序包:

yum listyum list [all | glob_exp1] [glob_exp2] [...]yum list {available|installed|updates} [glob_exp1] [...]

安装程序包:

yum install package1 [package2] [...]yum reinstall package1 [package2] [...]  (重新安装)

升级程序包:

yum update [package1] [package2] [...]yum downgrade package1 [package2] [...] (降级)

检查可用升级:

yum check-update

卸载程序包:

yum remove | erase package1 [package2] [...]

查看程序包information: yum info [...]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

yum provides | whatprovidesfeature1 [feature2] [...]

清理本地缓存:

清除/var/cache/yum/$basearch/$releasever缓存

yum clean [ packages | metadata | expire-cache | rpmdb| plugins | all ]

构建缓存:yum makecache

搜索:yum search string1 [string2] [...]

以指定的关键字搜索程序包名及summary信息
查看指定包所依赖的capabilities:yum deplistpackage1 [package2] [...]
查看yum事务历史:

yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]yum historyyum history info 6yum history undo 6

**日志:**/var/log/yum.log

安装及升级本地程序包:

yum localinstall rpmfile1 [rpmfile2] [...](用install替代)

yum localupdate rpmfile1 [rpmfile2] [...](用update替代)

包组管理的相关命令:

yum groupinstall group1 [group2] [...]yum groupupdate group1 [group2] [...]yum grouplist [hidden] [groupwildcard] [...]yum groupremove group1 [group2] [...]yum groupinfo group1 [...]

yum的命令行选项:

--nogpgcheck:禁止进行gpgcheck-y: 自动回答为“yes”-q:静默模式--disablerepo=repoidglob:临时禁用此处指定的repo--enablerepo=repoidglob:临时启用此处指定的repo--noplugins:禁用所有插件

系统光盘yum仓库

  • 系统安装光盘作为本地yum仓库:
    (1) 挂载光盘至某目录,例如/mnt/cdrom mount /dev/cdrom/mnt/cdrom

(2) 创建配置文件

[CentOS7]name=baseurl=gpgcheck=enabled=
  • 创建yum仓库:createrepo[options] <directory>

转载于:https://blog.51cto.com/14224061/2368346

你可能感兴趣的文章
Android应用程序内部启动Activity过程(startActivity)的源代码分析
查看>>
iOS网络编程-ASIHTTPRequest框架同步请求
查看>>
Gartner:2011年北美MSS市场分析
查看>>
一个网上找到的,在Grid中嵌套Grid的示例:Nested Grids Example
查看>>
IT群侠传第四回大鱼小虾
查看>>
《Python从小白到大牛》第9章 数据结构
查看>>
Xcode中四种build for 的区别
查看>>
酷客多小程序百城宣讲会-嵊州站完美落幕
查看>>
搞机年代,ivvi用“爱情”细分市场
查看>>
学员问答之3-View桌面问题
查看>>
思科路由器开机进入 miniIOS 的原因分析
查看>>
卢松松:性格决定网站风格
查看>>
Redis 数据结构与内存管理策略(上)
查看>>
Management Console 工具管理类软件通用开发框架(开放源码)
查看>>
Gnome 3.2 发布计划及新功能
查看>>
已超过传入消息(65536)的最大消息大小配额。若要增加配额,请使用相应绑定元素上的 MaxReceivedMessageSize 属性...
查看>>
利用bobo-browse 实现lucene的分组统计功能
查看>>
/MT、/MD编译选项,以及可能引起在不同堆中申请、释放内存的问题
查看>>
基于SGIP协议编写短信网关接口
查看>>
NSCharacterSet 去除NSString中的空格
查看>>