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实用教程》人民邮电出版社出版发行 於岳编著
  • 相关阅读:
    机器学习(Machine Learning)&深入学习(Deep Learning)资料
    漫谈 机器学习
    Android 屏幕滑动事件
    Andriod中绘(画)图----Canvas的使用详解
    android studio上代码编译调试中遇到的一些异常记录
    Android签名详解(debug和release)
    如何用AndroidStudio导入github项目
    java synchronized详解
    视频编解码学习之一:理论基础
    Android 环境下编译FFmpeg
  • 原文地址:https://www.cnblogs.com/mylive/p/11235558.html
Copyright © 2011-2022 走看看