zoukankan      html  css  js  c++  java
  • 【Linux】YUM Repositories for CentOS, RHEL & Fedora Systems

    这里是官方wiki:https://wiki.centos.org/AdditionalResources/Repositories

    一、简介

    YUM(Yellowdog Updater Modified)是一种开源的,广泛使用的基于命令行和图形的包管理工具,适用于基于RPM(RedHat Package Manager)的Linux系统,包括但不限于Red Hat Enterprise Linux(RHEL),CentOS和Scientific Linux(SL),Oracle Linux(OL)。它用于在系统上安装,更新,删除或搜索软件包。要安装未包含在默认基础和更新存储库中的软件包,以及其他CentOS存储库(Extras,Centosplus,CentOS-Fasttrack,Continuous Release和Software Collections),您需要安装并启用其他第三方存储库。

    先介绍两个命令,yum 和 rpm

    命令介绍:https://www.computerhope.com/unix/yum.htm

    二、YUM的常见用法

    1、选项

    • -h:显示帮助信息;

    • -y:对所有的提问都回答“yes”;

    • -c:指定配置文件;

    • -q:安静模式;

    • -v:详细模式;

    • -d:设置调试等级(0-10);

    • -e:设置错误等级(0-10);

    • -R:设置yum处理一个命令的最大等待时间;

    • -C:完全从缓存中运行,而不去下载或者更新任何头文件。

    2、参数

    • install:安装rpm软件包; 安装到指定目录: yum install --installroot=yourDirectory rpmPackage

    • update:更新rpm软件包;

    • check-update:检查是否有可用的更新rpm软件包;

    • remove:删除指定的rpm软件包;删除是通常不要去删除依赖。 yum remove --nodeps yourRPM

    • list:显示软件包的信息;

    • search:检查软件包的信息;

    • info:显示指定的rpm软件包的描述信息和概要信息;

    • clean:清理yum过期的缓存;

    • shell:进入yum的shell提示符;

    • resolvedep:显示rpm软件包的依赖关系;

    • localinstall:安装本地的rpm软件包;

    • localupdate:显示本地rpm软件包进行更新;

    • deplist:显示rpm软件包的所有依赖关系。

    3、实例

    部分常用的命令包括:

    • 自动搜索最快镜像插件:yum install yum-fastestmirror

    • 安装yum图形窗口插件:yum install yumex

    • 查看可能批量安装的列表:yum grouplist

    4、命令

    安装
    yum install              #全部安装
    yum install package1     #安装指定的安装包package1
    yum groupinsall group1   #安装程序组group1
    
    更新和升级
    yum update               #全部更新
    yum update package1      #更新指定程序包package1
    yum check-update         #检查可更新的程序
    yum upgrade package1     #升级指定程序包package1
    yum groupupdate group1   #升级程序组group1
    
    查找
    yum info package1      #显示安装包信息package1
    yum list               #显示所有已经安装和可以安装的程序包
    yum list package1      #显示指定程序包安装情况package1
    yum groupinfo group1   #显示程序组group1信息yum search string 根据关键字string查找安装包
    
    删除
    yum remove | erase package1   #删除程序包package1
    yum groupremove group1             #删除程序组group1
    yum deplist package1               #查看程序package1依赖情况
    
    清除缓存
    yum clean packages       #清除缓存目录下的软件包
    yum clean headers        #清除缓存目录下的 headers
    yum clean oldheaders     #清除缓存目录下旧的 headers

    三、rpm常见用法

    rpm,Redhat Package Manager,即为红帽公司为RHEL开发的专用包管理器,后来更改为RPM Package Manager,类似于GNU项目,使用递归命名,GNU's Not Unix.

    通用选项

    • -v 显示附加信息

    • -vv 显示调试信息

    • --root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下

    • --dbpath 设置RPM 资料库存所在的路径为

    查询

    1、查询指定的包是否安装

    [root@localhost ~]# rpm -q tree
    tree-1.5.3-3.el6.x86_64

    2、查询指定文件来自于那个安装包

    [root@localhost ~]# rpm -qf /bin/ls
    coreutils-8.4-43.el6.x86_64

    3、查询包更新信息

    [root@localhost ~]# rpm -q --changelog tree
    * Thu Nov 27 2014 Tim Waugh <twaugh@redhat.com> - 1.5.3-3
    - Handle large UID/GID values (bug #1110559).
    
    * Wed Mar 03 2010 Tim Waugh <twaugh@redhat.com> 1.5.3-2
    - Added comments to all patches.
    ...

    4、查询包元数据

    [root@localhost ~]# rpm -qi tree
    Name        : tree                         Relocations: (not relocatable)
    Version     : 1.5.3                             Vendor: CentOS
    Release     : 3.el6                         Build Date: Wed 14 Jan 2015 08:21:02 PM CST
    Install Date: Sat 25 Mar 2017 04:17:05 AM CST      Build Host: c6b9.bsys.dev.centos.org
    Group       : Applications/File             Source RPM: tree-1.5.3-3.el6.src.rpm
    ...

    5、查询包生成的所有文件

    [root@localhost ~]# rpm -ql tree
    /usr/bin/tree
    /usr/share/doc/tree-1.5.3
    /usr/share/doc/tree-1.5.3/LICENSE
    /usr/share/doc/tree-1.5.3/README
    /usr/share/man/man1/tree.1.gz

    6、查询包相关文档

    [root@localhost ~]# rpm -qd tree
    /usr/share/doc/tree-1.5.3/LICENSE
    /usr/share/doc/tree-1.5.3/README
    /usr/share/man/man1/tree.1.gz

    7、查询包配置文件

    [root@localhost ~]# rpm -qc bash
    /etc/skel/.bash_logout
    /etc/skel/.bash_profile
    /etc/skel/.bashrc

    8、查询安装、卸载前后执行的脚本

    [root@localhost ~]# rpm -q --scripts bash
    postinstall scriptlet (using <lua>):
    bashfound = false;
    shfound = false;
     
    f = io.open("/etc/shells", "r");
    if f == nil
    then

    9、安装rpm程序包

    [root@localhost ~]# rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm 

    10、在安装过程不执行脚本

    [root@localhost ~]# rpm -ivh --noscripts tree-1.5.3-3.el6.x86_64.rpm 
    warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
    Preparing...                ########################################### [100%]
       1:tree                   ########################################### [100%]

    11、覆盖、替换安装

    [root@localhost ~]# rpm -ivh --replacepkgs tree-1.5.3-3.el6.x86_64.rpm 
    warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
    Preparing...                ########################################### [100%]
       1:tree                   ########################################### [100%]

    详细选项

    选项含义
    -h 安装时以#显示安装进度
    --percent 以百分比的形式输出安装的进度
    --test 测试安装
    --replacepkgs 替换属于其它软件包的文件
    --force 忽略软件包及文件的冲突
    --noscripts 不运行预安装和后安装脚本
    --ignorearch 不校验软件包的结构
    --ignoreos 不检查软件包运行的操作系统
    --nodeps 不检查依赖性关系

     12、一般卸载

    [root@localhost ~]# rpm -e gcc

    13、不执行脚本卸载

    [root@localhost ~]# rpm -e --noscripts tree

    14、升级

    [root@localhost ~]# rpm -Uvh tree-1.5.3-3.el6.x86_64.rpm 

    -U和-F选项均可以升级一个包.但是,旧包不存在时,-U选项会安装新包,而-F选项不安装新包。

    四、仓库-Repository

    关于yum-priorities插件, 这个插件是用来设置yum在调用软件源时的顺序的。因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装yum-priorities这插件了。

    安装 yum-priorities 插件后, 您可以给各个源设置优先级priority,一般设置官方标准源优先级为 1, 最高, 第三方推荐 >10

    1、EPEL Repository

    EPEL(企业Linux的额外软件包)是一个免费的,开源的,流行的,基于社区的存储库项目,旨在提供在Fedora中开发,测试和改进的高质量软件包,并可用于RHEL,CentOS,Scientific Linux等的软件包。

    ### For CentOS/RHEL 7 ###
    yum localinstall   http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
    
    ### For CentOS/RHEL 6 ###
    yum localinstall  http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
    
    别忘了,还有一步
    yum install yum-priorities

    2、REMI Repository

    REMI是一个广泛使用的第三方存储库,它为Fedora和Enterprise Linux(EL)发行版的用户提供最新版本的PHP、MySql和一些其他相关软件,如RHEL,CentOS,Oracle,Scientific Linux等。在启用Remi之前,需要首先启用EPEL仓库

    ### For CentOS/RHEL 7 ###
    yum install epel-release
    wget https://rpms.remirepo.net/enterprise/remi-release-7.rpm
    rpm -Uvh remi-release-7.rpm
    subscription-manager repos --enable=rhel-7-server-optional-rpms  [On RHEL only]
    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    
    ### For CentOS/RHEL 6 ###
    yum install epel-release
    wget https://rpms.remirepo.net/enterprise/remi-release-6.rpm
    rpm -Uvh remi-release-6.rpm
    rhn-channel --add --channel=rhel-$(uname -i)-server-optional-6   [On RHEL only]
    rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
    
    yum install yum-priorities

    3、RPMFusion Repository

    RPMFusion是一个第三方存储库,为Fedora和Enterprise Linux发行版提供一些免费和非免费的附加软件,包括RHEL和CentOS。在启用RPM Fusion之前,您需要启用EPEL repo。

    ### For CentOS/RHEL 7 ###
    yum install epel-release
    yum localinstall  https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
    yum localinstall  https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
    
    ### For CentOS/RHEL 6 ###
    yum install epel-release
    yum localinstall  https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm
    yum localinstall  https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm

    4. ELRepo Repository

    ELRepo(社区企业Linux存储库)是一个RPM存储库,旨在提供与硬件相关的软件包,如文件系统驱动程序,图形驱动程序,网络驱动程序,声音驱动程序,网络摄像头和视频驱动程序,以改善您使用Enterprise Linux的体验。要在系统上启用ELRepo,请使用以下命令。

    ### For CentOS/RHEL 7 ###
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
    
    ### For CentOS/RHEL 6 ###
    rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
    rpm -Uvh https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

    5. NUX-dextop Repository

    NUX-dextop是用于EL的桌面和多媒体软件包的RPM存储库。它包含许多基于图形软件和命令行界面(CLI)的程序,包括Remmina远程桌面共享工具,VLC媒体播放器等等。在启用nux-dextop之前,还需要启用EPEL repo。

    ### For CentOS/RHEL 7 ###
    yum -y install epel-release
    rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
    
    ### For CentOS/RHEL 6 ###
    yum -y install epel-release
    rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

    6. GhettoForge  Repository

    GhettoForge项目专注于为Enterprise Linux版本6和7提供包,这些包目前不在基本EL包集中,也不在其他第三方存储库中。您可以使用以下命令在系统上启用GhettoForge。

    ### For CentOS/RHEL 7 ###
    rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm
    
    ### For CentOS/RHEL 6 ###
    rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el6.noarch.rpm

    7、Psychotic Ninja Repository

    对于Enterprise Linux版本6和7,Psychotic Ninja旨在提供基本EL包集中以及其他第三方存储库中不存在的高质量包。要启用Psychotic Ninja存储库,首先需要导入GPG密钥然后安装它。

    rpm --import http://wiki.psychotic.ninja/RPM-GPG-KEY-psychotic
    rpm -ivh http://packages.psychotic.ninja/6/base/i386/RPMS/psychotic-release-1.0.0-1.el6.psychotic.noarch.rpm

    请注意,这个统一的精神病发布包适用于所有版本和体系结构,包括64位版本的CentOS / RHEL 7。

    8、IUS Community Repository

    最后列出的是,IUS(Inline with Upstream Stable)是一个新的第三方社区支持的repo,为最新的PHP,Python,MySQL上游版本提供高质量的RPM包,用于Red Hat Enterprise Linux(RHEL)和CentOS 。

    就像我们看到的许多回购一样,IUS也依赖于EPEL。

    ### For CentOS/RHEL 7 ###
    yum -y install epel-release
    rpm -Uvh https://centos7.iuscommunity.org/ius-release.rpm
    
    ### For CentOS/RHEL 6 ###
    yum -y install epel-release
    rpm -Uvh https://centos6.iuscommunity.org/ius-release.rpm

    9、Webtatic Repository

    Webtatic是一个yum存储库,通常处理与Web主机相关的包,CentOS / RHEL存储库中不包含这些包。 执行以下命令之一以在CentOS / RHEL 7/6系统上安装REMI yum存储库。

    ### For CentOS/RHEL 7 ###
    yum localinstall  http://repo.webtatic.com/yum/el7/webtatic-release.rpm
    
    ### For CentOS/RHEL 6 ###
    yum localinstall  http://repo.webtatic.com/yum/el6/latest.rpm

    以上部分仓库也可以忽略key,参数是:--nogpgcheck 

    五、解决冲突

    特殊情况 : 但在不同优先级的源中都含有同一个包时, 它的行为可能就不是我们所需要的.

    例如, 在 base 源中有个包 : abc-2.2.0.x86_64.rpmbase 是最高优先级. 在其他的优先级中也有许多 abc 包, 如果你想安装 abc-2.1.0-x86_64.rpm, 通过命令

    yum install abc-2.1.0

    就会出现下面的提示:xx packages excluded due to repository priority protection,并且找不到所需要的包,这是因为在高优先级源中存在的包,会将其他低优先级中的包屏蔽掉,因此无法从低优先级的源中安装所需要的包。

    修改priorities的配置文件是/etc/yum/pluginconf.d/priorities.conf

    其内容为:

    [main]
    
    enabled=0   # 0禁用 1启用

    默认是1;设置enabled = 0, 这样就可以禁用priorities插>件。从而能够安装任意源上的包。

    参考文章:

    https://www.cnblogs.com/mityaya/p/4672312.html

    https://tecadmin.net/top-5-yum-repositories-for-centos-rhel-systems/

  • 相关阅读:
    Maidsafe-去中心化互联网白皮书
    The Top 20 Cybersecurity Startups To Watch In 2021 Based On Crunchbase
    Top 10 Blockchain Security and Smart Contract Audit Companies
    The 20 Best Cybersecurity Startups To Watch In 2020
    Blockchain In Cybersecurity: 11 Startups To Watch In 2019
    004-STM32+BC26丨260Y基本控制篇(阿里云物联网平台)-在阿里云物联网平台上一型一密动态注册设备(Android)
    涂鸦开发-单片机+涂鸦模组开发+OTA
    000-ESP32学习开发-ESP32烧录板使用说明
    03-STM32+Air724UG远程升级篇OTA(阿里云物联网平台)-STM32+Air724UG使用阿里云物联网平台OTA远程更新STM32程序
    03-STM32+Air724UG远程升级篇OTA(自建物联网平台)-STM32+Air724UG实现利用http/https远程更新STM32程序(TCP指令,单片机程序检查更新)
  • 原文地址:https://www.cnblogs.com/chenpingzhao/p/10951172.html
Copyright © 2011-2022 走看看