zoukankan      html  css  js  c++  java
  • 使用yum管理RPM软件包

    yum概念

    • 对比rpm命令,rpm命令需要手动寻找安装该软件包所需要的一系列依赖关系。当软件包需要卸载时,容易由于卸载掉了某个依赖关系而导致其他的软件包不能用。
    • yum(Yellow dog updaterModified)起初由TerraSoft研发的,其宗旨是自动化地升级、安装和删除RPM软件包,收集RPM软件包的相关信息,检查依赖性并且一次安装所有依赖的软件包,无须繁琐地一次次安装。

    yum的关键之处是要有可靠的软件仓库,可以是HTTP站点、FTP站点或者是本地软件池,但必须包括rpm的header,header包括了RPM软件包的各种信息,包括描述、功能、提供的文件以及依赖性等。正是收集了这些header并加以分析,其才能自动化地完成余下的任务。

    yum的特点
    • 可以同时配置多个软件仓库。
    • 简洁的配置文件/etc/yum.conf
    • 自动解决安装或者删除RPM软件包是遇到的依赖性问题
    • 使用yum非常方便
    • 保持与RPM数据库的一致性。
    repo是yum源软件仓库的配置文件

    默认存储在/etc/yum.repos.d目录中

    例如:方括号[]里面是软件源的名称,会被yum识别;Centos是软件仓库的名称,$releaserver定义了发行版本,baseurl是指定了软件包来源,支持的协议有http://(HTTP网站)、ftp://(FTP网站)以及file:///(本地源)这三种。enabled表示仓库中定义的源是否启用,0表示禁用,1表示启用。gpgcheck表示对从这个软件仓库中下载的RPM软件包将进行GPG校验,已确定该软件包的来源是有效和安全。gpgkey是定义用于校验的GPG密钥

    [root@localhost ~]# cat /etc/yum.repos.d/CentOS-Sources.repo
    # CentOS-Sources.repo
    #
    # The mirror system uses the connecting IP address of the client and the
    # update status of each mirror to pick mirrors that are updated to and
    # geographically close to the client.  You should use this for CentOS updates
    # unless you are manually picking other mirrors.
    #
    # If the mirrorlist= does not work for you, as a fall back you can try the 
    # remarked out baseurl= line instead.
    #
    #
    
    [base-source]
    name=CentOS-$releasever - Base Sources
    baseurl=http://vault.centos.org/centos/$releasever/os/Source/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #released updates 
    [updates-source]
    name=CentOS-$releasever - Updates Sources
    baseurl=http://vault.centos.org/centos/$releasever/updates/Source/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that may be useful
    [extras-source]
    name=CentOS-$releasever - Extras Sources
    baseurl=http://vault.centos.org/centos/$releasever/extras/Source/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    #additional packages that extend functionality of existing packages
    [centosplus-source]
    name=CentOS-$releasever - Plus Sources
    baseurl=http://vault.centos.org/centos/$releasever/centosplus/Source/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    
    创建本地软件仓库

    要在本地磁盘上创建本地软件仓库配置软件仓库配置文件,还要将linux系统安装光盘中的软件包复制到系统中。

    • 安装软件包 deltarpm、python-deltarpm和crearterepo软件包 1.使用cd切换到linux系统按光盘软件包目录 2.再使用rpm -ivh [软件包] 进行安装。
    • 复制安装包
    • 创建软件出口配置文件

    例如:创建配置文件/etc/yum.repos.d/rhel.repo内容如下

    [root@localhost ~]# mkdir /root/yum.repos.d
    [root@localhost ~]# vi /root/yum.repos.d/rhel.repo
    [root@localhost ~]# cat /root/yum.repos.d/rel.repo
    cat: /root/yum.repos.d/rel.repo: No such file or directory
    [root@localhost ~]# cat /root/yum.repos.d/rhel.repo
    name=Red Hat Enterprise Linux 7
    baseurl=file:///root/fhel
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    
    • 使用createrepo命令创建软件仓库
    [root@localhost ~]# createrepo /root/rhel
    

    如果提示createrepo命令不存在时执行以下命令

    [root@localhost ~]# yum -y install createrepo
    
    yum命令可以安装、更新、删除、显示软件包。yum可以自动进行系统更新,基于软件仓库的元数据分析,解决软件包依赖性关系。

    命令语法:yum [选项] [命令]

    选项含义
    -y 安装过程所有问题都回答yes
    -q 安静模式操作
    -v 显示详细信息
    -c<配置路径> 指定配置文件路径
    -x<软件包> 排查指定软件包
    --nogpgcheck 禁用GPG签名检查
    --installroot=路径 设置安装根目录路径

    yum目录部分描述

    命令描述
    install<软件包名> 按指定的软件包
    reinstall<软件包名> 重新安装软件包
    search<软件包名> 通过给定的字符串搜索软件包
    list 列出目前yum所管理的所有的软件包名称和版本
    list <软件包名> 列出指定软件包安装情况
    list installed 列出所有已安装的软件包
    ist installed<正则表达式> 列出软件仓库中与正则表达式匹配的所以已经安装的软件包
    list extras 列出所有已安装但不在yum软件仓库内的软件包
    list extras<正则表达式> 列出与正则表达式匹配的已安装的但不包含在软件仓库中的软件包
    list updates 列出所有可更新的软件包
    list updates<正则表达式> 列出软件仓库中与正则表达式匹配的所有可以更新的软件包
    list aviailable 列出软件仓库中所有可以安装的软件包
    list aviailable<正则表达式> 列出软件仓库中与正则表达式匹配的所有可以安装的软件包
    list recent 列出最近被添加到软件仓库中的软件包
    info 列出目前yum所管理的所有的软件包名称、版本和详细信息
    info<软件包名> 列出指定的软件包安装情况和详细信息
    info installed 列出所有已安装的软件包和详细信息
    info extras 列出所有已安装但不在yum软件仓库内的软件包
    info updates 列出所有可更新的软件包信息
    provides<软件包> 查找提供指定内容的软件包
    deplist<软件包名> 查看知道软件包的依赖关系
    update 全部更新
    update<软件包名> 更新指定的软件包
    check-update 检查可更新的软件包
    upgrade<软件包名> 更新指定的软件包
    updateinfo 显示软件仓库更新信息
    localupdate<软件包名> 本地更新软件包
    remove<软件包名> 删除指定软件包
    erase<软件包名> 从系统中删除一个或多个软件包
    clean packages 清除缓存目录下的软件包
    clean headers 清除缓存目录下的头文件
    clean 清除缓存数据
    clean all 清除缓存目录下的软件包及旧的头文件
    version 显示机器或可用仓库的版本
    shell 运行交互式的yum shell
    history 显示yum使用历史
    load-transaction 从文件名加载保存的事物
    makecache 生成数据缓存
    repolist 显示配置的软件仓库
    resolvedep 确定哪个软件包提供了给定的依赖
    distibution-synchronization 同步安装的软件包到最新版本
    tar包:用户将文件和目录进行归档或压缩以做备份用。比如:将许多文件一起一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件

    命令语法:tar [选项] [文件|目录]

    选项含义
    -c 创建新的归档文件
    -A 追加tar文件支归档
    -r 追加文件至归档结尾
    -t 列出归档文件的内容,查看已经备份了那些文件
    -u 仅追加比归档中副本更新的文件
    -x 从归档文件中释放文件
    -f 使用归档文件或设备
    -k 保存已经存在的文件。在还原文件时遇到相同的文件时,不会进行覆盖
    -m 不要解压文件的修改时间
    -M 创建多卷的归档文件,以便在几个磁盘中存放
    -v 详细报告tar处理的信息
    -w 每一步操作都要求确认
    -C<目录> 解压缩到特定目录
    -z 通过gzip过滤归档
    -j 通过bzip2过滤归档
    -J 通过xz过滤归档
    -a 使用归档后的后缀名来决定压缩程序

    例如:归档/root/abc目录,生成文件为/root/abc.tar

    [root@localhost ~]# tar cvf /root/abc.tar /root/abc
    tar: Removing leading `/' from member names
    /root/abc
    [root@localhost ~]# ls -l /root/abc.tar
    -rw-r--r--. 1 root root 10240 Jul 23 18:21 /root/abc.tar
    

    使用tar命令指定选项时可以不在选项前面输入-,比如cvf和-cvf起到作用是一样的

    例2:将文件/root/abc/d添加到/root/abc.tar归档文件中

    [root@localhost ~]# touch /root/abc d
    [root@localhost ~]# tar rvf /root/abc.tar /root/abc/d
    tar: Removing leading `/' from member names
    tar: /root/abc/d: Cannot stat: Not a directory
    tar: Exiting with failure status due to previous errors
    [root@localhost ~]# tar tvf /root/abc.tar
    -rw-r--r-- root/root       282 2019-07-17 18:20 root/abc
    
    tar命令特殊使用:在打包或解包的同时调用其他的压缩程序,比如调用gzip、bzip2和xz等。
    • tar调用gzip

    gzip是GNU组织开发的一个压缩程序,以".gz“结尾的文件就是gzip压缩的结果,与gzip想对应的解压缩程序是gunzip、tar目录中使用-z选项来调用gzip 例子:将/root/abc目录压缩成/root/abc.tar.gz文件

    [root@localhost ~]# tar tvf /root/abc.tar
    -rw-r--r-- root/root       282 2019-07-17 18:20 root/abc
    [root@localhost ~]# tar zcvf /root/abc.tar.gz /root/abc
    tar: Removing leading `/' from member names
    /root/abc
    [root@localhost ~]# ls -l /root/abc.tar.gz
    -rw-r--r--. 1 root root 243 Jul 23 18:54 /root/abc.tar.gz
    
    • tar调用bzip2

    bzip2是一个压缩能力更强的压缩程序,以".bz2"结尾的我呢见就是bzip2压缩的结果,与bzip相对应的解压程序是bunzip2.

    tar命令中使用-j选项来调用bzip2

    例子:将/root/abc目录压缩成/root/abc.tar.bz2文件

    [root@localhost ~]# tar jcvf /root/abc.tar.bz2 /root/abc
    tar: Removing leading `/' from member names
    /root/abc
    [root@localhost ~]# ls -l /root/abc.tar.bz2
    -rw-r--r--. 1 root root 0 Jul 23 18:59 /root/abc.tar.bz2
    
    • tar调用xz

    xz是一个使用LZMA压缩算法的无损数据压缩文件格式,以".xz"结尾的文件就是xz压缩的结果。tar目录中使用-J选项来调用。

    例子:将/root/abc目录压缩成/root/abc/tar.xz

    [root@localhost ~]# tar Jcvf /root/abc.tar.xz /root/abc
    tar: Removing leading `/' from member names
    /root/abc
    [root@localhost ~]# ls -l /root/abc.tar.xz
    -rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz
    

    查看压缩文件/root/abc.tar.xz

    root@localhost ~]# tar Jtvf /root/abc.tar.xz
    -rw-r--r-- root/root       282 2019-07-23 18:47 root/abc
    

    将压缩文件/root/abc.tar.xz文件解压缩出来

    root@localhost ~]# tar Jxvf /root/abc.tar.xz
    root/abc
    -rw-r--r--. 1 root root 300 Jul 23 19:07 /root/abc.tar.xz 

    查看压缩文件/root/abc.tar.xz

    root@localhost ~]# tar Jtvf /root/abc.tar.xz
    -rw-r--r-- root/root       282 2019-07-23 18:47 root/abc
    

    将压缩文件/root/abc.tar.xz文件解压缩出来

    root@localhost ~]# tar Jxvf /root/abc.tar.xz
    root/abc


    摘自:《Linux实用教程》人民邮电出版社出版发行 於岳编著
  • 相关阅读:
    POJ 2251 Dungeon Master
    HDU 3085 Nightmare Ⅱ
    CodeForces 1060 B Maximum Sum of Digits
    HDU 1166 敌兵布阵(树状数组)
    HDOJ 2050 折线分割平面
    HDU 5879 Cure
    HDU 1878 欧拉回路
    HDU 6225 Little Boxes
    ZOJ 2971 Give Me the Number
    HDU 2680 Choose the best route
  • 原文地址:https://www.cnblogs.com/mylive/p/11235558.html
Copyright © 2011-2022 走看看