白云出岫 發表於 2019-5-30 20:18:00

【Linux】YUM Repositories for CentOS, RHEL & Fedora Systems

<p>这里是官方wiki:https://wiki.centos.org/AdditionalResources/Repositories</p>
<h3>一、简介</h3>
<p>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),您需要安装并启用其他第三方存储库。</p>
<p>先介绍两个命令,yum 和 rpm</p>
<p>命令介绍:https://www.computerhope.com/unix/yum.htm</p>
<h3>二、YUM的常见用法</h3>
<h4>1、选项</h4>
<ul>
<li>
<p>-h:显示帮助信息;</p>
</li>
<li>
<p>-y:对所有的提问都回答“yes”;</p>
</li>
<li>
<p>-c:指定配置文件;</p>
</li>
<li>
<p>-q:安静模式;</p>
</li>
<li>
<p>-v:详细模式;</p>
</li>
<li>
<p>-d:设置调试等级(0-10);</p>
</li>
<li>
<p>-e:设置错误等级(0-10);</p>
</li>
<li>
<p>-R:设置yum处理一个命令的最大等待时间;</p>
</li>
<li>
<p>-C:完全从缓存中运行,而不去下载或者更新任何头文件。</p>
</li>
</ul>
<h4>2、参数</h4>
<ul>
<li>
<p>install:安装rpm软件包; 安装到指定目录: yum install --installroot=yourDirectory rpmPackage</p>
</li>
<li>
<p>update:更新rpm软件包;</p>
</li>
<li>
<p>check-update:检查是否有可用的更新rpm软件包;</p>
</li>
<li>
<p>remove:删除指定的rpm软件包;删除是通常不要去删除依赖。 yum remove --nodeps yourRPM</p>
</li>
<li>
<p>list:显示软件包的信息;</p>
</li>
<li>
<p>search:检查软件包的信息;</p>
</li>
<li>
<p>info:显示指定的rpm软件包的描述信息和概要信息;</p>
</li>
<li>
<p>clean:清理yum过期的缓存;</p>
</li>
<li>
<p>shell:进入yum的shell提示符;</p>
</li>
<li>
<p>resolvedep:显示rpm软件包的依赖关系;</p>
</li>
<li>
<p>localinstall:安装本地的rpm软件包;</p>
</li>
<li>
<p>localupdate:显示本地rpm软件包进行更新;</p>
</li>
<li>
<p>deplist:显示rpm软件包的所有依赖关系。</p>
</li>
</ul>
<h4>3、实例</h4>
<p>部分常用的命令包括:</p>
<ul>
<li>
<p>自动搜索最快镜像插件:<code>yum install yum-fastestmirror</code></p>
</li>
<li>
<p>安装yum图形窗口插件:<code>yum install yumex</code></p>
</li>
<li>
<p>查看可能批量安装的列表:<code>yum grouplist</code></p>
</li>
</ul>
<h4>4、命令</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">安装
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</pre>
</div>
<h3 id="centos下包安装rpm命令" data-source-line="1">三、rpm常见用法</h3>
<p>rpm,Redhat Package Manager,即为红帽公司为RHEL开发的专用包管理器,后来更改为RPM Package Manager,类似于GNU项目,使用递归命名,GNU's Not Unix.</p>
<h4 id="通用选项" data-source-line="5">通用选项</h4>
<ul>
<li>
<p>-v 显示附加信息</p>
</li>
<li>
<p>-vv 显示调试信息</p>
</li>
<li>
<p>--root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下</p>
</li>
<li>
<p>--dbpath 设置RPM 资料库存所在的路径为</p>
</li>
</ul>
<h4 id="查询" data-source-line="17">查询</h4>
<h4>1、查询指定的包是否安装</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -q tree
tree-1.5.3-3.el6.x86_64</pre>
</div>
<h4>2、查询指定文件来自于那个安装包</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -qf /bin/ls
coreutils-8.4-43.el6.x86_64</pre>
</div>
<h4>3、查询包更新信息</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -q --changelog tree
* Thu Nov 27 2014 Tim Waugh &lt;twaugh@redhat.com&gt; - 1.5.3-3
- Handle large UID/GID values (bug #1110559).

* Wed Mar 03 2010 Tim Waugh &lt;twaugh@redhat.com&gt; 1.5.3-2
- Added comments to all patches.
...</pre>
</div>
<h4>4、查询包元数据</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;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
...</pre>
</div>
<h4>5、查询包生成的所有文件</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;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</pre>
</div>
<h4>6、查询包相关文档</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;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</pre>
</div>
<h4>7、查询包配置文件</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc</pre>
</div>
<h4>8、查询安装、卸载前后执行的脚本</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -q --scripts bash
postinstall scriptlet (using &lt;lua&gt;):
bashfound = false;
shfound = false;

f = io.open("/etc/shells", "r");
if f == nil
then</pre>
</div>
<h4>9、安装rpm程序包</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm </pre>
</div>
<h4>10、在安装过程不执行脚本</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;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...                ###########################################
   1:tree                   ########################################### </pre>
</div>
<h4>11、覆盖、替换安装</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;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...                ###########################################
   1:tree                   ########################################### </pre>
</div>
<p>详细选项</p>
<table data-source-line="163">
<thead>
<tr><th>选项</th><th>含义</th></tr>
</thead>
<tbody>
<tr>
<td>-h</td>
<td>安装时以#显示安装进度</td>
</tr>
<tr>
<td>--percent</td>
<td>以百分比的形式输出安装的进度</td>
</tr>
<tr>
<td>--test</td>
<td>测试安装</td>
</tr>
<tr>
<td>--replacepkgs</td>
<td>替换属于其它软件包的文件</td>
</tr>
<tr>
<td>--force</td>
<td>忽略软件包及文件的冲突</td>
</tr>
<tr>
<td>--noscripts</td>
<td>不运行预安装和后安装脚本</td>
</tr>
<tr>
<td>--ignorearch</td>
<td>不校验软件包的结构</td>
</tr>
<tr>
<td>--ignoreos</td>
<td>不检查软件包运行的操作系统</td>
</tr>
<tr>
<td>--nodeps</td>
<td>不检查依赖性关系</td>
</tr>
</tbody>
</table>
<h4 id="卸载" data-source-line="175">&nbsp;12、一般卸载</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -e gcc</pre>
</div>
<h4>13、不执行脚本卸载</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -e --noscripts tree</pre>
</div>
<h4 id="升级" data-source-line="192">14、升级</h4>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">#&nbsp;rpm -Uvh tree-1.5.3-3.el6.x86_64.rpm </pre>
</div>
<p>-U和-F选项均可以升级一个包.但是,旧包不存在时,-U选项会安装新包,而-F选项不安装新包。</p>
<h3>四、仓库-Repository</h3>
<p>关于yum-priorities插件, 这个插件是用来设置yum在调用软件源时的顺序的。因为官方提供的软件源,都是比较稳定和被推荐使用的。因此,官方源的顺序要高于第三方源的顺序。如何保证这个顺序,就需要安装yum-priorities这插件了。</p>
<p>安装&nbsp;<code>yum-priorities</code>&nbsp;插件后, 您可以给各个源设置优先级<code>priority,</code>一般设置官方标准源优先级为&nbsp;<code>1</code>, 最高, 第三方推荐&nbsp;<code>&gt;10</code></p>
<h4>1、EPEL Repository</h4>
<p>EPEL(企业Linux的额外软件包)是一个免费的,开源的,流行的,基于社区的存储库项目,旨在提供在Fedora中开发,测试和改进的高质量软件包,并可用于RHEL,CentOS,Scientific Linux等的软件包。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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 localinstallhttp://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</pre>
</div>
<h4>2、REMI Repository</h4>
<p>REMI是一个广泛使用的第三方存储库,它为Fedora和Enterprise Linux(EL)发行版的用户提供最新版本的PHP、MySql和一些其他相关软件,如RHEL,CentOS,Oracle,Scientific Linux等。在启用Remi之前,需要首先启用EPEL仓库</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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
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   
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

yum install yum-priorities</pre>
</div>
<h4>3、RPMFusion&nbsp;Repository</h4>
<p>RPMFusion是一个第三方存储库,为Fedora和Enterprise Linux发行版提供一些免费和非免费的附加软件,包括RHEL和CentOS。在启用RPM Fusion之前,您需要启用EPEL repo。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### For CentOS/RHEL 7 ###
yum install epel-release
yum localinstallhttps://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
yum localinstallhttps://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

### For CentOS/RHEL 6 ###
yum install epel-release
yum localinstallhttps://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm
yum localinstallhttps://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm</pre>
</div>
<h4>4. ELRepo&nbsp;Repository</h4>
<p>ELRepo(社区企业Linux存储库)是一个RPM存储库,旨在提供与硬件相关的软件包,如文件系统驱动程序,图形驱动程序,网络驱动程序,声音驱动程序,网络摄像头和视频驱动程序,以改善您使用Enterprise Linux的体验。要在系统上启用ELRepo,请使用以下命令。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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</pre>
</div>
<h4>5. NUX-dextop&nbsp;Repository</h4>
<p>NUX-dextop是用于EL的桌面和多媒体软件包的RPM存储库。它包含许多基于图形软件和命令行界面(CLI)的程序,包括Remmina远程桌面共享工具,VLC媒体播放器等等。在启用nux-dextop之前,还需要启用EPEL repo。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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</pre>
</div>
<h4>6. GhettoForge&nbsp;&nbsp;Repository</h4>
<p>GhettoForge项目专注于为Enterprise Linux版本6和7提供包,这些包目前不在基本EL包集中,也不在其他第三方存储库中。您可以使用以下命令在系统上启用GhettoForge。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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</pre>
</div>
<h4>7、Psychotic Ninja Repository</h4>
<p>对于Enterprise Linux版本6和7,Psychotic Ninja旨在提供基本EL包集中以及其他第三方存储库中不存在的高质量包。要启用Psychotic Ninja存储库,首先需要导入GPG密钥然后安装它。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">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</pre>
</div>
<p>请注意,这个统一的精神病发布包适用于所有版本和体系结构,包括64位版本的CentOS / RHEL 7。</p>
<h4>8、IUS Community Repository</h4>
<p>最后列出的是,IUS(Inline with Upstream Stable)是一个新的第三方社区支持的repo,为最新的PHP,Python,MySQL上游版本提供高质量的RPM包,用于Red Hat Enterprise Linux(RHEL)和CentOS 。</p>
<p>就像我们看到的许多回购一样,IUS也依赖于EPEL。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### 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</pre>
</div>
<h4>9、Webtatic Repository</h4>
<p>Webtatic是一个yum存储库,通常处理与Web主机相关的包,CentOS / RHEL存储库中不包含这些包。 执行以下命令之一以在CentOS / RHEL 7/6系统上安装REMI yum存储库。</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">### For CentOS/RHEL 7 ###
yum localinstallhttp://repo.webtatic.com/yum/el7/webtatic-release.rpm

### For CentOS/RHEL 6 ###
yum localinstallhttp://repo.webtatic.com/yum/el6/latest.rpm</pre>
</div>
<p>以上部分仓库也可以忽略key,参数是:--nogpgcheck&nbsp;</p>
<h3 id="h2_8">五、解决冲突</h3>
<p>特殊情况 : 但在不同优先级的源中都含有同一个包时, 它的行为可能就不是我们所需要的.</p>
<p>例如, 在&nbsp;<code>base</code>&nbsp;源中有个包 :&nbsp;<code>abc-2.2.0.x86_64.rpm</code>,&nbsp;<code>base</code>&nbsp;是最高优先级. 在其他的优先级中也有许多&nbsp;<code>abc</code>&nbsp;包, 如果你想安装&nbsp;<code>abc-2.1.0-x86_64.rpm</code>, 通过命令</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">yum install abc-2.1.0</pre>
</div>
<p>就会出现下面的提示:xx packages excluded due to repository priority protection,并且找不到所需要的包,这是因为在高优先级源中存在的包,会将其他低优先级中的包屏蔽掉,因此无法从低优先级的源中安装所需要的包。</p>
<p>修改priorities的配置文件是/etc/yum/pluginconf.d/priorities.conf</p>
<p>其内容为:</p>
<div class="cnblogs_Highlighter">
<pre class="brush:bash;gutter:true;">

enabled=0   # 0禁用 1启用</pre>
</div>
<p>默认是1;设置enabled = 0, 这样就可以禁用priorities插&gt;件。从而能够安装任意源上的包。</p>
<h3>参考文章:</h3>
<p>https://www.cnblogs.com/mityaya/p/4672312.html</p>
<p>https://tecadmin.net/top-5-yum-repositories-for-centos-rhel-systems/</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    <div class="showBottom">
<ul class="showBottomUl">
<li>作者:踏雪无痕</li>
<li>出处:http://www.cnblogs.com/chenpingzhao/</li>
<li>本文版权归作者和博客园共有,如需转载,请联系<strong>&nbsp;&nbsp;pingzhao1990#163.com</strong>&nbsp;</li>
</ul>
</div><br><br>
来源:https://www.cnblogs.com/chenpingzhao/p/10951172.html
頁: [1]
查看完整版本: 【Linux】YUM Repositories for CentOS, RHEL & Fedora Systems