Install Git from source with cURL, SSL
Gitを使ってNeoBundleInstallしたり,cloneするときに以下のエラーが出ることがある。
^@fatal:
Unable to find remote helper for ‘https’
これはGitがhttpsにアクセスできるようにビルドされていないために起こる。具体的にはSSLを有効にしたcURLありでGitをビルドすれば解決する。
一時的に問題を回避したければ,.git/configにURLが書いてあれば,それのhttpをgitに変更すればとりあえず解決する。しかし,長期的に見るとやはりcURLをありにしてビルドしてhtppsにも対応したほうがよいだろう。以下のサイトを参考にしてhttpsに対応したGitをソースコードからインストールした。
参考:fatal:
Unable to find remote helper for ‘https’の対処 –
rcmdnk’s blog
http://rcmdnk.github.io/blog/2013/07/27/computer-cygwin-git/
==インストールの流れ==
SSLを有効にしたcURLでないとhttpsが使えない。そのため以下の順番でインストールを行う。
- OpenSSL
- cURL
- Git
8.4.1 Install OpenSSL
配布元:OpenSSL:
The Open Source toolkit for SSL/TLS http://www.openssl.org/
cd
~/local/src
tar
zxf openssl-1.0.1h.tar.gz
./config
–prefix=${HOME}/local/stow/openssl-1.0.1h enable-shared
make
make
install
cd ~/local/stow
xstow openssl-1.0.1h
cd ~/local/stow
xstow openssl-1.0.1h
ポイント:
configのときにenable-sharedにしておく。これが大事。
参考:[SOLVED]
cURL with SSL dependency problems with libssl.so and libcrypto.so |
Linux.org
http://www.linux.org/threads/solved-curl-with-ssl-dependency-problems-with-libssl-so-and-libcrypto-so.4413/
configしたときにno-sharedがついていたらだめ。
senooken%
./config |head -n 15 [~/local/src/openssl-1.0.1h]
Operating
system: x86_64-whatever-linux2
Configuring
for linux-x86_64
Configuring
for linux-x86_64
no-ec_nistp_64_gcc_128
[default] OPENSSL_NO_EC_NISTP_64_GCC_128 (skip dir)
no-gmp
[default] OPENSSL_NO_GMP (skip dir)
no-jpake
[experimental] OPENSSL_NO_JPAKE (skip dir)
no-krb5
[krb5-flavor not specified] OPENSSL_NO_KRB5
no-md2
[default] OPENSSL_NO_MD2 (skip dir)
no-rc5
[default] OPENSSL_NO_RC5 (skip dir)
no-rfc3779
[default] OPENSSL_NO_RFC3779 (skip dir)
no-sctp
[default] OPENSSL_NO_SCTP (skip dir)
no-shared
[default]
no-store
[experimental] OPENSSL_NO_STORE (skip dir)
no-zlib
[default]
8.4.2 Install cURL
配布元:curl
and libcurl http://curl.haxx.se/
cd
~/local/src
tar
jxf curl-7.37.1.tar.bz2
cd
curl-7.37.1
#./configure
–prefix=${HOME}/local/stow/curl-7.37.1 –with-ssl=${HOME}/local
LDFLAGS=-L$HOME/local/lib
./configure –prefix=${HOME}/local/stow/curl-7.37.1
make
make
install
cd ~/local/stow
xstow curl-7.37.1
cd ~/local/stow
xstow curl-7.37.1
configure時に以下のようにSSLがenabledになっていればよい。
SSL
support: enabled (OpenSSL)
configure時にLDFLAGSでライブラリの場所を指定するか,–with-ssl=でSSLのルートディレクトリを指定すればよい。
8.4.3 Install Git
配布元:Git
– Downloads http://git-scm.com/downloads
cd
~/local/src
cd
git-2.0.2
#
./configure –prefix=$HOME/local/stow/git-2.0.2
–with-curl=$HOME/local
LDFLAGS=-L$HOME/local/lib
./configure
–prefix=$HOME/local/stow/git-2.0.2
make
make
install
curlのライブラリを指定するために,–with-curl=でcurlのルートディレクトリを指定するか,LDFLAGSでライブラリの場所を指定する。
configureのときに以下のように表示されるか,
checking
for curl_global_init in -lcurl… yes
config.logで同じ記述があればOK。
senooken%
grep curl config.log
ac_cv_lib_curl_curl_global_init=yes
これでSSLをありにしたgitをインストールできた。NeoBundleInstallするときやclone,push,pullなどもhttpsに対応できるようになった。