• 软件包管理(rpm&yum)


    一、rpm包管理器

    rpm是一个功能强大的包管理工具,可用于构建,安装,查询,验证,更新和卸载软件包。

    用法:

      rpm [OPTION...]

    配置文件:

    /var/lib/rpm/ 已安装rpm包的元数据

    选项:

    • -i:安装
      • --test:测试安装
      • --nodeps:忽略依赖关系
      • --replacepkgs | replacefiles 重装
      • --nosignature:不检查来源合法性
      • --nodigest:不检查包完整性
      • --noscript:不执行程序包脚本
      • --nopre:不执行安装前脚本
      • --nopost:不执行安装后脚本
      • --nopreun:不执行卸载前脚本
      • --nopostun:不执行卸载后脚本
      • -v|-vv:显示过程
      • -h:显示进度条
      • --force:强制
    • -e:卸载
      • --allmatches:卸载包的所有版本
    • -U:升级安装
    • -F:升级
    • --oldpackage:降级
    • -q:查询
      • -a:显示所有包
      • -f:查询文件是由哪个包生成的
      • -p:查询未安装的文件名
      • -c:只看配置文件
      • -d:显示文档
      • -i:包的说明信息
      • -l:查看程序包提供了哪些文件
      • --scripts:查询包的脚本信息
      • -R:查询包所依赖的“能力”
      • --whatprovides CAPABILITY:查询指定的”能力“由哪个包所提供
      • --whatrequires CAPABILITY:查询指定的“能力”被哪个包所依赖
      • --changelog:查询rpm包的更新日志
      • --provides:列出包提供的“能力”
    • -V:校验包属性是否发生变化,以下为变化的信息
      • 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
    • -K:检查包的签名和完整性
    • --import /etc/pki/rpm-gpg/KEY导入公钥
    • --root=/path/ 安装到指定“/”下
    • --initdb:初始化rpm数据库
    • --rebuilddb:重建rpm数据库

    相关命令:

    ldconfig -p 查看系统中所有的库
    rpm2cpio FILE.rpm |cpio -tv 预览包内文件
    rpm2cpio FILE.rpm |cpio -idv /path/file 解压rpm包指定文件

    二、yum包管理器

    yum(Yellowdog Update Modifier)是一个基于rpm的交互式软件包管理器。

    用法:

      yum [options] [command] [package ...]

    配置文件:

    /etc/yum.conf 配置文件

    • cachedir 缓存目录
    • keepcache=0|1 安装时是否保留缓存的rpm包
    • logfile 日志文件
    • gpgcheck=0|1 检查签名和完整性

    /var/log/yum.log 日志

    /etc/yum.repos.d/FILE.repo  yum源文件

    [base]
    name=base               #描述信息
    baseurl=http|ftp|file   #yum仓库,路径指向repodata的父目录
    enabled=0|1
    gpgcheck=0|1
    gpgkey=/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    failovermethod={roundrobin|priority}
                            #roundrobin:意为随机挑选,为默认值
                            #priority:按顺序访问
    cost=                   #优先级,默认1000,值越小越优先
    mirror=http|ftp|file    #指向repo地址的文件

    /var/cache/yum/x86_64/6 缓存路径

    # yum-config-manager --add-repo=https://mirrors.aliyun.com/centos/6/os/x86_64/

    # yum-config-manager --disable “仓库名" 禁用仓库

    # yum-config-manager --enable “仓库名” 启用仓库

    # createrepo /rpmdir 创建元数据

    选项:

    • -y 安装或卸载是直接回答yes,不进入交互式
    • -q 静默模式
    • --disablerepo=repoidglob:临时禁用此处指定的repo
    • --enablerepo=repoidglob:临时启用此处指定的repo
    • --noplugins:禁用所有插件

    子命令:

    • list 列出repo源包含的所有软件包
    • installed 列出所有已安装的包
    • install 安装
    • reinstall 重新安装
    • repolist [all|disabled] 列出当前生效的repo源[所有|已关闭的]
    • clean all 清除缓存
    • update [package1...] 升级软件包
    • downgrade [package1...] 降级软件包
    • check-update 检查可升级的包
    • remove 卸载软件包
    • info 查看包的详细信息
    • provides 查找命令由哪些包提供
    • makecheck 手动生成缓存
    • search 模糊搜索包信息
    • deplist 检查依赖包
    • history 安装卸载的历史
      • list # 列出指定的操作
      • info # 列出指定操作的详细信息
      • undo # 撤销指定id的操作
      • redo # 重新执行
    • groupinstall 安装包组
    • groupupdate 升级包组
    • grouplist 列出所有包组
    • groupremove 移除包组
    • groupinfo 查看包组的详细信息

    示例1:搭建一个本地yum源(CentOS6.9)

    1、先将系统自带的repo文件移动到其他地方

    [root@web1 ~]# cd /etc/yum.repos.d/
    [root@web1 yum.repos.d]# ls
    CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo  epel-testing.repo
    CentOS-Debuginfo.repo  CentOS-Media.repo      epel.repo
    [root@web1 yum.repos.d]# mv ./* ~
    [root@web1 yum.repos.d]# ls

    2、将本地cdrom挂载到指定目录并设置开机挂载

    [root@web1 ~]# mkdir /media/cdrom
    [root@web1 ~]# mount -r /dev/sr0 /media/cdrom 
    [root@web1 ~]# ls /media/cdrom
    CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-Debug-6
    EFI              Packages                  RPM-GPG-KEY-CentOS-Security-6
    EULA             RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Testing-6
    GPL              repodata                  TRANS.TBL
    images           RPM-GPG-KEY-CentOS-6
    [root@web1 ~]# vim /etc/fstab
    /dev/sr0                /media/cdrom            iso9660 defaults        0 0 #加入开机自动挂载

    3、配置yum源并测试

    # vim /etc/yum.repos.d/base.repo

    [base]
    name=cdrom
    baseurl=file:///media/cdrom/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
    [root@web1 ~]# yum repolist
    Loaded plugins: fastestmirror, security
    Loading mirror speeds from cached hostfile
    base                                                              | 4.0 kB     00:00 ... 
    base/primary_db                                                   | 4.7 MB     00:00 ... 
    repo id                                   repo name                                status
    base                                      cdrom                                    6,706
    repolist: 6,706

    测试OK!

    示例2:配置网络源(epel源)

    以阿里源为例,下载repo文件到指定目录,测试OK!

    [root@web1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    [root@web1 ~]# cat /etc/yum.repos.d/epel.repo 
    [epel]
    name=Extra Packages for Enterprise Linux 6 - $basearch
    baseurl=http://mirrors.aliyun.com/epel/6/$basearch
            http://mirrors.aliyuncs.com/epel/6/$basearch
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
    failovermethod=priority
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
     
    [epel-debuginfo]
    name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
    baseurl=http://mirrors.aliyun.com/epel/6/$basearch/debug
            http://mirrors.aliyuncs.com/epel/6/$basearch/debug
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    gpgcheck=0
     
    [epel-source]
    name=Extra Packages for Enterprise Linux 6 - $basearch - Source
    baseurl=http://mirrors.aliyun.com/epel/6/SRPMS
            http://mirrors.aliyuncs.com/epel/6/SRPMS
    #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
    failovermethod=priority
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    gpgcheck=0[root@web1 ~]# yum repolist
    Loaded plugins: fastestmirror, security
    Loading mirror speeds from cached hostfile
     * epel: mirrors.aliyun.com
    repo id               repo name                                                    status
    base                  cdrom                                                         6,706
    epel                  Extra Packages for Enterprise Linux 6 - x86_64               12,497
    # rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm  #CentOS7安装repo源

     记录于2018.04.19 20:41

  • 相关阅读:
    可重入的自旋锁
    自旋锁浅析
    hibernate规避SQL注入实例
    关于2B的转义问题
    java指定文件编码格式
    win10下启动zkui
    【转】角落的开发工具集之Vs(Visual Studio)2017插件推荐
    《LINQ技术详解C#》-4.延迟操作符(第2部分 LINQ到对象)
    《LINQ技术详解C#》-2.查询表达式翻译为标准查询操作符
    Code alignment 代码对齐改进(VS2017)
  • 原文地址:https://www.cnblogs.com/L-dongf/p/8886117.html
Copyright © 2020-2023  润新知