yumdownloaderを使えるようにする
まずは、yumのダウンローダーコマンドであるyumdownloaderが使える状態にあるかチェックします。
$ which yumdownloader
/usr/bin/yumdownloader
|
上記のように出力されればOKです。
もし、以下のように出力された場合、
yumdownloaderはインストールされていないでしょう。
$ which yumdownloader
/usr/bin/which: no yumdownloader in (/usr/kerberos/sbin:/usr/local/bin:/bin:/usr/bin:/home/hoge/bin:/sbin:/usr/sbin)
|
再確認のため、rpmコマンドでターゲットのパッケージがインストールされているか確認します。
以下のように何も表示されないようなら、
yumdownloaderはインストールされていません。
$ rpm -qa|grep yum-util
|
この場合、yum-utilをインストールします。
$ yum -y install yum-utils
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* ius: mirror.rackspace.hk
* updates: centosq2-msync-dvd.centos.org
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package yum-utils.noarch 0:1.1.16-16.el5.centos set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Installing:
yum-utils noarch 1.1.16-16.el5.centos base 71 k
Transaction Summary
==========================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 71 k
Downloading Packages:
yum-utils-1.1.16-16.el5.centos.noarch.rpm | 71 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : yum-utils 1/1
Installed:
yum-utils.noarch 0:1.1.16-16.el5.centos
Complete!
|
これで
yumdownloaderが使えるようになります。
CentOS 公式サイトからダウンロードしてみる
まずは、CentOSの公式サイトを使ってみましょう。
ただ、よくつながらないこともあるので注意が必要かもしれません。
- http://vault.centos.org/5.0/ 有効
- http://vault.centos.org/5.1/ 有効
- http://vault.centos.org/5.2/ 有効
- http://vault.centos.org/5.3/ 有効
- http://vault.centos.org/5.4/ 有効
- http://vault.centos.org/5.5/ 有効
- http://vault.centos.org/5.6/ 有効
- http://vault.centos.org/5.7/ 有効
- http://vault.centos.org/5.8/ 有効
- http://vault.centos.org/6.0/ 有効
- http://vault.centos.org/6.1/ 有効
- http://vault.centos.org/6.2/ 有効
と、ここでは、全てのバージョンに対応しています。公式サイトなので、当たり前ですよね。
CentOSのSRPMのアドレスをyumリポジトリに設定する。
名前は適当でOKです。
( ここでは、/etc/yum.repos.d/srpm.repo としておきます。)
/etc/yum.repos.d/ の配下に拡張子.repoのファイルを作成することで自動的にyum実行時、対象ファイルは読み込まれます。
CentOS 6 Scinetific Linux 6
[os-srpm-centos]
name=CentOS OS $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/os/SRPMS/
enabled=1
priority=1
[updates-srpm-centos]
name=CentOS UPDATES $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/updates/SRPMS/
enabled=1
priority=1
[extras-srpm-centos]
name=CentOS EXTRAS $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/extras/SRPMS/
enabled=1
priority=1
[centosplus-srpm-centos]
name=CentOS CENTOSPLUS $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/centosplus/SRPMS/
enabled=0
priority=1
[contrib-srpm-centos]
name=CentOS CONTRIB $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/contrib/SRPMS/
enabled=0
priority=1
[fasttrack-srpm-centos]
name=CentOS FASTTRACK $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/fasttrack/SRPMS/
enabled=0
priority=1
[cr-srpm-centos]
name=CentOS CR $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.1/cr/SRPMS/
enabled=0
priority=1
|
一般的なSRPMパッケージは、os , updates , extras に揃っています。
まず、特別な人以外は、以降の centosplus , fasttrack , cr , contrib は使うことはないと思いますので、デフォルト無効(enabled=0)にしています。
CentOS 5 で利用する場合は、上記の
6.1 →
5.8 などと利用しているバージョンを指定すると良いでしょう。
CentOS 5
[os-srpm-centos]
name=CentOS OS $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/5.8/os/SRPMS/
enabled=1
priority=1
...
|
ここで、あえて
6.1を利用していることに注意してください。
[os-srpm-centos]
name=CentOS OS $releasever - $basearch - Source from centos
baseurl=http://vault.centos.org/6.2/os/Source/
enabled=1
priority=1
...
|
のように最新の6.2を利用したいところですが、こうするとエラーが発生して yumdownloader ではダウンロードできないようです。
$ yumdownloader --source webalizer
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Could not download/verify pkg webalizer-2.21_02-3.3.el6.src: failed to retrieve SPackages/webalizer-2.21_02-3.3.el6.src.rpm from os-srpm-centos
error was [Errno 2] Local file does not exist: /root/nique-md-filenames/SPackages/webalizer-2.21_02-3.3.el6.src.rpm
|
この直接的な原因は、
http://vault.centos.org/6.2/os/Source/repodata/repomd.xml
の設定に、
xml:base=”nique-md-filenames”
の記述があるためですが、それがrepomd.xmlの設定誤りなのか、それともダウンロード形式が変更になったのか定かではありません。
6.1まで先の yumdownloader でダウンロードできているわけですから、repomd.xml の誤りのような気もしますが・・・。とりあえず、できないので、ここでは6.1で代用しています。
...
<location xml:base="nique-md-filenames" href="repodata/9593cdf562f8c4a124cb99c21bff0884dcbe67c1251f06665b0c75d46dc7eebc-other.sqlite.bz2"/>
...
|
また、CentOS Bug Tracker ( http://bugs.centos.org/view.php?id=5440 )にこの問題は登録されています。
ここで、以下のように
$releasever の環境変数を使いたいところですね。
baseurl=http://ftp.riken.go.jp/Linux/centos/$releasever/os/SRPMS/
|
でも
$releaseverには、CentOS 5 系では、マイナーバージョンを含んでません。
さらには、最新の5.7には、
ftp.riken.go.jp が対応していない・・・
です。
そのため、ここでは、あえて固定的に
5.6としています。
GPGによる暗号化、認証を行う場合は、以下のように設定します。
[os-srpm-riken]
name=CentOS OS $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/os/SRPMS/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
gpgkey で設定するファイル名は固定です。他のupdates , extras でも同じものを用います。
gpgkey ファイルは、CentOS 5 以降は、自動的にダウンロードされるので意識してファイル管理する必要はありません。
上記では、わかりやすいように設定項目を少なくするために省略していますが、
改ざんされたようなRPMをインストールしないように
GPGによる暗号化、認証を行っておくべきでしょう。
何か適当なソースパッケージをダウンロードしてみましょう。
ここでは、Webalizerの日本語化(UTF8化)する でもダウンロードしたwebalizer のソースパッケージをダウンロードしてみましょう。
$ yum clean all
Loaded plugins: downloadonly, fastestmirror, priorities
Cleaning repos: base extras os-srpm-centos updates
Cleaning up Everything
Cleaning up list of fastest mirrors
$ yum update
Loaded plugins: downloadonly, fastestmirror, priorities
Loaded plugins: downloadonly, fastestmirror, priorities
Determining fastest mirrors
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
* updates: ftp.nara.wide.ad.jp
base | 3.7 kB 00:00
base/primary_db | 3.5 MB 00:02
extras | 3.5 kB 00:00
extras/primary_db | 9.1 kB 00:00
os-srpm-centos | 3.0 kB 00:00
os-srpm-centos/primary_db | 675 kB 00:03
updates | 3.5 kB 00:00
updates/primary_db | 3.9 MB 00:01
Excluding Packages in global exclude list
Finished
Enabling ius-source repository
Excluding Packages in global exclude list
Finished
webalizer-2.21_02-3.3.el6.src.rpm | 325 kB 00:02
|
webalizer のソースコードパッケージがちゃんとダウンロードできましたね。
yum clean all は、yumのキャッシュ情報をクリアしています。先にリポジトリ情報を変更しましたので、ここでは、一旦、クリアしています。
キャッシュが変に残っていると正しくパッケージを探せないことがあります。もし、何か問題が発生した場合は、yum clean all をやってみると案外解決することもあります。
GPGとは、
GNU Privacy Guard (GnuPG) の略で、Pretty Good Privacy (PGP) の別実装として、GPL に基づいた暗号化ソフトである。
OpenPGP 規格 (RFC4880) に完全準拠しているが、古い PGP との互換性は完全ではない。
出典:http://ja.wikipedia.org/wiki/GNU_Privacy_Guard
RedHat 公式サイトからダウンロードしてみる
RedHatのサイトは、メジャーバージョン1つに対して1つのみ存在します。
つまり、現在のCentOS バージョン 5 , 6 で言うと
- ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/ 有効
- ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/ 有効
- ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/ 有効
- ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Client/en/os/SRPMS/ 有効
と、このようにServer , Client で分かれてそれぞれ1つずつあるだけです。マイナーバージョンは存在しません。
RedHatで落とせるのは、基本的にosのみでしょう。
他のディレクトリもありますが、CentOSのようなディレクトリ構成にはなっていません。
redhatのSRPMのアドレスをyumリポジトリに設定する。
名前は適当でOKです。
( ここでは、/etc/yum.repos.d/srpm.repo としておきます。)
CentOS 5
[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/
enabled=1
|
CentOS 6
[rhel-src]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/
enabled=1
|
osだけなので、これだけです。
GPGによる暗号化、認証を行う場合は、
先のCentOSの場合と同じように以下のように設定します。
[rhel-src]
...
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
|
詳しくは、
CentOSの設定を参照してください。
何か適当なソースパッケージをダウンロードしてみましょう。
ここでも、先のCentOSの場合と同じように Webalizerの日本語化(UTF8化)する でダウンロードしたwebalizer のソースパッケージをダウンロードしてみましょう。
$ yum clean all
Loaded plugins: fastestmirror
Cleaning up Everything
Cleaning up list of fastest mirrors
$ yumdownloader --source webalizer
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
* ius: mirror.rackspace.hk
* updates: rsync.atworks.co.jp
base | 1.1 kB 00:00
base/primary | 1.2 MB 00:00
base 3566/3566
extras | 2.1 kB 00:00
extras/primary_db | 161 kB 00:00
rhel-src | 1.9 kB 00:00
rhel-src/primary_db | 376 kB 00:00
updates | 1.9 kB 00:00
updates/primary_db | 352 kB 00:00
Excluding Packages in global exclude list
Finished
Enabling ius-source repository
Excluding Packages in global exclude list
Finished
webalizer-2.01_10-30.1.src.rpm | 282 kB 00:00
|
このとき以下のようなエラーが発生することがあります。
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/repodata/primary.xml.gz: [Errno -3] Error performing checksum
|
これは、pythonのhashlibがインストールされていないから出るエラーです。
とりあえず、python-hashlib をインストールすればOKです。
$ wget http://skvidal.fedorapeople.org/hashlib/python-hashlib-20081119-2.x86_64.rpm
--2011-11-15 03:31:13-- http://skvidal.fedorapeople.org/hashlib/python-hashlib-20081119-2.x86_64.rpm
skvidal.fedorapeople.org をDNSに問いあわせています... 85.236.55.7
skvidal.fedorapeople.org|85.236.55.7|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 27135 (26K) [application/x-rpm]
`python-hashlib-20081119-2.x86_64.rpm' に保存中
100%[================================================>] 27,135 33.5K/s 時間 0.8s
2011-11-15 03:31:15 (33.5 KB/s) - `python-hashlib-20081119-2.x86_64.rpm' へ保存完了 [27135/27135]
$ rpm -ivh python-hashlib-20081119-2.x86_64.rpm
準備中...
1:python-hashlib
$
|
32bit OS用 : python-hashlib-20081119-2.
i386.rpm
64bit OS用 : python-hashlib-20081119-2.
x86_64.rpm
webalizerのソースコードパッケージがちゃんとダウンロードできましたか?
redhatを利用してライセンス的に何も問題ないのか?正直わかりません。
CentOSのウェブページにもSRPMの取得サイトにredhatのURLが紹介されています。あくまでバグフィックスのために最新のソースが必要な場合・・・と記載がありますが・・。
http://wiki.centos.org/HowTos/RebuildSRPM
本来は、http://mirror.centos.org/centos/ から必要なSRPMを探すべきなのだと思います。
CentOSなら、本来は、CentOSのmirrorサイトを利用すべきでしょう。
Scientific Linuxなら、Scientific Linuxのmirrorサイトを利用すべきです。
CentOSミラーサイト一覧は、http://mirror-status.centos.org/#jp で確認することができます。
Scientific Linuxミラーサイト一覧は、http://www.scientificlinux.jp/download/mirrors で確認することができます。
理研 公式サイトからダウンロードしてみる
理研のサイトは、最近のバージョンのみが管理されている状態になっています。
つまり、現在のCentOS バージョン5で言うと
http://ftp.riken.go.jp/Linux/centos/5/ 無効
http://ftp.riken.go.jp/Linux/centos/5.0/ 空
http://ftp.riken.go.jp/Linux/centos/5.1/ 空
http://ftp.riken.go.jp/Linux/centos/5.2/ 空
http://ftp.riken.go.jp/Linux/centos/5.3/ 空
http://ftp.riken.go.jp/Linux/centos/5.4/ 空
http://ftp.riken.go.jp/Linux/centos/5.5/ 空
- http://ftp.riken.go.jp/Linux/centos/5.6/ 有効
- http://ftp.riken.go.jp/Linux/centos/5.7/ 有(管理情報のみ)
http://ftp.riken.go.jp/Linux/centos/5.8/ 空
http://ftp.riken.go.jp/Linux/centos/6/ 有(ディレクトリのみ)
- http://ftp.riken.go.jp/Linux/centos/6.0/ 有効
http://ftp.riken.go.jp/Linux/centos/6.1/ 有(管理情報のみ)
http://ftp.riken.go.jp/Linux/centos/6.2/ 有(管理情報のみ)
と、このように最近のバージョン 5.6, 5.7 が有効となっていますが、以外の古いバージョンは、ディレクトリのみで既に何もない状態になっています。
また、SRPMに関して言えば、5.7 には、管理情報のみが設定されていて、実際にSRPMの各パッケージがあるのは5.6のみとなっています。
理研の場合は、全てのマイナーバージョンまで対応していない?ようです。
随時、対応しているバージョンの入れ替えが行われているようで、/etc/yum.repos.d/ のリポジトリ設定ファイルを編集した後、しばらく放置しておくとSRPMをダウンロードできなくなることがあります。
また、現状では、CentOS 6 , Scinetific Linux 6 は、
http://ftp.riken.go.jp/Linux/centos/6.0/
で対応していますので、
理研のSRPMのアドレスをyumリポジトリに設定する。
名前は適当でOKです。
ここでは、/etc/yum.repos.d/srpm.repo としておきます。
/etc/yum.repos.d/ の配下に拡張子.repoのファイルを作成することで自動的にyum実行時、対象ファイルは読み込まれます。
CentOS 5
[os-srpm-riken]
name=CentOS OS $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/os/SRPMS/
enabled=1
[updates-srpm-riken]
name=CentOS UPDATES $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/updates/SRPMS/
enabled=1
[extras-srpm-riken]
name=CentOS EXTRAS $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/extras/SRPMS/
enabled=1
[centosplus-srpm-riken]
name=CentOS CENTOSPLUS $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/centosplus/SRPMS/
enabled=0
[contrib-srpm-riken]
name=CentOS CONTRIB $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/contrib/SRPMS/
enabled=0
[fasttrack-srpm-riken]
name=CentOS FASTTRACK $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/fasttrack/SRPMS/
enabled=0
[cr-srpm-riken]
name=CentOS CR $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/5.6/cr/SRPMS/
enabled=0
|
一般的なSRPMパッケージは、os , updates , extras に揃っています。
まず、特別な人以外は、以降の centosplus , fasttrack , cr , contrib は使うことはないと思いますので、デフォルト無効(enabled=0)にしています。
現状では、CentOS 6 , Scinetific Linux 6 は、
http://ftp.riken.go.jp/Linux/centos/6.0/
で対応していますので、
CentOS 6 Scinetific Linux 6
[os-srpm-riken]
name=CentOS OS $releasever - $basearch - Source from Riken
baseurl=http://ftp.riken.go.jp/Linux/centos/6.0/os/SRPMS/
enabled=1
|
のように設定すると良いでしょう。
何か適当なソースパッケージをダウンロードしてみましょう。
ここでは、Webalizerの日本語化(UTF8化)する でもダウンロードしたwebalizer のソースパッケージをダウンロードしてみましょう。
$ yum clean all
Loaded plugins: fastestmirror
Cleaning up Everything
Cleaning up list of fastest mirrors
$ yumdownloader --source webalizer
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: rsync.atworks.co.jp
* extras: rsync.atworks.co.jp
* ius: mirror.rackspace.hk
* updates: rsync.atworks.co.jp
base | 1.1 kB 00:00
base/primary | 1.2 MB 00:00
base 3566/3566
extras | 2.1 kB 00:00
extras/primary_db | 161 kB 00:00
extras-srpm-riken | 1.9 kB 00:00
extras-srpm-riken/primary_db | 51 kB 00:00
os-srpm-riken | 1.9 kB 00:00
os-srpm-riken/primary_db | 376 kB 00:00
updates | 1.9 kB 00:00
updates/primary_db | 352 kB 00:00
updates-srpm-riken | 1.9 kB 00:00
updates-srpm-riken/primary_db | 71 kB 00:00
Excluding Packages in global exclude list
Finished
Enabling ius-source repository
Excluding Packages in global exclude list
Finished
webalizer-2.01_10-30.1.src.rpm | 282 kB 00:00
|
webalizerのソースコードパッケージがちゃんとダウンロードできましたね。
yum clean all は、yumのキャッシュ情報をクリアしています。先にリポジトリ情報を変更しましたので、ここでは、一旦、クリアしています。
キャッシュが変に残っていると正しくパッケージを探せないことがあります。もし、何か問題が発生した場合は、yum clean all をやってみると案外解決することもあります。
理研のサイトを使うと、日本のサーバーなので快適にダウンロードできて非常に良いのですが、バージョンの管理をちゃんとしないといけないので注意が必要です。
また、本家の http://vault.centos.org/ を設定するのも悪くないでしょうね。
それほど、頻繁にSRPMをダウンロードすることもないでしょうから、多少、伝送速度に遅延が発生したとしても気にならないとは思います。( 頻繁にダウンロードする方は、やっぱり、理研がおすすめですが。 )
また、ディレクトリについても確認が必要でしょう。
( ほとんどの場合、os のディレクトリのみで事足りるはずですが、必要なパッケージがどこのディレクトリにあるか、確認の上、提供パッケージのディレクトリを確認しましょう。 )
( os, update, fasttrack, extras, cr, contrib, centosplus, addons など全てのディレクトリの登録は、ほとんどの方は、必要ないと思います。)
いろいろとやり方はありますので、自分にあったやり方でSRPMをダウンロードしましょう。
コメントを投稿 :