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

にほんごのれんしゅう

日本語として伝えるための訓練を兼ねたテクログ

古くて使い道のないスマートフォンをGITサーバにする

# 古くて使い道のないスマートフォンをGITサーバにする
 皆さん、古く型遅れでどうにもならないスマートフォンをどうしていますか?
 よく聞く意見では、音楽プレイヤーにする、お風呂での読書専用機にする、格安シムを入れて二台並列運用するとかね。
 
 私の使い道はちょっと変わっています。スマホLinuxマシンにしてしまいます。
 
 スマホとは一体なんでしょうか。AndroidのイケてないJVMを除いて、AndroidLinuxの一種です。
 Linuxではカーネルを転用すれば、別のディストリビューションLinuxを動作させることが可能です。
 スマホのルートを取得し、busyboxをインストールすることで簡単なbash-shellが動作可能なっていればOKです。
 
## 先にルートバイナリを入れる

 HTCではデベロッパー申請をすれば、ルートバイナリを入れることが可能なので、自己責任というリスクを負うことになりますが、簡単にルート端末にできます。皆さん、HTC使いましょう、HTC。
  
## LinuxDeployというアプリで好きなディストリビューションをインストール
 Arch, debian, Ubuntuなどメジャーどころをコマンド一発で、Linux Deploy - Google Play の Android アプリというアプリから入れることができます。

  
## フォーマット
 さて、立ちはだかるvfat, fat32のファイルサイズの壁があります。4GByteを超えるファイルを作れないっていう。
 この問題に関しては、最近の機種ならばext4でフォーマットされていますので、そちらを使っていけだければこの問題は生じません。
 内部容量が少ない廉価版のスマホをお使いならばば、microsdをext4にフォーマットすることが可能です。
 LinuxDeployで好きなディストリビューションを選択し、好きな容量のデバイスブロックを作成します。このブロックの中だけの作業なので、androidスマホとしての機能を損なうことはありません。
   
## SSHでのアクセス
 スマホlinuxを(ここではubuntuとして説明する)を起動すると、VNCSSHが開かれます。
 SSHのデフォルトのユーザ名とパスワードは、android, changemeです。
 SSHで入ったら、もうやることは少ないですね
 
## GITサーバをインストール
 スマホ側で、以下のパッケージをインストールし、起動します。
```bash
 sudo apt-get install git git-daemon-sysvinit sysv-rc-conf
 /etc/init.d/git-daemon start
```
 /etc/default/git-deamonを編集してどんなユーザがコミット可能なのか定義する

```bash
 sudo vim /etc/default/git-deamon
```
 私はユーザ名をubuとしたので、こんな感じになります。
```text
 GIT_DAEMON_ENABLE=false
 GIT_DAEMON_USER=ubu
 GIT_DAEMON_BASE_PATH=/home/ubu
 GIT_DAEMON_DIRECTORY=/home/ubu/git
```

## 最初にホスト側でgit --bara initが必要なようです。
 プロジェクトを作成する際、GIT_DAEMON_DIRECTORY配下にフォルダを作り、git --bare initする必要があります。
```bash
 ubu@localhost:~/git/project$ git --bare init
```
 
## クライアント再度での作業
```bash
 mkdir project
 cd project
 git init
 touch foobar
 git add foobar
 git commit -am 'first push'
 git remote add origin ssh://ubu@192.168.1.14:1022/home/ubu/git/project
 git remote set-url origin ssh://ubu@192.168.1.14:1022/home/ubu/git/project
 git push origin master
``` 

 はい、できましたー。

## もはや、使わなくなったスマホは自(手のひら)鯖
 眠っているAndroidスマホクラスタリングして、がん治療とかに役立てませんかね。