Snowleopardでwgetコマンドをインストールして使用する方法

仕事でtrixboxProを触っていると、Linuxコマンドのwgetを良く使うけど、実はMACwgetコマンドはありません。
ついつい、クセでifconfigとipconfigを打ち間違えるように、wgetMACで使ってしまいエラーがでて???って状態で混乱するときがしばしば。


端っからcurlを使えば良いのですが、ターミナルがデスクトップにウジャウジャしているときに、頭を使うのが面倒なのでwgetをインストール。
ftp://ftp.gnu.org/pub/gnu/wget/ から最新版をダウンロードしてきます。
どう見てもバージョンと更新日がおかしいような気がするので、一応バージョンの一番新しいのをダウンロード。


curl -O ftp://ftp.gnu.org/pub/gnu/wget/wget-1.9.tar.gz

んでもって、保存したwget-*.tar.gzを解凍してインストール。
管理者権限が無いとコンパイル時にエラーがでるので、sudoを利用します。
ほんでもって、wget は /usr/lobal/bin に入るので、/usr/bin/ にシンボリックリンクを作って完了。


tar zxvf wget-1.9.tar.gz
cd wget-1.9
./configure
make
sudo make install
ln -s /usr/local/bin/wget /usr/bin/wget
うん、便利。

CentOS5.4のカーネルを2.6.33.2最新にする(とりあえずVMware Fusion上で)

最近忙しくって、久々の更新。
ず〜っと昔、興味だけでLinuxカーネルの再構築をしたことがあったけど、当時特に目的も無かったからか、脳みそに全く残っていなかったので再度挑戦。
挑戦って言うか、最新のカーネルじゃないと駄目っぽい案件があるので、検証がてらやってみました。

今日は、iMAC + OS X 10.6.3 SnowLeopard にVMware FusionにCentOS5.4をインストールした環境で取りあえずテストしてみました。超はまったので、忘れないうちにメモ。
CentOS5.4をインストールして、yum で最新版にアップしておきます。
この時点でのカーネルは2.6.18-164.15.1.el5 でした。


まず最新版のカーネルをここ(ftp://ftp.jp.kernel.org/pub/linux/kernel/v2.6/)から取って展開しときます。


cd /usr/src/kernels/
wget wget ftp://ftp.jp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.33.2.tar.gz
tar zxvf linux-2.6.33.2.tar.gz
cd linux-2.6.33.2


インストール時の.configをコピー


cp /usr/src/kernels/2.6.18-164.15.1.el5-i686/.config /usr/src/kernels/linux-2.6.33.2/

インストール時のconfigを最新カーネルに引継ぎ


make oldconfig
凄い数の項目でドライバー等をどうするか聞かれますが、わかる人は環境にあわせて決めてください。
今回は、すべてEnterで切り抜けます。


カーネルオプションの選択
ここで、エラはまりしたので注意。


make menuconfig
[General Setup] → [deprecated sysfs features to support old userspace tools] をenableにしないといけなかったようで、このまま何もせずに最後まで行って再起動するとカーネルパニックに陥り起動できなくなります。

[select]をenterで選択して

を[*]にします。

んで、設定が終わったらついでにカーネルに名前をつけときます。
Kernelに名前をつけるには、「EXTRAVERSION」を変更します。


# vi Makefile
EXTRAVERSION = .2.qloogtest
上の場合は、「2.6.33.2.qloogtest」って名前のカーネルになります。
実運用ならもっとわかりやすくつける必要がありますが、今日はテストなので。


ほんでもって、あとは再構築作業です。
これが、また時間がかかる。


make clean && make -j2 bzImage && make -j2 modules && make modules_install && make install

  • j2で2コアを使うという意味らしく、クアッドコアの人は-j4だそうで。

再構築が終わったら、GRUBの設定を変更して新カーネルがデフォルトでブートされるように変更


# vi /etc/grub.conf
#boot=/dev/sda
default=0 ←ここを0に。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.33.2.qloogtest)
root (hd0,0)
kernel /vmlinuz-2.6.33.2.qloogtest ro root=/dev/VolGroup00/LogVol00
保存して再起動
reboot

再起動したら
# uname -r
2.6.33.2.qloog

これで2.6.33.2.qloogカーネルで起動してます。


時間は掛かるけど、はまらなければそれほど難しくない。
VMwareを使うと、スナップショットが取れるのでこんな感じの検証作業は楽ですなぁ。
解決するまでにロールバックを何度したことか・・・。
見たところエラーも無いようなので、実サーバーでやってみるか。