Linux下的rpm命令和yum命令,包管理器的使用

包管理器:打包、包管理(安装、升级、卸载、查询及校验)
    deb:debian
    rpm:redhat package manager
      RPM is Package Manager

程序包的组成部分:
    二进制程序:/bin,/sbin,/usr/bin,/usr/sbin
    库文件:/lib64,/usr/lib64
    配置文件:/etc
    帮助文件:manual,info等
   

包管理器的作用:
    打包:一个单一的归档文件中;
    安装:把打包文件展开在当前中;
    卸载:把文件包整合并删除;
    升级:替换老程序;
    查询:
    校验:包的来源合法性、包的完整性;
   
rpm包:主要功能就是打包--rpmbuild:基于specs文件进行打包


     分包机制:
      testapp-VERSION.tar.gz
      主包:testapp-VERSION
      支包:testapp-devel-VERSION     \\支包为主包下的其他不常用的安装包
      VERSION通常有三种版本:major.minor.release

rpm包的命名机制:
  name-VERSION-RELEASE.ARCH.rpm
     release:rpm版本号

包和包之间:有可能存在依赖关系;
    例如安装了X ,必须再安装Y 才可正常使用X的功能

rpm数据库:在/var/lib/rpm目录下

如何获取rpm包:
  1.发行版提供的程序包;
  2.Fedora-EPEL 程序项目;
  3.项目官方站点;
  4.搜索引擎
      rpmfind.net
      rpm.phone.net
      pkgs.org

查看centos版本:cat  /etc/centos-release

Centos识别光盘用的设备文件:/dev/cdrom 
   ls | wc -l  查看总文件数

基于rpm命令实现程序包管理:
  安装:

rpm  {-i|--install}   [install-options]   PACK-AGE_FILE ..
    -i:直接安装
    -v:显示详细过程,-vv,-vvv
    -h:hash标记

rpm -ivh 安装
rpm -e  卸载
rpm -vvh 详细显示安装过程
rpm -q 查询安装

例:利用rpm安装包并详细显示安装过程,并卸载:

首先我们需要挂载程序包:

1.创建个挂载目录,/media/cdrom,挂载成功:

image

2.查看可安装的程序包,首先我们要进入到挂载目录,/media/cdrom,查看其目录下有个包目录Packages:

image

可利用wc �Cl 查看文件总量:

image

3.随便找个安装包选择安装,安装成功:

image

4.卸载安装包:

image

  每个rpm包都提供一个或多个capabilities(能力)
  被依赖的程序包如果不想管的话:
--nodeps 忽略依赖关系安装;

第一次安装包显示,具有依赖关系,那么我们使用--nodeps就可以忽略依赖直接安装;

image
--replacepkgs 重装某个程序包;

安装一个已经安装过得程序包:

image
--oldpackage 降级:升级后不熟悉或者不习惯,可降级回之前的

版本;
--force 强制升级;

rpm   {-U|--upgrade}   [install-options]  PACK-
       AGE_FILE ...

rpm  {-F|--freshen}   [install-options]   PACK-
       AGE_FILE ...

-Uvh:如果有旧版本程序包,则升级之,如果没有则安装之。
-Fvh:如果有旧版本程序包,则升级之,如果没有则不安装。


卸载:
rpm   {-e|--erase}   [--allmatches]  [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

卸载我们常用的就只是-e,所以后面跟的其他选项一般不会太用到。

查询:
  rpm   {-q|--query}   [select-options]-挑选选项 [query-options]-查询选项
  常用选项:
   -qa 查询所有安装
   -qf 查询此处指定文件由哪个程序包安装生成。查询为目录:/etc/fstab
   -qc 查询指定程序包安装生成的配置文件。
   -qd 查询指定的程序包安装生成的帮助文档。
   -qi 查询指定的程序包的相关信息。
   -ql 查询程序包安装生成的所有文件列表。
   -qR 查询程序包依赖于哪些提供的程序包
   -q --scripts 查询程序包相关脚本:
      preinstall:安装前脚本
      postinstall:安装后脚本
      preuninstall:卸载前脚本
      postunistall:卸载后脚本

   -p:查询针对的是未安装的程序包文件,通常跟-q一起使用;

例:使用-pqc查询安装包生成的配置文件:
    image

校验:
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 mTime differs
       P caPabilities differ

包校验:
   来源合法性验证:非对称加密
   包完整性验证:单向加密
    导入秘钥的命令:rpm --import 秘钥路径
    校验:rpm -K 指明安装包

秘钥位置:/etc/pki/rpm-gpgs

  image

导入秘钥:

image

校验:

image

 


YUM:YellowDog Updater Modified
    yum:rpm包前端管理工具;自动解决程序包的依赖关系;
    yum依赖yum仓库:yum repositories
      文件服务器:
        ftp://hostname/path/to/repo  \\hostname为ftp主机名
        http://hostname/path/to/repo
        file:///path/to/repo


yum程序的配置文件
  /etc/yum.conf  定义全局配置:对所有仓库都适用的配置
  /etc/yum.repos.d/*.rpo  一个文件通常用于一个或一组功能相近或相关的仓库

   定义一个仓库指向:
    [REPO_ID]
    name=
    baseurl=可以有多个路径,但是内容必须一样,建议不指向多个。
    mirrorlist=SCHEME://HOSTNAME/PATH/TO/MIRROR_LIST_FILE
    enabled={1|0} 1启用  0禁用  默认启用
    gpgcheck={1|0} 1检验  0不检验
    gpgkey=指明使用哪个秘钥来检验
    cost=指明yum仓库的开销
   
    定义仓库指向时可用的变量:
         $releasever:引用当前系统的主版本号
         $basearch:当前系统的基本架构
            i386,i486,i586,i686:i386,X86_64

例:http://mirrors.aliyun.org/Centos/$releasever/os/$basearch    \\$releasever指Centos系统版本, $basearch指系统的架构,如32位或者64位;

    
yum命令的使用
  yum [options] [command] [package ...]
    安装:yum install
    卸载:yum remove
    查询:yum info
              search  KEYWORD
              list all|installed|availiable
              probides  /PATH
    升级:yum update; checkupdate  查询可升级
    重新安装:reinstall
    降级:downgrade
    清理缓存:clean
    生成缓存:makecache
    包组:grouplist  列出所有包组
          groupinfo ""
          groupinstall "GRP_NAME"安装组文件
          groupremove "GRP_NAME"卸载组文件
    仓库:repolist all|enabled|disabled 列出仓库

1.使用yum进行安装和卸载程序包:

image

image

2.使用yum查询安装包信息:

image

3.使用yum查看包组:

image

4.使用yum查看enabled仓库:

image


如何使用发行版的光盘当做本地仓库:
    挂载光盘至某目录
    定义仓库,使用file:///指明其访问路径
 
创建本地仓库:
   yum install createrepo
   createrepo /PATH/TO/RPMFILES

DNF:下一代前端管理器;

你可能感兴趣的:(linux,manager,二进制,配置文件,package)