软件包管理

一、软件管理程序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命令的练习

    1、显示系统上root、Fedora、或user1用户的默认shell [root@localhost ~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f1,7 root:/bin/bash fedora:/bin/bash user1:/bin/bash 2、找出/etc/rc.…

    Linux干货 2017-07-30
  • 磁盘管理——MBR与GPT的分区

    一、硬盘的结构 这里讲的主要是网上所谓的老式磁盘,它是由一个个盘片组成的,我们先从个盘片结构讲起。如下图所示,图中的一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图中蓝色部分)。扇区是磁盘的最小组成单元,通常是512字节           &…

    Linux干货 2016-09-02
  • 系统基础之压缩归档工具详解

    压缩和解压缩工具 概论  在使用操作系统时,我们常会遇到大文件,会使我们很头疼.在面对时间和空间上的选择,只能选择空间,这就要用到压缩工具和归档工具,下面为大家一一介绍.  压缩文件只压缩文本格式的文件,通常不压缩已经是压缩的文件.  压缩文件就会涉及到压缩比:    原理:通过了解文本文件的数据形式,运用压…

    Linux干货 2016-08-18
  • linux高级文件管理系统

    磁盘配额:    linux是一个多用户的系统,磁盘配额是分配给每个用户的磁盘可用空间的限制。每一用户只能使用最大配额范围内的磁盘空间。root是不受配额限制的,只有普通用户才受限制。   Quota是在RedHatlinux下实现linux磁盘配额的工具,它支持单独的挂载文件系统,而不是一个目录。quota默认是安装的,如果没…

    Linux干货 2016-09-02
  • 网络服务之Apache

      互联网这个历史已经不算很短了,它大大方便了人类获取信息,开阔了人类的眼界,使得让这个世界变得小了起来,人与人之间的距离感也不会存在了,娱乐也更加丰富,听音乐、看电影等等这一系列,都能从网上进行,这些功能,都是由www服务器来提供服务,在Linux中,提供网络的服务器有很多种,那么今天我们就讲一个比较老牌,且依然能存活的服务器“阿帕奇”…

    Linux干货 2017-01-13
  • 网络管理之配置文件及一些命令的应用

    IP配置、信息、相关命令    IP地址     它们可唯一标识 IP 网络中的每台设备     每台主机(计算机、网络设备、外围设备)必须具有唯一的地址     IP 地址由两部分组成:   &nb…

    Linux干货 2016-09-22