No.3075 Re[7]:sftpのヒストリ機能が出来ない |
発言者: sftp必需品 発言日: 2005 11/27 20:48 |
ついにインストールに成功しました。長かったです。 後に同じように困った人が出るかも知れないので自分 の解決法を以下にまとめます(まぁいないかも知れな いけど)。素人でもわかるよう詳しく書きます。 まずopenssh4.2p1のINSTALLにも書いてあるようにsftpの ヒストリ機能をサポートするためにはlibeditを先にイン ストールする必要があるので適当な所からとってきまし た。自分は http://www.thrysoee.dk/editline/ からとってきました。cygwinもサポートされているよう です。opensshの移植版はそこらじゅうにあるので適当 な所からとってきました。自分は openssh-4.2p1.tar.gz というファイルを取ってきました。これを解凍してくだ さい。解凍の仕方は「openssh インストール」で検索す ればすぐわかります(ようはtarを使うのです)。openssl、 zlibが必要なら各自入れてください。まあcygwinのsetup.exe で更新しておけば大丈夫だと思います。さて準備が出来たら ./configure make make install でインストールします。./configureの時にlibeditサポート を有効にしておくのですが、それには export LIBRARY_PATH="${LIBRARY_PATH}:/usr/local/lib:" として環境変数LIBRARY_PATHにlibeditをインストールして あるディレクトリを設定しておきましょう(上ではusr/local/lib にしてあります)。gccは(多分 gccでコンパイルするから)指定されたライブラリ(libe ditとかのこと)が見つからないと最終的にはこの環境変数 を参照するそうです(たんにPATHでもいいのかなぁ?)。 こうして ./configure --with-libedit=/usr/local/lib とcygwinで入力するとlibeditがサポートされます。もちろ んこのときのディレクトリはopenssh-4.2p1.tar.gzを解凍 してでしたopenssh-4.2p1といゆディレクトリです。後ろの 「--with-libedit=/usr/local/lib」はオプションと言って ./configureに色々注文をつけるために書くものでほかにも 色々あります(でももしかしたらこのオプションは無くて もいいかもしれない・・)。色々出てきた最後にサポート があるなしが解ります。 しかしこのままmake installとすると多分エラーを起こしま す。sshdようの特権分離が無いからです。純粋なUNIXでは su、useraddなどのコマンドがあるのでしょうが少なくても 自分のcygwinにはありませんから結構困りました。そこで /usr/share/doc/Cygwin/openssh.README に書いてあるようにオプションに ./configure --with-libedit=/usr/local/lib --prefix=/usr/local --sysconfdir=/etc --libexecdir='${sbindir}' --localstatedir=/var --datadir='${prefix}/share' --mandir='${datadir}/man' --infodir='${datadir}/info としてみました。するとなにが良かったのか解らないのです が先のエラーは起こらずインストールできました。確かに 解らないままインストールしたsshを使うのはセキュリティ ー上問題がありますが・・。openssh.READMEでは --prefix=/usr となっていたのですが後で「sshが/usr/localに無い」と sftpに文句を言われたのでこうしました。上でもいいかも 知れません。cygwinのsetup.exeでインストールしたopenssh をアンインストール(setup.exeで簡単にできる)しておけ ば大丈夫でしょう。こうして make make install と順に打てばインストールできます。 その後/usr/local/binにパスを通してください(.Xinitrcなどを編集してください)。これで多分使えます。 なにぶん半分以上解ってないので不都合があるかも知れま んが必要でしたら参考にしてみてください。 |
▼関連発言 |