コアサーバーのローカル環境に最新のgitをインストールする

いろいろ便利に使えるgit。
でも、私がレンタルするコアサーバー(coreserver.jp)にはgitが入ってないので、自力でインストールしないかぎり使えない。
そこで、gitのソースコードをダウンロードしてインストールしてみた。
幸い、必要なライブラリ類は足りていたようで、無事インストールできた。
その経過をご紹介する。

実際の作業

まず、自宅LINUXマシンのターミナルからsshでコアサーバーに接続。
Windowsマシンからであれば、Puttyなり、Rloginなり、TeraTermなどのSSH接続ができるソフトで。

以後の例は 自宅にあるマシン “xyz” を使うユーザー “hoo” が、コアサーバーの “sXXX” サーバにユーザー名 “hoge” でログインして作業していることを示す。
適宜自分の環境に合わせて読み替えてほしい。

コアサーバー環境の確認

ちなみに、コアサーバーの私の環境はこんな状態。RedHat系だと聞いたことがあるのだが、なんだかよくわからない。
which git の結果が空白なので、間違いなくgitはインストールされてないんだろうと推測。
また、自分のローカル環境には、一切パスが通じていない。

hoo@xyz:~$ ssh hoge@sXXX.coreserver.jp
hoge@sXXX.coreserver.jp's password: 
Last login: Sat Jan 14 03:21:58 2017 from xxx.xxx.xxx.xxx

hoge@sXXX:~> 
hoge@sXXX:~> uname -a
Linux s20 2.6.32.61-smp #1 SMP Wed Jul 10 20:34:58 JST 2013 i686 GNU/Linux
hoge@sXXX:~> echo $PATH
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
hoge@sXXX:~> which git
hoge@sXXX:~>

gitのソースをダウンロード

まず最初に、The Linux Kernel Archives から、最新のgitのソースをダウンロードする。

hoge@sXXX:~> wget https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
--2017-01-14 03:26:57--  https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
Resolving www.kernel.org... 198.145.20.140, 199.204.44.194, 149.20.4.69, ...
Connecting to www.kernel.org|198.145.20.140|:443... connected.
ERROR: The certificate of ‘www.kernel.org’ is not trusted.
ERROR: The certificate of ‘www.kernel.org’ hasn't got a known issuer.

あれれ、エラー出る。

で、–no-check-certificate をつけて再実行。

もちろんこの場合、ダウンロードしたファイルの安全性は考慮されないんだけど…

hoge@sXXX:~> wget --no-check-certificate https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
--2017-01-14 03:28:40--  https://www.kernel.org/pub/software/scm/git/git-2.11.0.tar.gz
Resolving www.kernel.org... 198.145.20.140, 149.20.4.69, 199.204.44.194, ...
Connecting to www.kernel.org|198.145.20.140|:443... connected.
WARNING: The certificate of ‘www.kernel.org’ is not trusted.
WARNING: The certificate of ‘www.kernel.org’ hasn't got a known issuer.
HTTP request sent, awaiting response... 200 OK
Length: 6234127 (5.9M) [application/x-gzip]
Saving to: ‘git-2.11.0.tar.gz’

git-2.11.0.tar.gz   100%[======================]   5.95M  3.14MB/s   in 1.9s   

2017-01-14 03:28:43 (3.14 MB/s) - ‘git-2.11.0.tar.gz’ saved [6234127/6234127]

ダウンロードしたファイルを解凍

無事にダウンロードできたようなので、tarで解凍。

hoge@sXXX:~> tar xf git-2.11.0.tar.gz
hoge@sXXX:~> cd ./git-2.11.0
hoge@sXXX:~> git-2.11.0

ソースファイルのコンパイル

インストール方法をlessコマンドで読んでみると、

hoge@sXXX:~/git-2.11.0> less INSTALL

Git installation

Normally you can just do “make” followed by “make install”, and that
will install the git programs in your own ~/bin/ directory. If you want
to do a global install, you can do

$ make prefix=/usr all doc info ;# as yourself
# make prefix=/usr install install-doc install-html install-info ;# as root

(or prefix=/usr/local, of course). Just like any program suite
that uses $prefix, the built results have some paths encoded,
which are derived from $prefix, so “make all; make prefix=/usr
install” would not work.

とあるので、一般的な手順でコンパイルできるようだ。
そこで、ファイル群をホームディレクトリのlocal以下に配置するようにコンパイルする。
サーバに負担をかけるので、空いてそうな時間を選んで。
もし、途中でプロセスが強制終了される場合は、終わるまで繰り返してみる。

hoge@sXXX:~/git-2.11.0> make configure
hoge@sXXX:~/git-2.11.0> ./configure --prefix=$HOME/local
hoge@sXXX:~/git-2.11.0> make all doc info
make[1]: *** [git-add.html] Error 127
make[1]: Leaving directory `/virtual/hoge/git-2.11.0/Documentation'
make: *** [doc] Error 2  #ありゃ、エラー出てるわ...
hoge@sXXX:~/git-2.11.0> make install
hoge@sXXX:~/git-2.11.0> cd
hoge@sXXX:~>

ちょっぴりエラー出たけど、とりあえずコンパイルできたようだ。

パスの設定

gitのバージョンを確認してみる。
あれれ、答えが返ってこない。

hoge@sXXX:~> git --version
hoge@sXXX:>

そこで、パスを確認。たしかに、パスが通っていない。

hoge@sXXX:~> echo $PATH
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin

一時的にgitの実行ファイルまでのパスを設定して、gitのバージョンを確認してみる。

hoge@sXXX:~> export PATH=$HOME/local/bin:$PATH
hoge@sXXX:~> echo $PATH
/virtual/hoge/local/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
hoge@sXXX:~> 
hoge@sXXX:~> git --version
git version 2.11.0

無事に最新バージョンがインストールされたようだ。

サインアウトしたあとも自動で読み込まれるように、.profileにパスを設定しておく。
私の場合、.profileを作成していなかったので、これを機会にviでファイルを作る。

hoge@sXXX:~> vi .profile
PATH="/virtual/hoge/local/bin:$PATH"
hoge@sXXX:~> exit
logout
Connection to sXXX.coreserver.jp closed.

さて、どきどきしながら、再度ログインしてみる。

hoo@xyz:~> ssh hoge@sXXX.coreserver.jp
hoge@sXXX.coreserver.jp's password: 
Last login: Sat Jan 14 04:00:50 2017 from xxx.xxx.xxx.xxx

hoge@sXXX:~> echo $PATH
/virtual/hoge/local/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
hoge@sXXX:~> git --version
git version 2.11.0

これで、無事にコアサーバーで最新版のgitを使えるようになった。
いやー、お疲れ様でした。

最後に

gitを使っての具体的な作業は、これからぼつぼつと紹介できるようにする。
作業を行うに当たっては、以下のサイトを参考にさせていただいた。
深謝いたします。

広告