豚吐露@wiki
Install
最終更新:
ohden
-
view
■FreeBSD以外向けのInstall説明
http://www.unixuser.org/~haruyama/security/openssh/INSTALL_nihongo.txt
http://www.unixuser.org/~haruyama/security/openssh/INSTALL_nihongo.txt
■Download
【OpenSSH】
FreeBSD用
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/
FreeBSD以外用
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
ってなってるらしい。んで、
【OpenSSH】
FreeBSD用
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/
FreeBSD以外用
ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
ってなってるらしい。んで、
> wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.3p1.tar.gz
とか
> wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-5.6p1.tar.gz
とかやってdownload
その他に必要な物として
【zlib】
http://www.zlib.net/
http://www.zlib.net/
> wget http://www.zlib.net/zlib-1.2.3.tar.gz
【OpenSSL】
http://www.openssl.org/
http://www.openssl.org/
> wget http://www.openssl.org/source/openssl-0.9.8m.tar.gz
がある。
■解凍
取得した場所に行って
取得した場所に行って
> tar xzvf openssh-5.3p1.tar.gz > tar xzvf openssl-0.9.8m.tar.gz > tar xzvf zlib-1.2.3.tar.gz
Win環境で『Lhaplus』じゃとなんでか解凍できんかった。
『Lhaplus』ってtar gzipに対応しとらんのんだっけ?
『Lhaplus』ってtar gzipに対応しとらんのんだっけ?
■導入
解凍ディレクトリで以下のコマンドを実施。
解凍ディレクトリで以下のコマンドを実施。
【OpenSSL】
コマンド例
コマンド例
> ./config --prefix=/usr/local shared > make > make test > sudo make install |
設定 ビルド 動作確認 導入 |
configスクリプトオプション
--prefix=【path】 | ライブラリの導入先を絶対pathで指定 ココで指定した『【path】/bin』に実行ファイルが、『【path】/lib』に共有ライブラリが、『【path】/include』に外部ヘッダが格納される 例の場合だと『/usr/local/bin』と『/usr/local/lib』『/usr/local/include』となる。 |
--openssldir=【path】 | 実行ファイル、共有ライブラリ以外を導入するpathを指定 default: /usr/local/ssl |
shared | 共有ライブラリを作成したい場合指定する |
【zlib】
コマンド例
コマンド例
> ./configure --shared --prefix=/usr/local > make > make test > sudo make install |
設定 ビルド 動作確認 導入 |
configスクリプトオプション
--shared | 共有ライブラリ作成 |
--prefix=PREFIX | 導入先pathの指定 |
--exec_prefix=EXPREFIX | |
--libdir=LIBDIR | |
--includedir=INCLUDEDIR |
インストール中に『/lib/libc.so.6: could not read symbols: Bad value』って出て落ちる時は、
『--include /usr/include/errno.h』をコンパイルオプションに追加してやる。
configureで作成されたMakefileを開き、『CFLAGS』に追加してやる
e.g.)
『--include /usr/include/errno.h』をコンパイルオプションに追加してやる。
configureで作成されたMakefileを開き、『CFLAGS』に追加してやる
e.g.)
CFLAGS=-O3 -DNO_snprintf -DHAS_sprintf_void -DNO_ERRNO_H ↓ CFLAGS=-O3 -DNO_snprintf -DHAS_sprintf_void -DNO_ERRNO_H --include /usr/include/errno.h
【OpenSSH】
コマンド例
コマンド例
> ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh > make > sudo make install |
Makefileの作成 build install |
configスクリプトオプション
--prefix=【path】 | Install path |
--sysconfdir=【path】 | 設定file格納path |
~注意~
configureの過程で、gccのpathに複数のOpenSSL versionが存在するのが原因でerrorが出る場合がある。
解決するにはgccのpathに含まれるOpenSSLのversionを1つにすれば良い。
configureの過程で、gccのpathに複数のOpenSSL versionが存在するのが原因でerrorが出る場合がある。
解決するにはgccのpathに含まれるOpenSSLのversionを1つにすれば良い。
OpenSSHにはOpenSSLのversionを調べるscriptが同梱されている。まずはそれを実行。
> sh contrib/findssl.sh
sh contrib/findssl.sh Searching for OpenSSL header files. 0x009080dfL /home/*****/wk_hpc/archive/openssl-0.9.8m/crypto/opensslv.h 0x009080dfL /home/*****/wk_hpc/archive/openssl-0.9.8m/include/openssl/opensslv.h 0x009080dfL /usr/local/include/openssl/opensslv.h Searching for OpenSSL shared library files. 0x0090807fL /lib/libcrypto.so.0.9.8 0x0090807fL /lib/i486/libcrypto.so.0.9.8 0x009080dfL /lib/i586/libcrypto.so.0.9.8 0x0090807fL /lib/i686/cmov/libcrypto.so.0.9.8 0x0090807fL /usr/lib/libcrypto.so.0.9.8 0x009080dfL /usr/local/lib/libcrypto.so 0x009080dfL /usr/local/lib/libcrypto.so.0.9.8 Searching for OpenSSL static library files. 0x009080dfL /usr/local/lib/libcrypto.a |
結果、gccのpath上に存在するOpenSSLのversionが表示される。
今回は『0x0090807fL』『0x009080dfL』が競合してたらしい。
ここで
『Searching for OpenSSL header files.』の『opensslv.h』と『Searching for OpenSSL shared library files.』の『libcrypto.so』に同じversionのものがあるか探す。
あったら、そのversion以外のfileをgccのpath外に移動させる。
で、configureを実施、移動させたfileは元に戻しておく。
今回は『0x0090807fL』『0x009080dfL』が競合してたらしい。
ここで
『Searching for OpenSSL header files.』の『opensslv.h』と『Searching for OpenSSL shared library files.』の『libcrypto.so』に同じversionのものがあるか探す。
あったら、そのversion以外のfileをgccのpath外に移動させる。
で、configureを実施、移動させたfileは元に戻しておく。
OpenSSLのheaderとlibraryチェックでどうしても落ちる...
どうやら、--with-ssl-dirで適切なpathが指定できてれば、--without-openssl-header-checkを指定してしまう方が楽みたい。(´・ω・`)
どうやら、--with-ssl-dirで適切なpathが指定できてれば、--without-openssl-header-checkを指定してしまう方が楽みたい。(´・ω・`)
--with-ssl-dir=/usr/local --without-openssl-header-check
e.g.)
./configure --prefix=/usr/hpc/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/hpc/local --with-zlib=/usr/hpc/local --without-openssl-header-check ./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local --with-zlib=/usr/local --without-openssl-header-check
libssh.aと結合しようかしたら...
strlcpy()とstrnvis()が無いって怒られた。(´Д`)
OpenSSHのMakefileみたら確かに結合対象になっとらんね...
仕方が無いので『LIBSSH_OBJS』に『openbsd-compat/strlcpy.o openbsd-compat/vis.o』足してみた...通った...良いのか?こんなんで...(´Д`)
strlcpy()とstrnvis()が無いって怒られた。(´Д`)
OpenSSHのMakefileみたら確かに結合対象になっとらんね...
仕方が無いので『LIBSSH_OBJS』に『openbsd-compat/strlcpy.o openbsd-compat/vis.o』足してみた...通った...良いのか?こんなんで...(´Д`)
あと、OpenSSHのconfigureが通らん状況回避として以下をinstallする方法がある
> sudo apt-get install libssl-dev
意外とこの方法の方があっさり通ったりする・・・
更新日: 2010年11月10日 (水) 14時46分12秒