CentOS 6 CentOS 7 配置yum源
<title>CentOS / RHEL 配置yum源</title><style type="text/css">.title { text-align: center; margin-bottom: 0.2em }
.subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 }
.todo { font-family: monospace; color: rgba(255, 0, 0, 1) }
.done { font-family: monospace; color: rgba(0, 128, 0, 1) }
.priority { font-family: monospace; color: rgba(255, 165, 0, 1) }
.tag { background-color: rgba(238, 238, 238, 1); font-family: monospace; padding: 2px; font-size: 80%; font-weight: normal }
.timestamp { color: rgba(190, 190, 190, 1) }
.timestamp-kwd { color: rgba(95, 158, 160, 1) }
.org-right { margin-left: auto; margin-right: 0; text-align: right }
.org-left { margin-left: 0; margin-right: auto; text-align: left }
.org-center { margin-left: auto; margin-right: auto; text-align: center }
.underline { text-decoration: underline }
#postamble p, #preamble p { font-size: 90%; margin: 0.2em }
p.verse { margin-left: 3% }
pre { border: 1px solid rgba(204, 204, 204, 1); box-shadow: 3px 3px 3px rgba(238, 238, 238, 1); padding: 8pt; font-family: monospace; overflow: auto; margin: 1.2em }
pre.src { position: relative; overflow: visible; padding-top: 1.2em }
pre.src:before { display: none; position: absolute; background-color: rgba(255, 255, 255, 1); top: -10px; right: 10px; padding: 3px; border: 1px solid rgba(0, 0, 0, 1) }
pre.src:hover:before { display: inline }
pre.src-asymptote:before { content: "Asymptote" }
pre.src-awk:before { content: "Awk" }
pre.src-C:before { content: "C" }
pre.src-clojure:before { content: "Clojure" }
pre.src-css:before { content: "CSS" }
pre.src-D:before { content: "D" }
pre.src-ditaa:before { content: "ditaa" }
pre.src-dot:before { content: "Graphviz" }
pre.src-calc:before { content: "Emacs Calc" }
pre.src-emacs-lisp:before { content: "Emacs Lisp" }
pre.src-fortran:before { content: "Fortran" }
pre.src-gnuplot:before { content: "gnuplot" }
pre.src-haskell:before { content: "Haskell" }
pre.src-hledger:before { content: "hledger" }
pre.src-java:before { content: "Java" }
pre.src-js:before { content: "Javascript" }
pre.src-latex:before { content: "LaTeX" }
pre.src-ledger:before { content: "Ledger" }
pre.src-lisp:before { content: "Lisp" }
pre.src-lilypond:before { content: "Lilypond" }
pre.src-lua:before { content: "Lua" }
pre.src-matlab:before { content: "MATLAB" }
pre.src-mscgen:before { content: "Mscgen" }
pre.src-ocaml:before { content: "Objective Caml" }
pre.src-octave:before { content: "Octave" }
pre.src-org:before { content: "Org mode" }
pre.src-oz:before { content: "OZ" }
pre.src-plantuml:before { content: "Plantuml" }
pre.src-processing:before { content: "Processing.js" }
pre.src-python:before { content: "Python" }
pre.src-R:before { content: "R" }
pre.src-ruby:before { content: "Ruby" }
pre.src-sass:before { content: "Sass" }
pre.src-scheme:before { content: "Scheme" }
pre.src-screen:before { content: "Gnu Screen" }
pre.src-sed:before { content: "Sed" }
pre.src-sh:before { content: "shell" }
pre.src-sql:before { content: "SQL" }
pre.src-sqlite:before { content: "SQLite" }
pre.src-forth:before { content: "Forth" }
pre.src-io:before { content: "IO" }
pre.src-J:before { content: "J" }
pre.src-makefile:before { content: "Makefile" }
pre.src-maxima:before { content: "Maxima" }
pre.src-perl:before { content: "Perl" }
pre.src-picolisp:before { content: "Pico Lisp" }
pre.src-scala:before { content: "Scala" }
pre.src-shell:before { content: "Shell Script" }
pre.src-ebnf2ps:before { content: "ebfn2ps" }
pre.src-cpp:before { content: "C++" }
pre.src-abc:before { content: "ABC" }
pre.src-coq:before { content: "Coq" }
pre.src-groovy:before { content: "Groovy" }
pre.src-bash:before { content: "bash" }
pre.src-csh:before { content: "csh" }
pre.src-ash:before { content: "ash" }
pre.src-dash:before { content: "dash" }
pre.src-ksh:before { content: "ksh" }
pre.src-mksh:before { content: "mksh" }
pre.src-posh:before { content: "posh" }
pre.src-ada:before { content: "Ada" }
pre.src-asm:before { content: "Assembler" }
pre.src-caml:before { content: "Caml" }
pre.src-delphi:before { content: "Delphi" }
pre.src-html:before { content: "HTML" }
pre.src-idl:before { content: "IDL" }
pre.src-mercury:before { content: "Mercury" }
pre.src-metapost:before { content: "MetaPost" }
pre.src-modula-2:before { content: "Modula-2" }
pre.src-pascal:before { content: "Pascal" }
pre.src-ps:before { content: "PostScript" }
pre.src-prolog:before { content: "Prolog" }
pre.src-simula:before { content: "Simula" }
pre.src-tcl:before { content: "tcl" }
pre.src-tex:before { content: "TeX" }
pre.src-plain-tex:before { content: "Plain TeX" }
pre.src-verilog:before { content: "Verilog" }
pre.src-vhdl:before { content: "VHDL" }
pre.src-xml:before { content: "XML" }
pre.src-nxml:before { content: "XML" }
pre.src-conf:before { content: "Configuration File" }
table { border-collapse: collapse }
caption.t-above { caption-side: top }
caption.t-bottom { caption-side: bottom }
td, th { vertical-align: top }
th.org-right { text-align: center }
th.org-left { text-align: center }
th.org-center { text-align: center }
td.org-right { text-align: right }
td.org-left { text-align: left }
td.org-center { text-align: center }
dt { font-weight: bold }
.footpara { display: inline }
.footdef { margin-bottom: 1em }
.figure { padding: 1em }
.figure p { text-align: center }
.inlinetask { padding: 10px; border: 2px solid rgba(128, 128, 128, 1); margin: 10px; background: rgba(255, 255, 204, 1) }
#org-div-home-and-up { text-align: right; font-size: 70%; white-space: nowrap }
textarea { overflow-x: auto }
.linenr { font-size: smaller }
.code-highlighted { background-color: rgba(255, 255, 0, 1) }
.org-info-js_info-navigation { border-style: none }
#org-info-js_console-label { font-size: 10px; font-weight: bold; white-space: nowrap }
.org-info-js_search-highlight { background-color: rgba(255, 255, 0, 1); color: rgba(0, 0, 0, 1); font-weight: bold }
.org-svg { width: 90% }</style>
<div id="content">
<h1 class="title">CentOS / RHEL 配置yum源</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li>1. <b>前言</b></li>
<li>2. <b>关于yum</b>
<ul>
<li>2.1. <b>yum是什么</b></li>
<li>2.2. <b>yum特点</b></li>
<li>2.3. <b>安装yum</b></li>
<li>2.4. <b>yum配置</b></li>
<li>2.5. <b>软件源</b></li>
<li>2.6. <b>yum使用</b></li>
<li>2.7. <b>yum常用问题解决</b>
<ul>
<li>2.7.1. <b>超时退出</b></li>
<li>2.7.2. <b>yum Existing lock</b></li>
</ul>
</li>
</ul>
</li>
<li>3. <b>重新安装yum</b>
<ul>
<li>3.1. <b>卸载yum</b></li>
<li>3.2. <b>确定下载文件</b></li>
<li>3.3. <b>安装</b></li>
</ul>
</li>
<li>4. <b>配置网络yum源</b>
<ul>
<li>4.1. <b>配置阿里云源</b></li>
<li>4.2. <b>配置epel源</b></li>
<li>4.3. <b>配置repoforge源</b></li>
<li>4.4. <b>配置rpmfusion源</b></li>
</ul>
</li>
<li>5. <b>配置本地yum源</b></li>
</ul>
</div>
</div>
<div id="outline-container-orgc2af1c8" class="outline-2">
<h2 id="orgc2af1c8"><span class="section-number-2">1</span> <b>前言</b></h2>
<div class="outline-text-2" id="text-1">
<hr>
<p>
<b>本文内容过长。可以通过页面右上角的目录选择章节进行快速跳转。</b>
</p>
<hr>
<p>
由于 redhat的yum在线更新,没有注册的情况下不能使用。但是好在有CentOS这一开源项
目,让我们可以通过配置公开源来方便的安装和更新软件包。
</p>
<p>
对于安装RHEL版本的Linux,想要使用yum源,需要先将原本的yum卸载掉,然后重新安装.
</p>
<p>
CentOS版的Linux因其本身是开源项目,其ISO中自带的yum是可用的,不需要重新安装。
</p>
<p>
本文包括配置本地源及第三方源。第三方源包括:阿里、网易, epel,repoforge, rpmfusion.
</p>
<p>
其实整个配置过程,相当于把RHEL的源更换为CentOS的源以及其他开源项目的源。
</p>
<p>
以下为详细过程.
</p>
</div>
</div>
<div id="outline-container-orgea387ae" class="outline-2">
<h2 id="orgea387ae"><span class="section-number-2">2</span> <b>关于yum</b></h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org69ecee7" class="outline-3">
<h3 id="org69ecee7"><span class="section-number-3">2.1</span> <b>yum是什么</b></h3>
<div class="outline-text-3" id="text-2-1">
<p>
yum = Yellow dog Updater, Modified
主要功能是更方便的添加/删除/更新RPM包.
它能自动解决包的倚赖性问题.
它能便于管理大量系统的更新问题
</p>
</div>
</div>
<div id="outline-container-org98b13ac" class="outline-3">
<h3 id="org98b13ac"><span class="section-number-3">2.2</span> <b>yum特点</b></h3>
<div class="outline-text-3" id="text-2-2">
<ul class="org-ul">
<li>可以同时配置多个资源库(Repository)</li>
<li>简洁的配置文件(/etc/yum.conf,/etc/yum.repos.d 下的文件)</li>
<li>自动解决增加或删除rpm包时遇到的倚赖性问题</li>
<li>使用方便</li>
<li>保持与RPM数据库的一致性</li>
</ul>
</div>
</div>
<div id="outline-container-org2d192d6" class="outline-3">
<h3 id="org2d192d6"><span class="section-number-3">2.3</span> <b>安装yum</b></h3>
<div class="outline-text-3" id="text-2-3">
<p>
参见 重新安装yum.
</p>
</div>
</div>
<div id="outline-container-org9567255" class="outline-3">
<h3 id="org9567255"><span class="section-number-3">2.4</span> <b>yum配置</b></h3>
<div class="outline-text-3" id="text-2-4">
<p>
yum的一切配置信息都储存在一个叫yum.conf的配置文件中,通常位于/etc目 录下,这是整
个yum系统的重中之重,所以有必要详细介绍。下面是一个从网上找来的yum.con文件,让我
们以此为例,进行说明。
</p>
<pre class="example">
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
tolerant=1
exactarch=1
retries=1
name=Fedora Core $releasever - $basearch - Base
baseurl=http://download.atrpms.net/mirrors/fedoracore/$releasever/$basearch/os
http://rpmfind.net/linux/fedora/cor...er/$basearch/os
http://mirror.clarkson.edu/pub/dist...er/$basearch/os
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch
http://redhat.linux.ee/pub/fedora/l...sever/$basearch
http://fr2.rpmfind.net/linux/fedora...sever/$basearch
name=Fedora.us - $basearch - Extras
baseurl=http://fedora.linux.duke.edu/fedorax86_64/fedora.us/$releasever/$basearch/RPMS.stable
name=Dag RPM Repository for Fedora Core
baseurl=http://apt.sw.be/fedora/$releasever/en/$basearch/dag
Name=Livna RPM, Fedora Core $releasever - $basearch
baseurl=http://rpm.livna.org/fedora/$releasever/$basearch/RPMS.stable
name=FreshRPMs
baseurl=http://ayo.freshrpms.net/fedora/linux/$releasever/$basearch/freshrpms/
http://ftp.us2.freshrpms.net/linux/...arch/freshrpms/
</pre>
<ul class="org-ul">
<li><p>
<b>MAIN 部分</b>
</p>
<p>
这是yum的全局性设置。默认一般不必改动。根据以上示例及其他内容整理如下
</p>
<table id="org3372538" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> yum 配置 部分选项详解</caption>
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">参数</th>
<th scope="col" class="org-left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">cachedir</td>
<td class="org-left">yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache</td>
</tr>
<tr>
<td class="org-left">debuglevel</td>
<td class="org-left">除错级别,0-10,默认是2。</td>
</tr>
<tr>
<td class="org-left">logfile</td>
<td class="org-left">yum的日志文件,默认是/var/log/yum.log。</td>
</tr>
<tr>
<td class="org-left">pkgpolicy</td>
<td class="org-left">包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">repository,而同一软件在不同的repository中同时存在,yum应该安装</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">一个,如果是newest,则yum会安装最新的那个版本。如果是last,则YU</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">是选newest。</td>
</tr>
</tbody>
<tbody>
<tr>
<td class="org-left">distroverpkg</td>
<td class="org-left">指定一个软件包,yum会根据这个包判断你的发行版本,默认是</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">redhat-release,也可以是安装的任何针对自己发行版的rpm包。</td>
</tr>
<tr>
<td class="org-left">exactarch</td>
<td class="org-left">有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">为1,则如你安装了一个i386的rpm,则yum不会用686的包来升级。</td>
</tr>
<tr>
<td class="org-left">retries</td>
<td class="org-left">网络连接发生错误后的重试次数,如果设为0,则会无限重试。</td>
</tr>
<tr>
<td class="org-left">tolerent</td>
<td class="org-left">也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">错误信息。默认是0。</td>
</tr>
<tr>
<td class="org-left">exclude</td>
<td class="org-left">排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。</td>
</tr>
<tr>
<td class="org-left">gpgchkeck</td>
<td class="org-left">有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">是检查的。 0 代表不检查,1代表检查。</td>
</tr>
</tbody>
</table></li>
<li><p>
<b>服务器信息</b><br>
配置repository服务器了,这是最令人激动的,有了好的repository,就如家门口开了大卖场,要什么东西稍微跑跑腿就行,对了这还是个免费的大卖场。
所有服务器设置都应该遵循如下格式:
</p>
<pre class="example">
name=Some name for this server
baseurl=url://path/to/repository/
</pre>
<p>
其中serverid是用于区别各个不同的repository,必须有一个独一无二的名称。
name,是对repository的描述,支持像$releasever $basearch这样的变量;
baseurl是服务器设置中最重要的部分,只有设置正确,才能从上面获取软件。它的格式是:
</p>
<ol class="org-ol">
<li>baseurl=url://server1/path/to/repository/</li>
<li>url://server2/path/to/repository/</li>
<li>url://server3/path/to/repository/</li>
</ol>
<p>
其中url支持的协议有 http:// ftp:// file://三种。baseurl后可以跟多个url,你可以自己改为速度比较快的镜像站,但baseurl只能有一个,也就是说不能像如下格式:
</p>
<ol class="org-ol">
<li>baseurl=url://server1/path/to/repository/</li>
<li>baseurl=url://server2/path/to/repository/</li>
<li>baseurl=url://server3/path/to/repository/</li>
</ol>
<p>
其中url指向的目录必须是这个repository header目录的上一级,它也支持$releasever $basearch这样的变量。
url之后可以加上多个选项,如gpgcheck、exclude、failovermethod等,比如:
</p>
<ol class="org-ol">
<li></li>
<li>name=Fedora Core $releasever - $basearch - Released Updates</li>
<li>baseurl=http://download.atrpms.net/mirrors/fedoracore/updates/$releasever/$basearch</li>
<li>http://redhat.linux.ee/pub/fedora/linux/core/updates/$releasever/$basearch</li>
<li>http://fr2.rpmfind.net/linux/fedora/core/updates/$releasever/$basearch</li>
<li>gpgcheck=1</li>
<li>exclude=gaim</li>
<li>failovermethod=priority</li>
</ol>
<p>
其中gpgcheck,exclude的含义和部分相同,但只对此服务器起作用,failovermethode 有两个选项roundrobin和priority,意思分别是有多个url可供选择时,yum选择的次序,roundrobin是随机选择,如果连接失 败则使用下一个,依次循环,priority则根据url的次序从第一个开始。如果不指明,默认是roundrobin。
</p>
<p>
几个变量
</p>
<p>
$releasever,发行版的版本,从部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$arch,cpu体系,如i686,athlon等
$basearch,cpu的基本体系组,如i686和athlon同属i386,alpha和alphaev6同属alpha。
</p>
<p>
对yum.conf设定完成,我们就可以好好体验yum带来的方便了。
</p></li>
</ul>
</div>
</div>
<div id="outline-container-org02fec70" class="outline-3">
<h3 id="org02fec70"><span class="section-number-3">2.5</span> <b>软件源</b></h3>
<div class="outline-text-3" id="text-2-5">
<p>
yum可以在线安装软件,依赖的就是软件源。软件源可以为网络源也可以为本地源。
</p>
<p>
yum在操作之前会读取配置文件,查找源指向的信息,根据信息查找rpm包、解决包之间的依赖关系以及rpm包的版本兼容性问题。
</p>
<p>
软件源默认存储在/etc/yum.repos.d/路径中。这里对源配置的基本格式加以说明。以网易源为例:
</p>
<pre class="example">
name=CentOS-$releasever - Base - 163.com
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
</pre>
<table id="orgfa1ce1b" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> 软件源repo文件配置格式说明</caption>
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">参数</th>
<th scope="col" class="org-left">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left"></td>
<td class="org-left">这个是软件源的名字,且 [ ] 里面不能为空。</td>
</tr>
<tr>
<td class="org-left">name</td>
<td class="org-left">这个只是软件源的一个描述,也可以随意些,但要有意义。</td>
</tr>
<tr>
<td class="org-left">baseurl</td>
<td class="org-left">指定路径,可以用 file,ftp,http 如果用后面的两个必须开启相应的服务,</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">file 可以用来做本地软件源(如:将本地 DVD 设置为软件源),一定要保证路</td>
</tr>
<tr>
<td class="org-left">enabled</td>
<td class="org-left">有 1 和 0 两个选项,1 代表开启,0 代表关闭,开启是指激活这个软件源,</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">关闭则不激活这个软件源。</td>
</tr>
<tr>
<td class="org-left">gpgcheck</td>
<td class="org-left">指下载软件包的时候是否检查数字签名,用来检查软件包的完整性。开启 gpgcheck</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">后,通过 gpgkey 来指定,相应的 rpm-gpg 文件,如果不指定 gpgkey 文件,那么就必须</td>
</tr>
<tr>
<td class="org-left"> </td>
<td class="org-left">手动的导入相应的 rpm-gpg 文件.</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="outline-container-orge0f51c3" class="outline-3">
<h3 id="orge0f51c3"><span class="section-number-3">2.6</span> <b>yum使用</b></h3>
<div class="outline-text-3" id="text-2-6">
<p>
注:当第一次使用yum或yum资源库有更新时,yum会自动下载所有所需的headers放置于/var/cache/yum目录下,所需时间可能较长.
这里只列出常用的几个命令。几乎每个命令都有一堆的额外参数可以用。通过 "命令 –help" 可查看更多参数说明。
</p>
<p>
比如我在缓存源时,想指定缓存某个源,通过命令 <i>yum makecache –help</i> 可以查看缓存源的诸多参数。其中 <i>–enablerepo</i>
可以指定一个或者多个源.
</p>
<p>
更多用法 ,请各位客官自行摸索。
</p>
<ul class="org-ul">
<li><p>
<b>安装</b>
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<tbody>
<tr>
<td class="org-left">命令</td>
<td class="org-left">说明</td>
</tr>
<tr>
<td class="org-left">yum install</td>
<td class="org-left">全部安装</td>
</tr>
<tr>
<td class="org-left">yum install package</td>
<td class="org-left">安装指定的安装包 package。</td>
</tr>
<tr>
<td class="org-left">yum install package -y</td>
<td class="org-left">直接安装不用询问是否安装。</td>
</tr>
<tr>
<td class="org-left">yum groupinsall group</td>
<td class="org-left">安装程序组 group</td>
</tr>
</tbody>
</table></li>
<li><p>
<b>查找和显示</b>
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<tbody>
<tr>
<td class="org-left">命令</td>
<td class="org-left">说明</td>
</tr>
<tr>
<td class="org-left">yum info package</td>
<td class="org-left">显示安装包信息 package。</td>
</tr>
<tr>
<td class="org-left">yum info updates</td>
<td class="org-left">列出更新信息。</td>
</tr>
<tr>
<td class="org-left">yum info installed</td>
<td class="org-left">列出安装包信息。</td>
</tr>
<tr>
<td class="org-left">yum info extras</td>
<td class="org-left">列出已安装,但不在 repo 中的包的信息。</td>
</tr>
<tr>
<td class="org-left">yum list</td>
<td class="org-left">显示所有已经安装和可以安装的程序包。</td>
</tr>
<tr>
<td class="org-left">yum list updates</td>
<td class="org-left">列出所有可更新的包。</td>
</tr>
<tr>
<td class="org-left">yum list installed</td>
<td class="org-left">列出所有已经安装的包。</td>
</tr>
<tr>
<td class="org-left">yum list extras</td>
<td class="org-left">列出所有已安装,但是没有在 repo 里的包。</td>
</tr>
<tr>
<td class="org-left">yum list package</td>
<td class="org-left">显示指定程序包安装情况 package。</td>
</tr>
<tr>
<td class="org-left">yum groupinfo group</td>
<td class="org-left">显示程序组 group 信息。</td>
</tr>
<tr>
<td class="org-left">yum search string</td>
<td class="org-left">根据关键字 string 查找安装包。</td>
</tr>
<tr>
<td class="org-left">yum repolist</td>
<td class="org-left">查看(开启的)资源库。</td>
</tr>
<tr>
<td class="org-left">yum repolist all</td>
<td class="org-left">查看所有资源库。</td>
</tr>
<tr>
<td class="org-left">yum search</td>
<td class="org-left">使用 yum 查找软件包。</td>
</tr>
<tr>
<td class="org-left">yum provides</td>
<td class="org-left">列出包中文件。</td>
</tr>
</tbody>
</table></li>
<li><p>
<b>删除</b>
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<tbody>
<tr>
<td class="org-left">命令</td>
<td class="org-left">说明</td>
</tr>
<tr>
<td class="org-left">yum remove package</td>
<td class="org-left">删除程序包 package</td>
</tr>
<tr>
<td class="org-left">yum groupremove group</td>
<td class="org-left">删除程序组 group</td>
</tr>
<tr>
<td class="org-left">yum deplist package</td>
<td class="org-left">查看程序 package 依赖情况</td>
</tr>
</tbody>
</table></li>
<li><p>
<b>缓存</b>
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left">
<col class="org-left">
</colgroup>
<tbody>
<tr>
<td class="org-left">命令</td>
<td class="org-left">说明</td>
</tr>
<tr>
<td class="org-left">yum makecache</td>
<td class="org-left">将源信息缓存</td>
</tr>
<tr>
<td class="org-left">yum clean packages</td>
<td class="org-left">清除缓存目录下的软件包</td>
</tr>
<tr>
<td class="org-left">yum clean headers</td>
<td class="org-left">清除缓存目录下的 headers</td>
</tr>
<tr>
<td class="org-left">yum clean oldheaders</td>
<td class="org-left">清除缓存目录下旧的 headers</td>
</tr>
<tr>
<td class="org-left">yum clean </td>
<td class="org-left">清除缓存目录下的软件包及旧的 headers</td>
</tr>
</tbody>
</table></li>
</ul>
</div>
</div>
<div id="outline-container-org782f5a8" class="outline-3">
<h3 id="org782f5a8"><span class="section-number-3">2.7</span> <b>yum常用问题解决</b></h3>
<div class="outline-text-3" id="text-2-7">
</div>
<div id="outline-container-orgffff242" class="outline-4">
<h4 id="orgffff242"><span class="section-number-4">2.7.1</span> <b>超时退出</b></h4>
<div class="outline-text-4" id="text-2-7-1">
<p>
如果网速慢的话可以通过增加yum的超时时间,这样就不会总是因为超时而退出。
</p>
<p>
在 /etc/yum.conf中 #加上这么一句
</p>
<pre class="example">timeout=120
</pre>
</div>
</div>
<div id="outline-container-org2e639bd" class="outline-4">
<h4 id="org2e639bd"><span class="section-number-4">2.7.2</span> <b>yum Existing lock</b></h4>
<div class="outline-text-4" id="text-2-7-2">
<p>
如果系统启动的时候, yum出现Existing lock /var/run/yum.pid: another copy is running as pid 6908. Aborting.可以用下面的办法解决:
</p>
<ul class="org-ul">
<li><p>
方法一
</p>
<div class="org-src-container">
<pre class="src src-shell">/etc/init.d/yum-updatesd stop
</pre>
</div></li>
<li><p>
方法二
</p>
<div class="org-src-container">
<pre class="src src-shell">rm -f /var/run/yum.pid
</pre>
</div></li>
</ul>
<p>
主要原因就是yum在自动更新,只要关掉它就可以了。
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf28799b" class="outline-2">
<h2 id="orgf28799b"><span class="section-number-2">3</span> <b>重新安装yum</b> </h2>
<div class="outline-text-2" id="text-3">
<p>
这一部分适用于RHEL版本的Linux,CentOS的Linux可忽略。
</p>
</div>
<div id="outline-container-org5e248d1" class="outline-3">
<h3 id="org5e248d1"><span class="section-number-3">3.1</span> <b>卸载yum</b></h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-C++">rpm -aq|grep yum|xargs rpm -e --nodeps
</pre>
</div>
</div>
</div>
<div id="outline-container-org0387702" class="outline-3">
<h3 id="org0387702"><span class="section-number-3">3.2</span> <b>确定下载文件</b></h3>
<div class="outline-text-3" id="text-3-2">
<p>
在下载之前,首先我们要知道,我们在哪里下载,需要下载什么。
</p>
<ul class="org-ul">
<li><p>
<b>确定下载地址</b>
</p>
<p>
首先要确定下载地址。我一般使用阿里源,因为速度比较快。阿里的下载地址格式是这样的:
</p>
<pre class="example">https://mirrors.aliyun.com/centos/$release/os/$basearch/Packages/
</pre>
<p>
其中$release,是操作系统版本。 $basearch 是操作系统位数(32或者64位对应的 i386 和 x86_64).
</p>
<ul class="org-ul">
<li><p>
查看操作系统的版本
</p>
<div class="org-src-container">
<pre class="src src-shell">cat /etc/redhat-release
</pre>
</div>
<p>
示例:
</p>
<pre class="example">Red Hat Enterprise Linux Server release 7.6 (Maipo)
</pre>
<p>
从示例中,可以看出版本号是7.6。 在yum 源中一般不配置小版本号,只配置大版本号,也就是7.
</p></li>
<li><p>
查看操作系统位数
</p>
<div class="org-src-container">
<pre class="src src-shell">getconf LONG_BIT
</pre>
</div>
<p>
示例:
</p>
<pre class="example"># getconf LONG_BIT
64
#
</pre>
<p>
结果为64,表明是64位操作系统,对应的$basearch 为 x86_64,如果是32位操作系统则结果为32,对应$basearch为i386.
一般来说,服务器现在没有人再安装32位操作系统了。阿里也不再提供i386的yum源。
</p></li>
</ul>
<p>
经过以上的查看,我们yum相关安装包的下载页面就是:
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
</p>
<p>
<b>通过这一步,基本了解了下载地址的规律。针对不同的版本可以自行调整</b>.
</p></li>
<li><p>
<b>确定下载文件</b>
</p>
<p>
需要安装4个rpm包。在上一步中的页面查找以下文件
</p>
<ul class="org-ul">
<li>yum-<version>-<fixed-version>.el7.centos.noarch.rpm</li>
<li>yum-metadata-parser.<version>-<fixed-version>.el7.x86_64.rpm</li>
<li>yum-plugin-fastestmirror-<version>-<fixed-version>.el7.noarch.rpm</li>
<li>python-iniparse-<version>-<fixed-version>.el7.noarch.prm</li>
</ul>
<p>
可以直接通过关键词 yumyum-metadata-parseryum-plugin-fastestmirropython-iniparse
直接在页面进行搜索,然后点击下载,也可以使用下面命令直接在Linux操作系统中进行下载。
</p>
<div class="org-src-container">
<pre class="src src-shell">wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-161.el7.centos.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
</pre>
</div></li>
</ul>
</div>
</div>
<div id="outline-container-org3c98365" class="outline-3">
<h3 id="org3c98365"><span class="section-number-3">3.3</span> <b>安装</b></h3>
<div class="outline-text-3" id="text-3-3">
<dl class="org-dl">
<dt>note</dt><dd>基本上操作都需要root用户权限,如果不能直接以root用户登录,可以su 进行切换。</dd>
</dl>
<pre class="example">rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh yum-3.4.3-161.el7.centos.noarch.rpmyum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
</pre>
<dl class="org-dl">
<dt>NOTE</dt><dd>最后一条命令中的两个安装包一定要一起安装,否则会出现依赖问题。</dd>
</dl>
</div>
</div>
</div>
<div id="outline-container-orgb79eb5a" class="outline-2">
<h2 id="orgb79eb5a"><span class="section-number-2">4</span> <b>配置网络yum源</b></h2>
<div class="outline-text-2" id="text-4">
<p>
一般来讲, base 源就已经足够用,有找不到的包,可以考虑配置epel源,再找不到的话,再配置rpmfusion源。
</p>
</div>
<div id="outline-container-org0f7a592" class="outline-3">
<h3 id="org0f7a592"><span class="section-number-3">4.1</span> <b>配置阿里云源</b></h3>
<div class="outline-text-3" id="text-4-1">
<ul class="org-ul">
<li><p>
备份原repo文件
备份文件,是为了防止修改repo文件时出现问题时,我们还有备份文件可以还原。
</p>
<div class="org-src-container">
<pre class="src src-shell"><span style="color: rgba(220, 220, 204, 1); font-weight: bold">cd</span> /etc/yum.repos.d
mkdir backup
mv *.repo backup/
</pre>
</div></li>
<li><p>
配置阿里云源
CentOS yum源的配置文件,包含几个部分: base updates extras centosplus 四个部分。
我们分别需要对其进行配置,当然只配置一个base也没有问题。
</p>
<p>
配置过程的最关键的就是确认mirrorlist的地址。先下载阿里云的repo文件:
</p>
<div class="org-src-container">
<pre class="src src-shell">wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
</pre>
</div>
<p>
可以直接打开http://mirrors.aliyun.com/repo 查找自己需要的版本的repo文件。
</p>
<p>
下载完成后,打开文件CentOS-Base.repo,将"$release"和"$basearch"替换成实际值。
对于使用RHEL安装包安装的操作系统,release 保留大版本号,本文章示例为 7,
而对于CentOS版的操作系统,可以直接替换成全版本号比如: 7.6.1810;
将$basearch 为 x86_64, 再将enabled=0 改为 enabled=1. 至于用什么方法替换,你开心就好。
</p>
<p>
为了方便朋友,现在将我已经将针对CentOS 7.6.1810版操作系统的repo内容整理成脚本,可以直接复制粘贴执行,
不用先下载文件再修改了。
</p>
<div class="org-src-container">
<pre class="src src-java">cat >> /etc/yum.repos.d/CentOS-Base.repo <<EOF
name=CentOS-7.6.1810 - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/7.6.1810/os/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyuncs.com/centos/7.6.1810/os/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.cloud.aliyuncs.com/centos/7.6.1810/os/x86_64/</span>
gpgcheck=1
gpgkey=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7</span>
#released updates
name=CentOS-7.6.1810 - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/7.6.1810/updates/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyuncs.com/centos/7.6.1810/updates/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.cloud.aliyuncs.com/centos/7.6.1810/updates/x86_64/</span>
gpgcheck=1
gpgkey=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7</span>
#additional packages that may be useful
name=CentOS-7.6.1810 - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/7.6.1810/extras/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyuncs.com/centos/7.6.1810/extras/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.cloud.aliyuncs.com/centos/7.6.1810/extras/x86_64/</span>
gpgcheck=1
gpgkey=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7</span>
#additional packages that extend functionality of existing packages
name=CentOS-7.6.1810 - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/7.6.1810/centosplus/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyuncs.com/centos/7.6.1810/centosplus/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.cloud.aliyuncs.com/centos/7.6.1810/centosplus/x86_64/</span>
gpgcheck=1
enabled=1
gpgkey=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7</span>
#contrib - packages by Centos Users
name=CentOS-7.6.1810 - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/7.6.1810/contrib/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyuncs.com/centos/7.6.1810/contrib/x86_64/</span>
http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.cloud.aliyuncs.com/centos/7.6.1810/contrib/x86_64/</span>
gpgcheck=1
enabled=1
gpgkey=http:<span style="color: rgba(95, 127, 95, 1)">//</span><span style="color: rgba(127, 159, 127, 1)">mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7</span>
EOF
</pre>
</div></li>
</ul>
</div>
</div>
<div id="outline-container-org8a3532d" class="outline-3">
<h3 id="org8a3532d"><span class="section-number-3">4.2</span> <b>配置epel源</b></h3>
<div class="outline-text-3" id="text-4-2">
<ul class="org-ul">
<li><p>
<b>阿里云epel</b>
</p>
<p>
阿里云同时提供了epel源。与上一步中的操作过程完全一样。如下:
</p>
<pre class="example">#下载repo文件
wget -O /etc/yum.repos.d/CentOS-epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 修改文件CentOS-epel.repo , 将$basearch替换成x86_64 ; enabled=0 改为enabled=1
</pre>
<p>
脚本也准备好,朋友们可以直接复制粘贴,不用再从网上下载文件:
</p>
<pre class="example">cat >> /etc/yum.repos.d/CentOS-epel.repo <<EOF
name=Extra Packages for Enterprise Linux 7 - x86_64
baseurl=http://mirrors.aliyun.com/epel/7/x86_64
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
name=Extra Packages for Enterprise Linux 7 - x86_64 - Debug
baseurl=http://mirrors.aliyun.com/epel/7/x86_64/debug
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
name=Extra Packages for Enterprise Linux 7 - x86_64 - Source
baseurl=http://mirrors.aliyun.com/epel/7/SRPMS
failovermethod=priority
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=0
EOF
</pre></li>
<li><p>
<b>fedora epel</b>
</p>
<p>
Fedora EPEL 下载:http://mirrors.fedoraproject.org/publiclist/EPEL/
</p>
<p>
EPEL 下载地址:http://download.fedora.redhat.com/pub/epel/
</p>
<p>
以上网直可能不 可用,此时,登录到下面的地址:
</p>
<p>
https://fedoraproject.org/wiki/EPEL
</p>
<p>
查找:“How can I use these extra packages?”
</p>
<p>
在该条目内可以找到: The newest version of 'epel-release' for (版本)
</p>
<p>
下载epel包。再执行安装。
</p>
<p>
请针对不同的版本下载相应的包。
</p></li>
</ul>
</div>
</div>
<div id="outline-container-orgcc29a25" class="outline-3">
<h3 id="orgcc29a25"><span class="section-number-3">4.3</span> <b>配置repoforge源</b></h3>
<div class="outline-text-3" id="text-4-3">
<div class="org-src-container">
<pre class="src src-shell">rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
yum makecache
</pre>
</div>
</div>
</div>
<div id="outline-container-orgeda61a6" class="outline-3">
<h3 id="orgeda61a6"><span class="section-number-3">4.4</span> <b>配置rpmfusion源</b></h3>
<div class="outline-text-3" id="text-4-4">
<p>
RPMFusion官网:http://rpmfusion.org/
</p>
<ul class="org-ul">
<li><p>
RHEL 6/CentOS 6
</p>
<pre class="example">yum -Uvh http://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm
</pre></li>
<li><p>
RHEL 7/CentOS 7
</p>
<div class="org-src-container">
<pre class="src src-shell">yum -Uvh http://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
</pre>
</div></li>
<li><p>
RHEL 8 / CentOS8
</p>
<div class="org-src-container">
<pre class="src src-shell">yum -Uvh http://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
</pre>
</div></li>
</ul>
</div>
</div>
</div>
<div id="outline-container-org9a07ac3" class="outline-2">
<h2 id="org9a07ac3"><span class="section-number-2">5</span> <b>配置本地yum源</b></h2>
<div class="outline-text-2" id="text-5">
<p>
对于一些环境,我们并不能联网。因此需要配置一个本地源。
</p>
<p>
配置本地源的前提是下载一个完整的ISO镜像文件,推荐下载everything版本的ISO。比如:
</p>
<pre class="example">http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Everything-1810.iso
</pre>
<p>
这个版本比基础安装版多了一个GB 的rpm包,常用的包在这里面都能找到。
</p>
<p>
关于iso文件的自动挂载,参考: 开机自动挂载ISO文件.
</p>
<p>
对于虚拟机来讲, ISO文件可以配置成开机自动连接,此时 /dev/cdrom 代表了ISO文件。
挂载本地源的过程如下:
</p>
<dl class="org-dl">
<dt>1) 创建挂载路径</dt><dd>mkdir /mnt/iso</dd>
<dt>2) 挂载ISO镜像</dt><dd><ul class="org-ul">
<li>虚拟机 : mount /dev/cdrom /mnt/iso</li>
<li>ISO镜像 : mount /CentOS-7-x86_64-Everything-1810.iso /mnt/iso</li>
</ul></dd>
<dt>3) 编辑repo文件</dt><dd><p>
vi /etc/yum.repos.d/CentOS-Media.repo
内容如下:
</p>
<pre class="example">
name=local iso
baseurl=file:///mnt/iso
gpgcheck=1
enabled=1
gpgkey=file:///mnt/iso/RPM-GPG-KEY-CentOS-7
</pre></dd>
</dl>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: halberd.lee</p>
<p class="date">Created: 2019-08-10 Sat 22:14</p>
<p class="validation">Validate</p>
</div>
</div>
<div id="MySignature" role="contentinfo">
<br>
===================
<br>
天行健,君子以自强不息
<br>
地势坤,君子以厚德载物
<br>
===================<br><br>
来源:https://www.cnblogs.com/halberd-lee/p/11330318.html
頁:
[1]