天天看點

yum之如何手動建立本地yum倉庫

首先先安裝createrepo-0.9.9-17.el6.noarch.rpm

       我之前搭建過yum,是以我直接用yum install直接安裝

       我的系統是redhat6

<code>[root@localhost rpm-gpg]</code><code># yum install createrepo</code>

<code>Loaded plugins: product-</code><code>id</code><code>, refresh-packagekit, security, subscription-manager</code>

<code>This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.</code>

<code>Setting up Install Process</code>

<code>Resolving Dependencies</code>

<code>--&gt; Running transaction check</code>

<code>---&gt; Package createrepo.noarch 0:0.9.9-17.el6 will be installed</code>

<code>--&gt; Processing Dependency: python-deltarpm </code><code>for</code> <code>package: createrepo-0.9.9-17.el6.noarch</code>

<code>---&gt; Package python-deltarpm.x86_64 0:3.5-0.5.20090913git.el6 will be installed</code>

<code>--&gt; Processing Dependency: deltarpm = 3.5-0.5.20090913git.el6 </code><code>for</code> <code>package: python-deltarpm-3.5-0.5.20090913git.el6.x86_64</code>

<code>---&gt; Package deltarpm.x86_64 0:3.5-0.5.20090913git.el6 will be installed</code>

<code>--&gt; Finished Dependency Resolution</code>

<code>Dependencies Resolved</code>

<code>================================================================================</code>

<code> </code><code>Package            Arch      Version                      Repository      Size</code>

<code>Installing:</code>

<code> </code><code>createrepo         noarch    0.9.9-17.el6                 rhel-</code><code>source</code>     <code>94 k</code>

<code>Installing </code><code>for</code> <code>dependencies:</code>

<code> </code><code>deltarpm           x86_64    3.5-0.5.20090913git.el6      rhel-</code><code>source</code>     <code>71 k</code>

<code> </code><code>python-deltarpm    x86_64    3.5-0.5.20090913git.el6      rhel-</code><code>source</code>     <code>27 k</code>

<code>Transaction Summary</code>

<code>Install       3 Package(s)</code>

<code>Total download size: 192 k</code>

<code>Installed size: 518 k</code>

<code>Is this ok [y</code><code>/N</code><code>]: y</code>

<code>Downloading Packages:</code>

<code>--------------------------------------------------------------------------------</code>

<code>Total                                           667 kB</code><code>/s</code> <code>| 192 kB     00:00</code>

<code>Running rpm_check_debug</code>

<code>Running Transaction Test</code>

<code>Transaction Test Succeeded</code>

<code>Running Transaction</code>

<code>  </code><code>Installing : deltarpm-3.5-0.5.20090913git.el6.x86_64                      1</code><code>/3</code>

<code>  </code><code>Installing : python-deltarpm-3.5-0.5.20090913git.el6.x86_64               2</code><code>/3</code>

<code>  </code><code>Installing : createrepo-0.9.9-17.el6.noarch                               3</code><code>/3</code>

<code>rhel-</code><code>source</code><code>/productid</code>                                    <code>| 1.7 kB     00:00 ...</code>

<code>  </code><code>Verifying  : python-deltarpm-3.5-0.5.20090913git.el6.x86_64               1</code><code>/3</code>

<code>  </code><code>Verifying  : createrepo-0.9.9-17.el6.noarch                               2</code><code>/3</code>

<code>  </code><code>Verifying  : deltarpm-3.5-0.5.20090913git.el6.x86_64                      3</code><code>/3</code>

<code>Installed:</code>

<code>  </code><code>createrepo.noarch 0:0.9.9-17.el6</code>

<code>Dependency Installed:</code>

<code>  </code><code>deltarpm.x86_64 0:3.5-0.5.20090913git.el6</code>

<code>  </code><code>python-deltarpm.x86_64 0:3.5-0.5.20090913git.el6</code>

<code>Complete!</code>

<code>You have new mail </code><code>in</code> <code>/var/spool/mail/root</code>

<code>[root@localhost rpm-gpg]</code><code># rpm -qa | grep createrepo</code>

<code>createrepo-0.9.9-17.el6.noarch</code>

我已經安裝成功

2.  在/root下mkdir一個檔案夾epel,我把我之前挂載在/mnt/Packages下的*.rpm  copy到/root/epel

3. 在/etc/yum.repos.d下修改rhel-source.repo檔案(可能檔案名稱不同)

<code>[root@localhost yum.repos.d]</code><code># pwd</code>

<code>/etc/yum</code><code>.repos.d</code>

<code>[root@localhost yum.repos.d]</code><code># ls</code>

<code>rhel-</code><code>source</code><code>.repo</code>

<code>[root@localhost yum.repos.d]</code><code># cat rhel-source.repo</code>

<code>[rhel-Base]</code>

<code>name=Red Hat</code>

<code>baseurl=</code><code>file</code><code>:</code><code>///mnt</code>

<code>enabled=1</code>

<code>gpgcheck=0</code>

<code>[epel]</code>

<code>name=epel</code>

<code>baseurl=</code><code>file</code><code>:</code><code>///root/epel</code>

<code>[root@localhost yum.repos.d]</code><code>#</code>

【epel】是我新添加的配置

4. 我們執行 yum repolist指令看一下

<code>[root@localhost yum.repos.d]</code><code># yum repolist</code>

<code>file</code><code>:</code><code>///root/epel/repodata/repomd</code><code>.xml: [Errno 14] Could not </code><code>open</code><code>/read</code> <code>file</code><code>:</code><code>///root/epel/repodata/repomd</code><code>.xml</code>

<code>Trying other mirror.</code>

<code>repo </code><code>id</code>                               <code>repo name                           status</code>

<code>epel                                  epel                                0</code>

<code>rhel-Base                             Red Hat                             0</code>

<code>repolist: 0</code>

repo id  和repo name已經顯示出了新添加的epel,但是出錯了缺少repomd.xml,下面我來建立一個repomd.xml

5.

<code>[root@localhost yum.repos.d]</code><code># createrepo /root/epel/</code>

<code>Spawning worker 0 with 15 pkgs</code>

<code>Workers Finished</code>

<code>Gathering worker results</code>

<code>Saving Primary metadata</code>

<code>Saving </code><code>file</code> <code>lists metadata</code>

<code>Saving other metadata</code>

<code>Generating sqlite DBs</code>

<code>Sqlite DBs complete</code>

<code>[root@localhost yum.repos.d]</code><code># ls /root/epel/</code>

<code>php-5.3.3-22.el6.x86_64.rpm         php-pear-1.9.4-4.el6.noarch.rpm</code>

<code>php-cli-5.3.3-22.el6.x86_64.rpm     php-pecl-apc-3.1.9-2.el6.x86_64.rpm</code>

<code>php-common-5.3.3-22.el6.x86_64.rpm  php-pecl-memcache-3.0.5-4.el6.x86_64.rpm</code>

<code>php-gd-5.3.3-22.el6.x86_64.rpm      php-pgsql-5.3.3-22.el6.x86_64.rpm</code>

<code>php-ldap-5.3.3-22.el6.x86_64.rpm    php-soap-5.3.3-22.el6.x86_64.rpm</code>

<code>php-mysql-5.3.3-22.el6.x86_64.rpm   php-xml-5.3.3-22.el6.x86_64.rpm</code>

<code>php-odbc-5.3.3-22.el6.x86_64.rpm    php-xmlrpc-5.3.3-22.el6.x86_64.rpm</code>

<code>php-pdo-5.3.3-22.el6.x86_64.rpm     repodata</code>

   我先yum clean all清除下緩存并yum repolist下看有沒有出錯

<code>[root@localhost yum.repos.d]</code><code># yum clean all</code>

<code>Cleaning repos: epel rhel-Base</code>

<code>Cleaning up Everything</code>

<code>epel                                                     | 2.9 kB     00:00 ...</code>

<code>epel</code><code>/primary_db</code>                                          <code>|  14 kB     00:00 ...</code>

<code>rhel-Base                                                | 3.9 kB     00:00 ...</code>

<code>rhel-Base</code><code>/primary_db</code>                                     <code>| 3.1 MB     00:02 ...</code>

<code>epel                                  epel                                   15</code>

<code>rhel-Base                             Red Hat                             3,648</code>

<code>repolist: 3,663</code>

yum repolist沒有出錯,看來我們建立成功了。

6.  測試

        yum list

        yum list all   

        yum install 安裝一個軟體

<code>[root@localhost epel]</code><code># yum install php-5.3.3-22.el6.x86_64.rpm</code>

<code>This system is not registered to Red Hat Subscription Management. You can use subscription-m   anager to register.</code>

<code>Examining php-5.3.3-22.el6.x86_64.rpm: php-5.3.3-22.el6.x86_64</code>

<code>Marking php-5.3.3-22.el6.x86_64.rpm to be installed</code>

<code>---&gt; Package php.x86_64 0:5.3.3-22.el6 will be installed</code>

<code>--&gt; Processing Dependency: php-cli(x86-64) = 5.3.3-22.el6 </code><code>for</code> <code>package: php-5.3.3-22.el6.x86_   64</code>

<code>--&gt; Processing Dependency: php-common(x86-64) = 5.3.3-22.el6 </code><code>for</code> <code>package: php-5.3.3-22.el6.x   86_64</code>

<code>---&gt; Package php-cli.x86_64 0:5.3.3-22.el6 will be installed</code>

<code>---&gt; Package php-common.x86_64 0:5.3.3-22.el6 will be installed</code>

<code>============================================================================================</code>

<code> </code><code>Package           Arch          Version              Repository                       Size</code>

<code> </code><code>php               x86_64        5.3.3-22.el6         </code><code>/php-5</code><code>.3.3-22.el6.x86_64        3.5 M</code>

<code> </code><code>php-cli           x86_64        5.3.3-22.el6         epel                            2.2 M</code>

<code> </code><code>php-common        x86_64        5.3.3-22.el6         epel                            524 k</code>

<code>Total size: 6.2 M</code>

<code>Total download size: 2.7 M</code>

<code>Installed size: 13 M</code>

<code>Is this ok [y</code><code>/N</code><code>]: ^CExiting on user Command</code>

<code>[root@localhost epel]</code><code>#</code>

<code></code>

本文轉自 zhangguangyihttp://blog.51cto.com/bosszhang/1678304 51CTO部落格,原文連結: