Humanity

Edit the world by your favorite way

FileZillaをCentOSにインストールした時のメモ


Linuxの方がVimの親和性が高い(gfで/usr/include以下のヘッダも読みに行ってくれるとか)ので、
そろそろ開発環境はLinuxに移行したいと思った。


Vimの設定ファイルとかはGithubで管理してるからいいとして、
問題はどのFTPクライアントがいいかなーということ。
あと、CLI(未だにCUIとの区別が付かない単語)のソフトウェアはなるべく避けたい。
前はCLIの方がかっこいいじゃんとか考えてたんだけど、
VimよりgVimだとか、yumはyumexのほうが効率いい(yum shellって手もあるけど、やっぱ自分はyumexの方がやりやすい)
といった理由から段々とGUIな環境を使うことが増えてきた。


そんな理由から見つけたのがこの「FileZilla」というソフト。
クロスプラットフォームで設定もXMLを出力させるだけで済むらしいので早速インストールしてみた。
(ダウンロードページはここ)


Windowsの場合

インストーラで一発。便利。

自分の場合は、まずWindowsFFFTPに登録してたホストを移した後、
設定ファイルを吐き出させてLinuxに持ってくことにした。
FFFTP長年使ってきたけどこれでお別れだと思うとちょっと寂しい。なんてことはない。

Linux(CentOS)の場合

まずrpmは無いのでソースを持ってくる。
(間違えてLinux用バイナリ持ってこないように)


./configure && makeしたらエラーが出た。
wxWidgetsが入ってないらしい。
のでyumでwxGTKとwxGTK-develをインストール。
再度./configure && make。

checking for libgnutls - version >= 2.0.4... no
*** The libgnutls-config script installed by LIBGNUTLS could not be found
*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the LIBGNUTLS_CONFIG environment variable to the
*** full path to libgnutls-config.
configure: error:
***
*** libgnutls 2.0.4 or greater was not found. You may want to get it from
*** ftp://ftp.gnutls.org/pub/gnutls/

またもエラー。
なんかlibgnutlsが無いとか宣ってらっしゃるんだけどご親切にftpサイトへのリンクが示してある。
ftpで接続しようにも今自分はftpクライアントをインストールしてるところなのでしょうがなくftpコマンドで接続。

$ ftp ftp://ftp.gnutls.org/pub/gnutls
ftp: ftp://ftp.gnutls.org/pub/gnutls: unknown host

うぇ?なんで?と思ってman ftp。お前は何を言ってるんだ。
でも、hostってもしかしたら・・・

$ ftp ftp.gnutls.org/pub/gnutls
Connected to igloo.linux.gr.

いけた!
なんかどうやらftpコマンドはURLのプロトコル部分は理解してくれないらしい。
ncftp使ってたから知らなかったorz
Linux初心者なんでこんなことがいちいち新鮮・・・でもncftpあったらそっち使うけどね^q^


その後の作業は下のような感じ。

ftp>

から始まる行は自分。


Name (ftp.gnutls.org:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> cd pub/gnutls
250-More information on GnuTLS can be found at http://www.gnu.org/software/gnutls
250-and at http://www.gnutls.org .
250-
250 Directory successfully changed.

ftp> pwd
257 "/pub/crypto/gnutls"

ftp> ls
227 Entering Passive Mode (62,1,205,36,195,112).
150 Here comes the directory listing.
-rw-rw-r--    1 1124     1027         1324 Apr 30 10:34 CHECKSUMS
-rw-rw-r--    1 1124     1027          111 Mar 03  2002 README
drwxrwsr-x    2 1124     1027        15992 Jan 06  2008 attic
drwxrwsr-x    2 1124     1027         2928 May 03 19:12 devel
-rw-rw-r--    1 1124     1027      1557142 May 08  2005 gnutls-1.0.25.tar.gz
-rw-rw-r--    1 1124     1027          184 May 08  2005 gnutls-1.0.25.tar.gz.sig
-rw-rw-r--    1 1124     1027      2756620 May 11  2006 gnutls-1.2.11.tar.bz2
-rw-rw-r--    1 1124     1027          236 May 11  2006 gnutls-1.2.11.tar.bz2.sig
-rw-r--r--    1 1124     1027      4045874 Nov 06  2006 gnutls-1.4.5.tar.bz2
-rw-r--r--    1 1124     1027          236 Nov 06  2006 gnutls-1.4.5.tar.bz2.sig
-rw-r--r--    1 1124     1027      4286276 May 26  2007 gnutls-1.6.3.tar.bz2
-rw-r--r--    1 1124     1027          236 May 26  2007 gnutls-1.6.3.tar.bz2.sig
-rw-r--r--    1 1124     1027      4911330 Nov 16  2007 gnutls-2.0.4.tar.bz2
-rw-r--r--    1 1124     1027          236 Nov 16  2007 gnutls-2.0.4.tar.bz2.sig
-rw-r--r--    1 1124     1027      4999783 Dec 14  2007 gnutls-2.2.0.tar.bz2
-rw-r--r--    1 1124     1027          236 Dec 14  2007 gnutls-2.2.0.tar.bz2.sig
-rw-r--r--    1 1124     1027      4945945 Jan 17  2008 gnutls-2.2.1.tar.bz2
-rw-r--r--    1 1124     1027          236 Jan 17  2008 gnutls-2.2.1.tar.bz2.sig
-rw-r--r--    1 1124     1027      4923519 Feb 21  2008 gnutls-2.2.2.tar.bz2
-rw-r--r--    1 1124     1027          236 Feb 21  2008 gnutls-2.2.2.tar.bz2.sig
-rw-r--r--    1 1124     1027      4920217 May 06  2008 gnutls-2.2.3.tar.bz2
-rw-r--r--    1 1124     1027          236 May 06  2008 gnutls-2.2.3.tar.bz2.sig
-rw-r--r--    1 1124     1027      4920171 May 20  2008 gnutls-2.2.4.tar.bz2
-rw-r--r--    1 1124     1027          236 May 20  2008 gnutls-2.2.4.tar.bz2.sig
-rw-r--r--    1 1124     1027      4920322 May 20  2008 gnutls-2.2.5.tar.bz2
-rw-r--r--    1 1124     1027          236 May 20  2008 gnutls-2.2.5.tar.bz2.sig
-rw-r--r--    1 1124     1027      4942092 Jun 18  2008 gnutls-2.4.0.tar.bz2
-rw-r--r--    1 1124     1027          236 Jun 18  2008 gnutls-2.4.0.tar.bz2.sig
-rw-r--r--    1 1124     1027      4940118 Jun 30  2008 gnutls-2.4.1.tar.bz2
-rw-r--r--    1 1124     1027          236 Jun 30  2008 gnutls-2.4.1.tar.bz2.sig
-rw-r--r--    1 1124     1027      4958098 Sep 15  2008 gnutls-2.4.2.tar.bz2
-rw-r--r--    1 1124     1027          420 Sep 15  2008 gnutls-2.4.2.tar.bz2.sig
-rw-r--r--    1 1124     1027      5045624 Feb 06 19:55 gnutls-2.4.3.tar.bz2
-rw-r--r--    1 1124     1027          420 Feb 06 19:55 gnutls-2.4.3.tar.bz2.sig
-rw-r--r--    1 1124     1027      5112845 Oct 06  2008 gnutls-2.6.0.tar.bz2
-rw-r--r--    1 1124     1027          420 Oct 06  2008 gnutls-2.6.0.tar.bz2.sig
-rw-r--r--    1 1124     1027      5113327 Nov 10 10:44 gnutls-2.6.1.tar.bz2
-rw-r--r--    1 1124     1027          420 Nov 10 10:44 gnutls-2.6.1.tar.bz2.sig
-rw-r--r--    1 1124     1027      5113586 Nov 12 14:19 gnutls-2.6.2.tar.bz2
-rw-r--r--    1 1124     1027          420 Nov 12 14:19 gnutls-2.6.2.tar.bz2.sig
-rw-r--r--    1 1124     1027      5114214 Dec 12 19:17 gnutls-2.6.3.tar.bz2
-rw-r--r--    1 1124     1027          420 Dec 12 19:17 gnutls-2.6.3.tar.bz2.sig
-rw-r--r--    1 1124     1027      5115205 Feb 06 20:13 gnutls-2.6.4.tar.bz2
-rw-r--r--    1 1124     1027          420 Feb 06 20:13 gnutls-2.6.4.tar.bz2.sig
-rw-r--r--    1 1124     1027      5112923 Apr 11 19:01 gnutls-2.6.5.tar.bz2
-rw-r--r--    1 1124     1027          420 Apr 11 19:01 gnutls-2.6.5.tar.bz2.sig
-rw-r--r--    1 1124     1027      5116385 Apr 30 10:34 gnutls-2.6.6.tar.bz2
-rw-r--r--    1 1124     1027          420 Apr 30 10:34 gnutls-2.6.6.tar.bz2.sig
drwxrwsr-x    3 1124     1027          984 Apr 16 23:21 libtasn1
drwxrwsr-x    3 1124     1027          624 Jan 06  2008 opencdk
drwxrwsr-x    3 1124     1027           96 Jan 06  2008 win32
226 Directory send OK.

ftp> get gnutls-2.6.6.tar.bz2
local: gnutls-2.6.6.tar.bz2 remote: gnutls-2.6.6.tar.bz2
227 Entering Passive Mode (62,1,205,36,195,105).
150 Opening BINARY mode data connection for gnutls-2.6.6.tar.bz2 (5116385 bytes).
226 File send OK.
5116385 bytes received in 13 seconds (3.9e+02 Kbytes/s)

ftp> bye
221 GoodBye.

で、端末に戻るとgnutls-2.6.6.tar.bz2がカレントディレクトリにあるので解凍。

$ tar xvjf gnutls-2.6.6.tar.bz2
$ cd gnutls-2.6.6
$ ./configure && make

するも今度はコンパイルエラー。

mac-libgcrypt.c  -fPIC -DPIC -o .libs/mac-libgcrypt.o
mac-libgcrypt.c: In function 'wrap_gcry_hash_init':
mac-libgcrypt.c:123: error: 'GCRY_MD_SHA224' undeclared (first use in this function)
mac-libgcrypt.c:123: error: (Each undeclared identifier is reported only once
mac-libgcrypt.c:123: error: for each function it appears in.)
make[3]: *** [mac-libgcrypt.lo] Error 1
make[3]: Leaving directory `/root/build/gnutls-2.6.6/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/build/gnutls-2.6.6/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/build/gnutls-2.6.6'
make: *** [all] エラー 2

lib/mac-libgcrypt.cを見に行く。
エラーの箇所はここ。

    case GNUTLS_DIG_SHA224:
      err = gcry_md_open ((gcry_md_hd_t *) ctx, GCRY_MD_SHA224, flags);
      break;

ヘッダファイルは

#include <gnutls_int.h>
#include <gnutls_hash_int.h>
#include <gnutls_errors.h>
#include <gcrypt.h>


でこの中から「GCRY_MD_SHA224」を検索してみる。
(冒頭に言ったようにVimだとgfだけでgcrypt.hを開いてくれるので便利)
でも何もひっかからないので「GCRY_MD」だけで検索すると
gcrypt.hがひっかかった。

/* Algorithm IDs for the hash functions we know about. Not all of them
   are implemnted. */
enum gcry_md_algos
  {
    GCRY_MD_NONE    = 0,  
    GCRY_MD_MD5     = 1,
    GCRY_MD_SHA1    = 2,
    GCRY_MD_RMD160  = 3,
    GCRY_MD_MD2     = 5,
    GCRY_MD_TIGER   = 6,   /* TIGER/192. */
    GCRY_MD_HAVAL   = 7,   /* HAVAL, 5 pass, 160 bit. */
    GCRY_MD_SHA256  = 8,
    GCRY_MD_SHA384  = 9,
    GCRY_MD_SHA512  = 10,
    GCRY_MD_MD4     = 301,
    GCRY_MD_CRC32               = 302,
    GCRY_MD_CRC32_RFC1510       = 303,
    GCRY_MD_CRC24_RFC2440       = 304
  };

あれ?GCRY_MD_SHA224無くね?
どうやらバージョンが違うかどうかして定義そのものが無い(ってコンパイラにも言われたけど)らしい。


しょうがないのでlib/mac-libcrypt.cの該当個所をコメントアウトする。

      /*
    case GNUTLS_DIG_SHA224:
      err = gcry_md_open ((gcry_md_hd_t *) ctx, GCRY_MD_SHA224, flags);
      break;
      */

んで、./configure && make && make installで終わり。