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を使用します。 まだいくつかのバグがありますが、日常のタスクにうまく対応しています。

Source: https://habr.com/ru/post/J58418/


All Articles