読者です 読者をやめる 読者になる 読者になる

gitのサーバを建てた

機械音痴なので今までコードはドロップボックス経由で同期していたのだが、
職場、自宅、持ち出しPCでもコードするようになってさすがに管理(コピペ)が面倒になったのでいい加減git覚えることにした。
遊んでいたサーバ(さくらのレン鯖)があったので、こいつをgitのサーバにする。
OSはubuntu 14LTS.

以下のURLを参考に、まずgit本体とデーモンを入れる。
server - Ubuntu上にgitサーバの構築 - Qiita

$ sudo apt-get install git
$ sudo apt-get install git-daemon-sysvinit
$ sudo apt-get install sysv-rc-conf

これで

$ sudo service gitdaemon start

すればデーモンさんが立ち上がるかと思いきやうんとも言わない。
不信に思って設定ファイルを見ると、

vim /etc/default/git-daemon
...
GIT_DAEMON_ENABLE=false

とかなってるので

GIT_DAEMON_ENABLE=true

に直したら動いた。
(ほんとはdefaultなんてディレクトリに入ってるから、こいつをどこかにコピーして書き換えるべきなのだろうが、実験なので気にしない)
また、同じファイルに

GIT_DAEMON_BASE_PATH=/var/lib
GIT_DAEMON_DIRECTORY=/var/lib/git

という項目があって、両方ともgitdaemonの所有物にしないといけないみたい。
とはいえ/var/libをgitdaemonさんのものにするわけにはいかないので、

GIT_DAEMON_BASE_PATH=/var/lib/git
GIT_DAEMON_DIRECTORY=/var/lib/git

として、/var/lib/gitにだけ所有権を与えた(このやり方が本当に良いのかは知らない。man読もう。)
しまたろうの備忘録 : ubuntu14.04lts32bitにgitをインストール


この作業ディレクトリ以下で、試しにリポジトリを作り、ローカルにクローンしてみる。

$ sudo mkdir hoge.git
$ sudo cd hoge.git
$ sudo git init --bare

実際はhoge.gitとそれ以下のファイルの所有権をgitdaemonに変更した。
んで、ローカルから

git clone git://REMOTEADDRESS/hoge.git

したのだが接続がタイムアウトしてしまう。
おかしいなぁと思ったらgitはポート9418を使うみたい。
ssh通信を行うから 22が空いていれば良いのかと思ったがそうではないのね。
リモートでポートを開ける

$ sudo ufw allow 9418

これでローカルにクローンできて、一応gitサーバはできたことになる。


次はローカルで作ったリポジトリをリモートに上げて、それに異なる環境からアクセスして共用する、というのをやる。
これはgithubの使い方みたいなのがネットにいっぱい転がってるしなんとかなると思う。