C++と色々

主にC++やプログラムに関する記事を投稿します。

CentOS 6でgitを2.2.0に更新した

ハマったので記録します。

$ cat /etc/redhat-release
CentOS release 6.5 (Final)

な環境で、 yum install(update) git をしても1.7.1しか入りませんでした。gitのバージョンが古いことでgit cloneなどが一部使えなくなったためgitを更新することにしました。

qiita.com

の記事通りに

$ sudo yum remove git
$ sudo yum install gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
$ wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz
$ tar -zxf git-2.2.0.tar.gz
$ cd git-2.2.0
$ make prefix=/usr/local all
$ make prefix=/usr/local install
$ git --version

としました。 $ make prefix=/usr/local install

install -d -m 755 '/usr/local/bin'
install -d -m 755 '/usr/local/libexec/git-core'
install: cannot change permissions of `/usr/local/libexec/git-core': No such file or directory
make: *** [install] Error 1

というエラーが出たので、

mikazuki-ttp.hatenablog.com

を参考に $ sudo make prefix=/usr/local install とsudoで実行できました。 しかしgitのパスは通っていませんでした。 https://qiita.com/sirone/items/2e233ab9697a030f1335#qagit-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%BE%8C%E3%81%AB-no-such-file-or-directory-%E3%81%A8%E6%80%92%E3%82%89%E3%82%8C%E3%82%8B にある通り、 whichコマンドとtypeコマンドでgitのパスが異なっていたため hash -r したところ、gitのパスが通りました。

しかし依然としてcloneなど通信を行うコマンドは使えませんでした。

mseeeen.msen.jp

を参考に同様の手順を踏みました。 $ GIT_CURL_VERBOSE=1 git clone https://github.com/... と verboseを有効にするとこのブログと同じようなエラーが出ていました。

* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -12190
* Expire cleared
* Closing connection #0

そこでこのブログと同様に yum update nss でバージョンを更新したら、git cloneができるようになりました