expectをソースインストール


yumでインストールもできますが、今回はソースから。

rsyncでのバックアップをcronで定期的に行いたかったのですが、

  • サーバにexpectがインストールされていない
  • yumが利用できない

ようなのでソースでインストールできないかちょっと調査。

こちらのサイトを参考にインストールしてみました。
以下は作業のコピペ。

まずはインストールディレクトリに移動

[root@localhost ~]# cd /usr/local/src/

中を確認すると

[root@localhost src]# ll
drwxr-xr-x 12 501 501 4096 10月 27 00:31 httpd-2.2.14
-rw-r–r– 1 root root 6684081 10月 4 05:56 httpd-2.2.14.tar.gz
drwxr-xr-x 23 root root 4096 10月 27 00:25 openssl-0.9.8k
-rw-r–r– 1 root root 3852259 3月 25 2009 openssl-0.9.8k.tar.gz

ApacheとOpenSSLだけありました。
次に、ソースをダウンロード。

「expect」と「Tcl」が必要になるようです。
それぞれ

http://expect.nist.gov/expect.tar.gz

http://jaist.dl.sourceforge.net/project/tcl/Tcl/8.4.14/tcl8.4.14-src.tar.gz

からダウンロードしました。

【注意】
今回利用したバージョンはそれぞれ

  • expect-5.43
  • tcl8.4.14

です。
バージョンの違いにより正常にインストールできないみたいです。

[root@localhost src]# wget http://expect.nist.gov/expect.tar.gz
–2010-03-15 23:46:26– http://expect.nist.gov/expect.tar.gz
expect.nist.gov をDNSに問いあわせています… 129.6.13.45
expect.nist.gov|129.6.13.45|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 525572 (513K) [application/x-gzip]
`expect.tar.gz’ に保存中
 
100%[==================================================================================================>] 525,572 266K/s 時間 1.9s
 
2010-03-15 23:46:29 (266 KB/s) – `expect.tar.gz’ へ保存完了 [525572/525572]
 
[root@localhost src]# wget http://jaist.dl.sourceforge.net/project/tcl/Tcl/8.4.14/tcl8.4.14-src.tar.gz
–2010-03-15 23:46:37– http://jaist.dl.sourceforge.net/project/tcl/Tcl/8.4.14/tcl8.4.14-src.tar.gz
jaist.dl.sourceforge.net をDNSに問いあわせています… 150.65.7.130
jaist.dl.sourceforge.net|150.65.7.130|:80 に接続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 3544609 (3.4M) [application/x-gzip]
`tcl8.4.14-src.tar.gz’ に保存中
 
100%[==================================================================================================>] 3,544,609 572K/s 時間 6.6s
 
2009-11-05 23:46:43 (523 KB/s) – `tcl8.4.14-src.tar.gz’ へ保存完了 [3544609/3544609]

確認してみると

[root@localhost src]# ll
-rw-r–r– 1 root root 525572 2月 3 2006 expect.tar.gz
drwxr-xr-x 12 501 501 4096 10月 27 00:31 httpd-2.2.14
-rw-r–r– 1 root root 6684081 10月 4 05:56 httpd-2.2.14.tar.gz
drwxr-xr-x 23 root root 4096 10月 27 00:25 openssl-0.9.8k
-rw-r–r– 1 root root 3852259 3月 25 2009 openssl-0.9.8k.tar.gz
-rw-r–r– 1 root root 3544609 10月 20 2006 tcl8.4.14-src.tar.gz

それぞれダウンロードできました。

で、まずは「Tcl」からインストール。
解凍して、

[root@localhost src]# tar xfvz tcl8.4.14-src.tar.gz

ディレクトリを移動して、

[root@localhost src]# cd tcl8.4.14/unix/

configureして、

[root@localhost unix]# ./configure –enable-shared –prefix=/usr

makeして、

[root@localhost unix]# make

make installすれば、

[root@localhost unix]# make install

インストールの完了です。
この時、生成されたバイナリに対してシンボリックを作成しておきます。

[root@localhost unix]# cd /usr/bin/
[root@localhost bin]# ln -s tclsh8.4 tclsh

次は「expect」のインストール。

こちらも解凍して、

[root@localhost src]# tar xfvz expect.tar.gz

ディレクトリを移動して、

[root@localhost src]# cd expect-5.43/

configureして、

[root@localhost expect-5.43]# ./configure –with-tclinclude=/usr/local/src/tcl8.4.14/generic –prefix=/usr

makeして、

[root@localhost expect-5.43]# make

make installすれば、

[root@localhost expect-5.43]# make install

インストールの完了です。
この後、「ldconfig」コマンドで動的ライブラリを更新します。

[root@localhost expect-5.43]# /sbin/ldconfig

これで使えるようになっているはず。
さっそく実験。
スクリプトは、

#!/bin/sh

#---------------------------------------#
# 変数の規定                             #
#---------------------------------------#

LOCAL_DIR="/root/rsync/"
REMOTE_USER="hogehoge"
REMOTE_PASS="fugafuga"
REMOTE_HOST="192.168.1.100"
REMOTE_DIR="/home/user/public_html/rsync/"

#---------------------------------------#
# 同期処理の実行                          #
#---------------------------------------#

expect -c "
     spawn rsync -av --dry-run ${LOCAL_DIR} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}
     expect \"${REMOTE_USER}@${REMOTE_HOST}'s password:\"
     sleep 1
     send \"${REMOTE_PASS}\r\"
     expect eof
     "

こんな感じ。
実行すると、

[root@localhost ~]# ./rsync.sh
spawn rsync -av –dry-run /root/rsync/ hogehoge@192.168.1.100:/home/user/public_html/rsync/
hogehoge@192.168.1.100’s password:
building file list … done
./
fuga.txt
hoge.txt
 
sent 102 bytes received 38 bytes 56.00 bytes/sec

正常に動作してるってことはインストール成功ですね。
だんだんソースインストールも楽しくなってきました。
「configure」と「make」についてもちゃんと勉強しないとなーと思います。

, , ,

  1. No comments yet.
(will not be published)
  1. No trackbacks yet.