今更感漂いまくりですが。自分の作業メモとして残します。
動機
CSSまで含めてウェブサイトをダウンロードしたかったんだけど、wgetのバージョン1.12じゃないとCSS内の画像を含めてくれないんですね。
CentOS5.4だと、wget1.10だったのでできない。でもやりたい。
ソースからインストールすればいいんだけど、せっかくyumでパッケージ管理やってるからそれ壊したくないなーってことで。まぁ、今までもあったんだけど、面倒でprefixだけ変えてconfigureしてインストールしてたんです。
まぁ、ちょっとやってみようかなと。
RPMパッケージの作成
この辺りを参考にして作成
やったことは、
- echo "%_topdir $HOME/rpm" > ~/.rpmmacros && mkdir -p ~/rpm/{BUILD,RPMS,SOURCES,SPECS,SRPMS} で作業場作成
- SRPMのwgetを ftp://ftp.riken.jp/Linux/centos/5.4/os/SRPMS/ から取得
- 取得したSRPMから rpm -ivh wget-1.11.4-2.el5.src.rpm で~/rpm/SPECSにspecファイルを抽出
- http://ftp.gnu.org/gnu/wget/ から最新版のソースを取得し、~/rpm/SOURCES に設置
- SPECファイルのバージョンとソースファイルの位置だけを調整して書き直す
- rpmbuild -ba SPECS/wget.spec してRPMファイルの作成 ~/rpm/RPMS/i386/wget-1.12-1.i386.rpm に目的のものができる
ちなみに、rpmbuildする際にちゃんとソースからのがインストールできるかどうかをチェックするために、一度configure/make/make -n installして、付則パッケージなどが無いかチェック。
ローカル内にyumリポジトリ追加
$ pwd
/home/userA/Site/main/public_html/yum_repos/local1/RPMS
って感じで、設置。HTTP経由でダウンロードできるようにDocumentRoot内に置いた。
で、当該のディレクトリに移動して、
createrepo $PWD
すると、
1/1 - wget-1.12-1.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
って感じでrepodataディレクトリが作られる。wgetも追加されていることが分かる。
作ったローカルyumリポジトリを追加
$ more /etc/yum.repos.d/local1.repo ### Name: localnetwork repository ### URL: http://localhost/ [local1] name = Local YUM Repository #baseurl = http://localhost/yum_repos/local1/RPMS/ baseurl = file:///home/userA/Site/main/public_html/yum_repos/local1/RPMS/ enabled = 1
という感じで。
最初、HTTP経由でって思ったんだけど、FILEで指定できるならそっちの方が速い。
で、
$ yum list available Loaded plugins: fastestmirror extras 32d5/325 local1 1/1 rpmforge: [############################ ] 4401/10065
作ったyumリポジトリを追加。wgetの1ファイルが登録されていることがわかる。
で、あとは、yumで
$ yum update
すると、update対象として、wgetが出てくる。
おしまい。