Install Git from source with cURL, SSL

Gitを使ってNeoBundleInstallしたり,cloneするときに以下のエラーが出ることがある。
^@fatal:
Unable to find remote helper for ‘https’
これはGithttpsにアクセスできるようにビルドされていないために起こる。具体的にはSSLを有効にしたcURLありでGitをビルドすれば解決する。
一時的に問題を回避したければ,.git/configURLが書いてあれば,それのhttpgitに変更すればとりあえず解決する。しかし,長期的に見るとやはり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が使えない。そのため以下の順番でインストールを行う。
  1. OpenSSL
  2. cURL
  3. Git

8.4.1 Install
OpenSSL

配布元:OpenSSL:
The Open Source toolkit for SSL/TLS http://www.openssl.org/
cd
~/local/src
./config
–prefix=${HOME}/local/stow/openssl-1.0.1h enable-shared
make
make
install
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
#./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
configure時に以下のようにSSLenabledになっていればよい。
SSL
support: enabled (OpenSSL)
configure時にLDFLAGSでライブラリの場所を指定するか,–with-ssl=SSLのルートディレクトリを指定すればよい。

8.4.3 Install
Git

配布元:Git
– Downloads http://git-scm.com/downloads
cd
~/local/src
tar
Jxf git-2.0.2.tar.xz
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するときやclonepushpullなどもhttpsに対応できるようになった。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です