月別: 2012年7月

「ポセイドン・アドベンチャー」を観た。

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


昔観て良かった記憶があったので「ポセイドン・アドベンチャー」を改めて借りてきて観た。


(さらに…)

「バットマン・ビギンズ」を観た

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


以前途中まで観て放置していた「バットマン・ビギンズ」を最後まで観た。


(さらに…)

Ubuntu 10.04.4 LTSとgitoliteとσ(゚∀゚ )オレ 後編

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


続いてクライアント機に戻る。
管理用のgitリポジトリをcloneして来なければいけないのだが、
肝心のwindows用のgitが入ってなかった(ノ∀`)
msysgitというのを落として来た。
基本的にほとんどデフォルトでインストールしたかな。
「Adjusting your PATH environment」のところだけ
“Run Git from the Windows Command Prompt”に変更したような。

で、コマンドプロンプトから

git clone gituser@サーバのホスト名:gitolite-admin

と打つ。

ssh: connect to host サーバのホスト名 port 22: Bad file number

というようなエラーが返ってきた(´・ω・`)
ああ、そういえばsshのportを変えていたっけ…
どうすればポート番号を変えられるのかと思いググる。

ドキュメントとかだと

git clone ssh://gituser@サーバのホスト名:ポート番号/gitolite-admin

で大丈夫っていう風に書かれてるんだけども、どうもうまくいかない。

ドキュメントや他のサイトをよくよく読んでみると
.sshの下にconfigというファイルを作って

host エイリアス名(この例ではgitolite)
user ユーザー名(この例ではgituser)
port ポート番号(実際のsshのポート番号)
hostname サーバのホスト名
identityfile C:\Users\ユーザー名\.ssh\秘密鍵名(この例ではgituser)
(↑identityfileは通常だとこのパスで良い筈。要は秘密鍵へのパス。)

といった感じの内容を書いて、
コマンドプロンプトで

git clone gitolite:gitolite-admin

と打つとうまく行くと書いてある……書いてあるが

Permission denied (publickey)

というエラーが返ってきてうまくいかない(´・ω・`)

ちなみに関係ないが

no address associated with name

というエラーが返ってきたらそれはコマンド内で
エイリアス名を打ち間違えてる可能性が高い。

何度やってもうまく行かないのでcivIIIをやって現実逃避をするヽ( ・∀・)ノ


数時間後我に返り、再び参考にしたページを眺める。
そしてあることに気づく。

[git] gitoliteのインストールの一番下……

ハマりポイント
ssh接続ユーザーをsshd_configで制限していたため、作業マシンからsshができなくてハマりました。以下のように変更します。

 
( ゚Д゚)ハッ 急いでサーバのsshd_configを確認した

sudo vi /etc/ssh/sshd_config

 
AllowUsers使ってたわ… _| ̄|○

AllowUsersにgituserを追加する。
sshdを再起動するだけでも良かったのかもしれないが、
サーバそのものを再起動する。

クライアント機のコマンドプロンプトを起動し直し再び

git clone gitolite:gitolite-admin

を打つ。またエラー。ちょっとしてから再び打つ。

通った…__◯_


ユーザーの作成~git push
ここからはついでというか、実際にgit push出来るかどうかの実験。

  1. 公開鍵と秘密鍵を作成。
  2. 公開鍵を以下のフォルダへコピー。
    C:\Users\ユーザー名\gitolite-admin\keydir
  3. 設定ファイルを開く。
    C:\Users\ユーザー名\gitolite-admin\conf\gitolite.conf

    (confのファイル名は固定かエイリアス名由来か不明)

  4. confファイルに以下のように値を追加。
    repo gitolite-admin
        RW+     =   gituser_rsa
    
    repo testing
        RW+     =   @all
        RW+     =   秘密鍵名

    (よくよく考えてみると上に@allとあるので意味がない(ノ∀`)
    だから3と4はtestingに触る分には必要ないw)

  5. この辺から記憶が曖昧に(ノ∀`)
    git add .
    git commit -m "test"
    git push gitolite:gitolite-admin

    したんだっけかな?

  6. 任意のフォルダ内で
    git clone gitolite:testing
  7. cloneしたtestingリポジトリ内にtest.txtを作成。
  8. test.txtをadd->commit->pushした。
    git add . (git add test.txtだったかな?)
    git commit -m "test"
    git push origin master
  9. サーバ上のtestingリポジトリ内で
    ls -la

    してobjectsフォルダ内が更新されていることを確認。


と感じでUbuntu 10.04.4 LTS – Windows7間でgitoliteを使えるようにした。
実際の環境構築やら実験やらこのエントリを書くのに凄く時間をかけてしまった__◯_

ちなみにubuntu 11.10以降くらいならこんな苦労をしないでも

sudo aptitude install gitolite

で入るらしいよ(´・ω・`) ディストリアップグレードシタクナカッタンヤ

まあそんなことよりも問題としたいことは…
 
 
 
 
 
σ(゚∀゚ )オレ一人が使うのにgitoliteって必要だったんだろうかということだ( ;・´ω・`) トチュウデキヅイテタケドアトモドリデキナカッタンヤ


※2014/6/14追記
※毎回使い方を忘れてしまう俺氏の為の追記(“・ω・゙) ドウシテモワスレテシマウンヤ

  1. ローカルリポジトリ用のフォルダを作成。
  2. 保存したいプロジェクトのフォルダ、ファイルをそこへ移動。(ワークスペース内のフォルダをそのままローカルリポジトリにする場合は1,2の作業は必要ない)
  3. コマンドプロンプトで対象フォルダへ移動して、
    git init
    git add .
    git commit -m "任意のメッセージ"
    
  4. gitolite-admin\confフォルダ以下のconfファイルにレポジトリを追加。
  5. コマンドプロンプトでgitolite-adminフォルダに移動して、
    git push origin master
    

    originはgitolite-admin\.git\configファイルで設定していない場合は
    直で指定しなければならない。

  6. ※2015/3/1追記
    ※追記していたにも関わらずまた使い方を忘れてしまった俺氏の為の追記(“・ω・゙)

    confファイルにレポジトリを追加した後にgitolite-adminをcommitして
    git pushするとサーバ側にレポジトリが自動生成されるんやで->俺氏

    commitに関しては何故かコマンドプロンプト上でコミットメッセージを
    入れようとしたらvimが入力を一切受け付けなくなったから強制終了して、
    エクスプローラでgitolite-adminのフォルダを右クリックしてコンテクスト
    メニューからgit commit toolを選択して適当にメッセージを入れて
    コミットしたんやで、覚えといてや->俺氏

この辺のことをきちんと全部書き直したい… (ヽ’ω`)

Ubuntu 10.04.4 LTSとgitoliteとσ(゚∀゚ )オレ 前編

android用の神経衰弱ゲームを公開しました(・∀・)
The Match-up(Memory) game for android was released!

Google Play:
Mole's Match-up.

Introduction page:
Mole’s Match-upをリリースした∩( ・ω・)∩


もう今年も半分過ぎたのΣ(゚∀゚;)!!
何もしないうちに…なんという…_| ̄|○

ということでそろそろ設計ごっこはやめて実際のコーディングに
移ろうと考えるも、個別のマシンにソースが分散すんのやだけど、
別に公開したいわけじゃないからgithubは使えないしというわけで
さくらVPSのubuntu 10.04.4LTSでgitを入れることにした。
(githubはお金を払えば非公開リポジトリが作れたような気がするが
その為に払う金はない( ・`ω・´) )

一応windowsクライアント機からpush出来るところまでは出来たので
その道程を残す。

但し、linuxとかgitとかsshのことはよくわかってないので
勘違いしている部分があるかも(・∀・)


gitのインストール

もうgitのインストールからしてようわからん_| ̄|○
sudo aptitude install git-core
で一応入ったんだけども、なんか参考にしたエントリには
git-coreはobsoluteで今はgitだのなんだのあるがよくわからない。

インストールされたgitのバージョンも1.7.0.4と0.0.5くらい古い。
upgradeとかかけても新しくならないから、きっとこのubuntuのバージョンだと
これが最新なんだろうということにして次に移る。


gitoliteのインストール→挫折

CentOSの情報は色々あったけれども、ubuntu 10.04の情報は少なく
加えてうちとは環境が違うようでなんやかんやで1.5日ほどハマる_| ̄|○
まあ半分以上、気分転換にやったcivIIIがいけないんだけども。

取り敢えず以下のエントリ群を参考に色々頑張ったが、
うまく行かずにわけわからなくなった(。Д゚)
adduserしてcloneしてきてもgl-system-installとかがないんだよね…
最終的にREADME.txtを読んでインストール出来たっぽいけども
混乱状態のまま次に何をすればいいのかわからなくなり手詰まり(´・ω・`)

[さくらVPS(CentOS)]Gitolite で git ホスティングの準備
(.ssh/authrized_keys o抜け?)
Gitolite インストールと設定
($HOME/gitelite/hooks typo?)
[git] gitoliteのインストール
Ubuntu 11.10 Gitサーバー(前編)


gitoliteインストール再挑戦(`・ω・´)
まずは最初からやり直そうとさっき作ったユーザーをuserdelしたった。
仕切り直しなので改めて真面目に考えた。

今回の環境は

  • クライアント機のOSがWindows7
  • サーバのOSがubuntu 10.04.4LTS
  • ポートがデフォルトの22じゃない
  • ssh_configでAllowUsersを設定している←ここ重要(´・ω・`)
  • ログイン方法はsshでパスワードログインを禁止

初回インストール時はgitoliteのイメージをつかむことが出来なかったが、
その途中でREADME.txtやサイトのドキュメントを読むうちになんとなくわかってきた。
What is gitolite?を適当に超訳すると

Gitoliteはgit上のアクセス制御層だよ.
大抵の人が見る特徴は以下の通りだよ:

  • サーバ上で実際のユーザーアカウントが一つ必要だよ。
  • 多くのgitoliteユーザーがアクセス出来るようにするよ。
    (彼らはそのサーバの実際のユーザーじゃなくても、
    shellへのアクセス権をもってなくてもいいよ)
  • 多数のgitリポジトリへのアクセス制御が出来るよ:
    • repoレベルで制御される読み取りアクセス
    • branch/tag/file/directoryレベルで制御される書き込みアクセス
      (rewind, create,delete branches/tagsを含む)
  • gitとperlがインストール済ならrootでアクセスしなくてもインストール出来るよ。
  • 認証は普通sshdを使うけど、httpを使うことも出来るよ。
    (でもその場合はrootでのアクセスを求められるかもよ)
  • といった感じ。

    つまり、事前に必要だとわかる物は

    • gitolite用のユーザー
    • 公開鍵と秘密鍵

    である。


    ということなので取り敢えずサーバ側でadduserする(例えばgituser)。
    続いて公開鍵と秘密鍵であるが、Cygwinを入れてないのでssh-keygenが出来ない。
    eclipseでも作れるけど、今回はTeraTerm作った
    (versionが違うので画像が違うけど、やることは一緒)

    続いてWinSCPで公開鍵(例えばgituser.pub)を
    サーバ上(自アカウントのhome)にアップし、
    秘密鍵をクライアント機の”C:\Users\ユーザー名\.ssh”に移動する。
    (ドライブレターは環境依存)

    サーバにログインして公開鍵をgituserのhomeにコピーする。

    sudo cp gituser.pub /home/gituser

    gituserになる。

    su - gituser

    .sshフォルダを作る。←もしかしたら必要ない?

    mkdir .ssh -m 0700

    ↑ 途中のパスは別にないからつけなかったけど-pて必要なんだろうか?

    この後はREADME.txtの手順に従う。
    注意点は

    • .ssh内のauthorized_keysは中が空か存在しないこと
    • $HOME(この例では/home/gituser)直下に公開鍵があること

    とのこと。

    gitoliteをcloneしてくる。

    git clone git://github.com/sitaramc/gitolite

    binフォルダを作る。

    mkdir -p $HOME/bin

    gitoliteをbinフォルダにインストールする。

    gitolite/install -to $HOME/bin

    公開鍵のセットアップをする。

    gitolite setup -pk gituser.pub

    (vi .bashrcで

    export PATH="$HOME/bin:$HOME/gitolite/bin:/usr/local/bin:/usr/bin:/bin"

    辺りをしておかないとパスが通ってないのでerrorになるので最初から↓でやるべき?)

    $HOME/bin/gitolite setup -pk gituser.pub

    これでサーバ側の設定は一応終了なのだけれども、
    うちの環境では実は一つだけ落とし穴が…_| ̄|○
    後々これではまった。ふふふ…(ヽ´ω`)

    長すぎるので前後編にわけた…__◯_