ELIFE眞空 ぼちぼちいきます

日常自分が忘れてしまいそうなことをクリップしています。

CentOS5 wgetをアップデートする

先日発表された「CVE-2014-4877」の対策のため、wgetをアップデートしました。

1台はすんなり行ったのに、残りのサーバで、おもいっきりハマってしまい、往生したので、今後のために記しておきます。

wget1.16にアップデートするのに、rpmが見つからなかったので、

ソースからインストールすることになりました。

 

1.ソースを取りに行く

wgetの公式サイト: GNU Wget に行くと、

http://ftp.gnu.org/gnu/wget/ からダウンロード出来るということなので、

 

wget http://ftp.gnu.org/gnu/wget/wget-1.16.tar.gz

 でファイルをダウンロードします。

 

2.圧縮ファイルを展開

オプションにxzvfを付けます。

因みに

 x:書庫からファイルを取り出す。

 z:gzipの処理

 v:処理ファイルの一覧表示

 f:指定した書庫ファイルとか、デバイスを使う。

tar -xzvf wget-1.16.tar.gz

 

3.展開したファイルに移動

cd wget-1.16

 

4.Makefileを作成失敗

いきなり、./configureしたら

configure: error: --with-ssl was given, but GNUTLS is not availableと怒られてしまいました。

色々調べると、オプションに「--with-ssl=openssl」を付ければ良いということでした。そこで改めて、

./configure --with-ssl=openssl

 画面上を色々な文字列が流れ過ぎた後…。またもやエラー。

configure: error: --with-ssl=openssl was given, but SSL is not available

GNUTLSがSSLに変わっただけじゃん。

どうしたら良いのか、分からなくなったので、取り合えすHelpを見ることに…。

./configure --help

 

5.SSL要らなければいいかもね

--without-sslオプションを使えば、SSL無視できるよ

でも、httpsからはダウロードできないけど…。

試しに、このオプションを付けてるとMakefileが作れ、コンパイル、インストールができました。

しかし、httpsサイトからのダウンロードができません。

やはり、不便なので、他の方法を探すことにしました。

再び、色々検索し「gnutls-devel」と言うパッケージが必要だ。

と言う文言に当りました。

 

6.gnutls-devel入れてみる

パッケージなので、ココは素直にyumを使いました。

yum info gnutls-devel

パッケージが存在していたので、そのままインストールしました。

yum install gnutls-devel

そして再びMakefile作成をしてみましたが、ダメでした。

configure: error: --with-ssl was given, but GNUTLS is not available

configure: error: --with-ssl=openssl was given, but SSL is not available

「./configure」しても、「./configure --with-ssl=openssl」してもエラー。

 

 7.手詰まりから一転

正直どうしたらいいのか、わからなくなりました。

console.logを見ろとのことで、見てみましたが、さっぱり読解できませんでした。

 

そんな折、ふとgnutls-develがあるんだったら、openssl-develもあるんじゃない?と

思い、「devel」について、調べてみました。

ソースからコンパイルする時に、必要なヘッダファイルなどを含んでいるファイル。 

 

 あっ! もしかして、コレ?!

この間、「Heartbleed」でOpenSSLアップデートしたけど、openssl-develなんて表示観た覚えがない。

 rpm -qa | grep openssl

openssl-0.9.8e-31.el5_11

あっ、やっぱり…。openssl-develない。

 

yum install openssl-devel

 

それでは、再々度Makefile

./configure --with-ssl=openssl

 

無事成功したようなので、makeする前に旧パッケージ版のwgetを削除しておきます。

yum remove wget

 

8.やっとコンパイル・インストール

rootユーザーとして、一気に連続処理します。

make && make install

出来た!

 

9.一難去ってまた、一難

よし、バージョンの確認

wget -V

-bash: /usr/bin/wget: そのようなファイルやディレクトリはありません 

 

あれ? 何処行った?

which wget

/usr/local/bin/wget

 

しまった!--prefix=/usrオプションつけ忘れた。(デフォルトでは、/usr/localに入る)

シンボリックリンクを付けて対応します。

ln -s /usr/local/bin/wget /usr/bin/wget

 

バージョンを確認します。

wget -V

GNU Wget 1.16 built on linux-gnu

やっと出来た。

 

10.おわり

試しに、wgetで適当なファイルをhttpsサイトから取ってみました。

無事にダウンロードできたので、たぶんコレで大丈夫だと思います。