软件包管理

一、软件管理程序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

测试一下以前安装过的软件:

blob.png

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的帮助文件,找出他还需要什么软件才能正常安装,

blob.png

blob.png

卸载:

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软件

blob.png

原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/38951

(0)
502795641502795641
上一篇 2016-08-24 10:25
下一篇 2016-08-24 10:25

相关推荐

  • 正则 grep查找find(xargs)练手

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# grep -E "^(root|fedora|user1)\>" /etc/passwd | cut -d: -f7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hello(); ~]# gre…

    Linux干货 2016-10-24
  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • Linux下的LVM管理命令

    一. 何为LVM?     Logical Volume Manager的缩写,它可以把多个分区、硬盘甚至RAID组合成一个存储设备来使用,并可以扩展或缩减空间。LVM有三层组成组成:底层的PV,中间的VG,上层的LV,如图所示         &n…

    Linux干货 2015-12-06
  • 第十四周 N21 总有刁民想害朕

    系统的INPUT和OUTPUT默认策略为DROP; 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的页面不允许访问;web服务器仅允许响应报文离开本机;  iptables -A  INPUT -p tcp –dpor…

    Linux干货 2016-10-17
  • Linux—文本处理(查看,统计,排序,抽取,合并,grep,基本正则表达式)

    Linux的文本管理有着众多的文本命令工具,这些工具基本可以满足不同的文本处理要求,很是灵活,掌握文本管理命令对系统的维护是必备基础技能。 1.文本查看命令:     (1)cat        语法:        cat [OPTION]… […

    Linux干货 2016-08-07
  • 几种常见的linux发行版

    redhat :Red Hat Enterprise Linux,是一个非常强大的服务器系统,超强的生命周期支持10年以上的升级和技术支持同样费用也非常可观8千多一个授权一年。如果没有license是不能在线升级系统,和通过yum安装软件。而centos则没有这些限制,所以centos是非常收欢迎的系统。 centos:是一个社区企业系操系统,其基础架构与r…

    Linux干货 2017-08-19