TS-220にGitをインストールしてリモートリポジトリを構築する方法まとめ

QNAPのTS-220というNASはコンパクトな割に多機能でとてもいじりがいがあります。そんなTS-220をリモートリポジトリサーバとして運用できるようにしてみました。

【動機】
・自宅、外出先などで複数台のPCを使い分けており、そのいずれからでも同じようにコードの編集がしたい。
・現状、Dropboxフォルダ内にリモートリポジトリを置いて複数台のPCで同期することで上記を実現しているが、同期中にシャットダウンしたりするとリポジトリがぶっ壊れないかどうか心配なので、できればサーバ上にリポジトリを置きたい。


【手順】
1. TS-220にログインしてApp CenterからGitをインストール
GUIで行うので簡単です。ものの数分で終わります。
機能がインストールされるだけなので管理画面にアイコンが増えたりはしません。
バージョンがまだ2.1.0なのが気になります。



2. リポジトリ置き場を作る
TS-220の共有フォルダ機能でリポジトリ置き場を作ります。適当に"remote-repo"としてみました。




3. SSHでログインしてインストールを確認
ちゃんとインストールされたかどうか、SSHクライアントでログインして確認します。
SSHクライアントはRloginを使用しました。アカウント管理者だけがリモートログインできるらしいので、adminアカウントで行います。(なんかちょっと気になるなぁ)





ログイン後、git --helpコマンドが通ればインストールは成功です。


4. リポジトリにするフォルダを作成
今回は"test.git"としました。

# cd /share/remote-repo
# mkdir test.git
# cd test.git
# git init --bare --shared
Initialized empty shared Git repository in /share/HDA_DATA/remote-repo/test.git/

これでリモートリポジトリの準備ができました。ベアリポジトリなので、中身は空です。
まずローカルにクローンを作って、そこで内容の編集をします。


5. クローンの作成
ローカルのPCにはTortoiseGitをインストールしてあります。
適当なフォルダで右クリックし"Git クローン(複製)"を選択します。



URLはTS-220へのSSH接続を、ディレクトリにはローカルでリポジトリを作成するフォルダを指定します。

URL ssh://admin@TS-220のIP/share/remote-repo/test.git
ディレクトリ 適当なローカルフォルダ



OKを押すとadminのパスワードを求められるので入力します。



で、失敗しました。



どうやら、git-upload-packのコマンドが見つからないようです。whichコマンドで確認してみてもやはり応答がありません。

# which git
/Apps/bin/git
# which git-upload-pack  
# which git-receive-pack


6. シンボリックリンクの作成
そこで、コマンドにパスを通すため/usr/binにシンボリックリンクを作成します。
なお、HDA_DATAの部分はRAID構成の場合は変わるかもしれません。

# cd /usr/bin
# ln -s /share/HDA_DATA/.qpkg/git/repository/bin/git-upload-pack
# ln -s /share/HDA_DATA/.qpkg/git/repository/bin/git-receive-pack

パスを通してから再試行すると成功しました。




7. add -> commit -> push
ローカルリポジトリに適当なファイルを追加してadd -> commitします。
そのままpushに進みます。



リモート -> 管理からoriginの設定はこのようにしておきます。
URL ssh://admin@TS-220のIP/share/remote-repo/test.git



めでたくpushも成功。




【感想】
・Gitのバージョンこれ上げられないの?
・Dropboxにリモートリポジトリ作る方が楽かも。
・同期速度重視ならQsyncにリモートリポジトリ作るのもアリかな?

【今後の課題】
・毎回adminのパスワードを入力するのが面倒。

コメント

このブログの人気の投稿

ReDimとCollectionの速さを比べる

Excel VBAでやるオブジェクト指向プログラミング