Mac OS X LeopardにGitサーバーを展開する

このトピックは、 Ubuntu ServerおよびLeopardでのgitosisのインストールガイドからの抜粋に加えて、問題が発生する可能性のある場所へのアクセントです。



最初に、 gitが何であるかを既に知っていると仮定し、この分散バージョン管理システム用にリモートリポジトリを構成する必要がある理由を決定します。



Gitのインストール。



すでにgitがインストールされている場合は、この部分をスキップできます。

gitをインストールするには、インストーラーを使用するか、ポート( MacPorts )からgitをインストールできます。 将来のポートは最新バージョンに簡単に更新できるため、2番目の方法のほうが便利だと思います。



インストーラーを使用したGit。


Googleコードdmgファイルをダウンロードし、開いてpkgインストーラーファイルを実行します。gitは既に/ usr / local /にあります。



ポートからのGit。


私はあなたがすでにポートをインストールしていると仮定します。 そうでない場合は、インストールしてください。複雑なことは何もありません。続けてください。

ソースからgitのインストールを開始します。

sudo port install git-core





すべてがエラーなしで行った場合-コンパイルされたばかりのgitは/ opt / local / bin /にあります。 誤ってパスに言及することはありません。何か問題が発生した場合に必要になる場合があります。



gitosisをインストールします。



gitosisは非常に便利なgitサーバーです。 概して、これはsshセッションが開かれたときに実行される一連のスクリプトです。 インストール後、ファイル用の便利で高速、安全なストレージが提供されます。 上で書いたように、Gitosisはsshと連動します。 したがって、「自分用」に何かを設定したい場合は、完全なアクションの自由があります。現在の設定を確認し、何かを修正し、再度修正し、最後にすべてのエラーを修正し、微笑みます。

gitosisのソースをダウンロードしてインストールします。

mkdir src

git clone git://eagain.net/gitosis.git

cd gitosis

sudo python setup.py install






インストールプロセス中にsetuptoolsでエラーが発生した場合は、それらを回避してみてください。

cd ..

easy_install gitosis






おそらく、gitosisのインストールを伴う冒険はこれで終了するはずでした。 構成してみましょう。



gitosisを構成します。



gitosisの適切なレベルのセキュリティを確保するために、個別のユーザーと個別のグループが設定されます。



グループとユーザーを作成します。


1.新しいユーザーの無料のUIDとGIDを見つける

sudo dscl . list /Users uid

sudo dscl . list groups gid






(401 GIDとUIDは無料だとしましょう)

2. gitグループを作成します

sudo dscl . create groups/git

sudo dscl . create groups/git gid 401






3. gitユーザーを作成する

sudo dscl . create users/git

sudo dscl . create users/git uid 401

sudo dscl . create users/git NFSHomeDirectory /Users/git

sudo dscl . create users/git gid 401

sudo dscl . create users/git UserShell /bin/bash

sudo dscl . create users/git Password '*'






4.ホームディレクトリを作成します(3行目の段落に示したもの)。

sudo mkdir /Users/git

sudo chown git /Users/git

sudo chgrp git /Users/git








gitosisを初期化し、構成ファイルを使用してリポジトリを作成します。


構成ファイルを初期化するには、rsaユーザーキーの公開部分が必要です。これは最初の管理者になります。 さらに明確になります。 :)

1. sshのキーをまだ作成していない場合-作成します。

ssh-keygen -t rsa





すべてのユーザーが読み取り可能なサーバー上のフォルダーにキーをコピーします。

scp ~/.ssh/id_rsa.pub your.server.com:/tmp/my_key.pub





または、ローカルサーバーをセットアップする場合

cp ~/.ssh/id_rsa.pub /tmp/my_key.pub





2.新しく作成されたユーザーに代わって、gitosisの初期化を開始します

sudo -H -u git gitosis-init < /tmp/my_key.pub





次のようなものが表示されます。

Initialized empty Git repository in ./

Reinitialized existing Git repository in ./






私は、相対パスではなく絶対パスを持っていることに自分自身で気付きます。

3. gitユーザーの環境変数を設定します。 echo $ PATHが出力するパスを指定できます。

sudo su git (enter your password)

echo "PATH=PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" > ~/.ssh/enviroment

exit








最後の仕上げ。


設定を使用してリポジトリをクローンしようとします:

git clone git@your.server.com:gitosis-admin.git





すべてがうまくいけば、次のようなものが表示されます

remote: Counting objects: 5, done.

remote: Compressing objects: 100% (4/4), done.

remote: Total 5 (delta 0), reused 5 (delta 0)

Receiving objects: 100% (5/5), done.






これで、リモートリポジトリの操作を開始できます。



gitosisを使用します。



まず、新しいリポジトリを作成し、1人以上のユーザーに書き込み権限を付与する必要があります。 gitosis.confに次の行を追加します。

[group habraTeam]

members = admin ufo

writable = habraProject






したがって、adminおよびufoユーザーからhabraTeamグループを作成し、habraProjectリポジトリーへの書き込みを許可しました。

次に、keydirフォルダーに、ユーザーのrsaキーの公開部分を配置する必要があります。

cd gitosis-admin

cp ~/ufo.pub keydir/






コミットに新しいファイルを追加し、コメント付きで作成してサーバーに送信します。

git add keydir/ufo.pub

git commit -a -m "habraProject . ."

git pull






このコードの実行後、adminとufoはhabraProjectリポジトリに書き込むことができますが、サーバー上にはまだ存在しません。

リポジトリを作成します。

mkdir ../habraProject

cd ../habraProject

git init

git remote add origin git@your.server.com:habraProject.git






これで、プロジェクトにいくつかのファイルを追加できます。または、これを行うことができず、すぐにスケルトンをサーバーにアップロードします。

git push origin master:refs/heads/master







エピローグ。


このガイドが、最初から最後まで楽しんだだけでも役立つことを願っています。 修正、質問、説明、追加を喜んでいたします。

psリポジトリの日常的な作業には、通常、非常に便利なユーティリティであるGitxを使用します。 まだいくつかのバグがありますが、日常のタスクにうまく対応しています。



All Articles