Git+GitisサーバーのメモをGentooに配置します.

6079 ワード

備えあれば憂いなし:Git+GitisサーバーのメモをGentooに配置する
http://luliban.com/blog/2008/05/gentoo-git-gitosis.html
GitはLinus TorvaldsがLinuxカーネルの開発を管理するために開発した分散版制御ソフト(Disttributed SCM)です.Gitは、大規模な分散型プロジェクトの開発を維持するためのTorvaldsの経験とファイルシステムの性能に関する豊富な知識を汲み取っており、その文書で述べたように、「高速で拡張可能な分散型バージョン制御システムであり、非常に豊富なコマンドセットを持っており、内部システムに高度な操作と完全なアクセスを提供しています.」X.orgサーバやRuby on Railsなどのオープンソースプロジェクトのバージョン制御システムはGitに切り替えられました.Tommi Virtanenがより便利で安全なサポートGitのためにソフトウェアバージョンライブラリを構築し管理するために開発したツールソフトウェアです.Git自体は、バージョンライブラリを構築するためにgit-daemenも提供しているが、ユーザアクセス制御においては、厳密ではない.Gitosiは、単一のユーザーアカウントが複数のバージョンライブラリを管理することができます.SSH keysを使ってユーザー認証を管理します.shellアカウントを必要とせずに、複数のユーザーが集中バージョンライブラリにアクセスする問題を解決できます.説明が必要なのは、私が使っているGigtosisはrobbot 2で、新しいGentoo Overlaysを展開するために開発されたGentoo分岐バージョンです.上流バージョンと比べて、次のような違いがあります.
  • サポートgit+ssh://HOST/REPO スタイルの相対パス;
  • コマンドラインパラメータでkeysを導入することができます.例えば、gitos-init--adminkey=FILE--adminname=STRINGです.
  • スマート処理SSH keysは、SSH 1とSSH 2 keysをサポートします.
  • 上流バージョンのデフォルトのディレクトリ権限を0750に変更して、nobody:nobodyでgit-daemenを実行します.
  • この文章は現地でGit+Gitisをインストールして展開する過程と遭遇した問題を詳しく記録していますので、参考にしてください.ようこそFix-My:-)Git+Gitisインストールgitとgitons-gentooをインストールします.インストールが完了すると、Gentooは自動的にgitユーザーとグループを追加し、バージョンライブラリのメインディレクトリを/var/spool/gitons/repositorisに設定します.# echo ">=dev-util/git-1.5.5" >> /etc/portage/package.keywords# echo ">=dev-util/gitosis-gentoo-0.2_p20080203" >> /etc/portage/package.keywords# emerge -av git gitosis-gentooあなたのホストにSSHがインストールされていない場合は、opensshをインストールし、keychainを使ってssh-agentsを管理します.# emerge -av openssh keychainはインストールが完了したら、sshdを起動し、標準起動に参加する.# /etc/init.d/sshd start# rc-update add sshd defaultは、最初にGitisを構成してssh keyを生成する.$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/wyt/.ssh/id_rsa):( )Created directory '/home/wyt/.ssh'.Enter passphrase (empty for no passphrase):( )Enter same passphrase again: ( )Your identification has been saved in /home/wyt/.ssh/id_rsa.Your public key has been saved in /home/wyt/.ssh/id_rsa.pub.The key fingerprint is:dd:33:cc:99:33:00:66:77:ff:00:bb:99:00:22:55:88 wyt@gentoo ssh keyをデフォルトで保存します.あなたも他のところを選ぶことができます.次はid_をrsa.pubはサーバにアップロードします.その中のroot@gentoorootはルートのユーザー名で、gentooはホスト名で、/etc/conf.d/hostnameから知ることができます.$ cat /etc/conf.d/hostnamehostname="gentoo"$ scp ~/.ssh/id_rsa.pub root@gentoo:Password: ( root )id_rsa.pub                                     100%  392      0.4KB/s    00:00アップロードが完了したら、gitonitでバージョンライブラリを初期化します.$ sudo su -# sudo -H -u git gitosis-init < ~/id_rsa.pubInitialized empty Git repository in ./Reinitialized existing Git repository in ./上記第二条のコマンドでは、-uはsudoがgitユーザに切り替わることを示し、-Hはsudoが当該ユーザのホームディレクトリに切り替わることを示している.初期化が完了すると、ギトシ-adminというバージョンライブラリが作成され、ギトシスの設定と管理に使用されます.あなたはそれを該当ディレクトリにcloneする必要があります.$ mkdir git$ cd git$  git clone git@gentoo:gitosis-admin.git$ cd gitosis-admin$ ls -lh-rw-r--r-- 1 wyt wyt 80 2008-05-19 00:10 gitosis.confdrwxr-xr-x 2 wyt wyt 80 2008-05-19 00:10 keydirギトシ-adminディレクトリの下に、gitosi.com nfファイルとkeydirディレクトリがあります.gitosis.co nfはプロジェクト、ユーザーと権限などのバージョンライブラリの構成を保存するために用いられ、keydirはユーザーのssh keyを保存するために用いられる.ギトシis-adminもGitのバージョンライブラリなので、設定を修正した後、簡単なcomit&pshだけが必要で、すぐにサーバーの配置を更新することができます.次はGitorisで新版の本庫を作成して、ライセンスユーザーを追加します.新しいバージョンライブラリを作成します.ギトシ-adminの標準設定があります.そのままヒョウタンを描いて新しいバージョンライブラリを作成すればいいです.次に例を挙げてlocal_を作成します.testバージョンライブラリは、以下のcodeをgitosis.co nfに追加します.gitosis.co.com [group localteam]writable = local_testmembers = wyt@gentooのこのコードは、開発チームの名称「locateam」、バージョンライブラリの名称「locacacacacal autest」、書き込み権限を持つグループのメンバーを含む新しいバージョンライブラリを定義しています.wyt@gentoo「です.次に、新しいバージョンライブラリに設定されたcomit&pshをサーバーに配置します.$ git commit -a -m " local_test"$ git pushは次にローカルでバージョンライブラリを作成し、サーバ$ mkdir local_test$ cd local_test$ git init$ git remote add origin git@gentoo:local_test.git# add & commit , ……$ git push origin master:refs/heads/masterにメンバユーザ追加バージョンライブラリを追加するメンバユーザをアップロードするステップを2ステップに分けることができる.一つは、ユーザのSSH公開鍵をkeydir/ディレクトリにコピーすることである.二は、ギトシ.co nfを編集し、これらのユーザーの名前を「members」に加えることです.$ cd gitosis-admin/$ cp ~/[email protected] keydir/$ cp ~/[email protected] keydir/$ git add keydir/[email protected] keydir/[email protected]は、ギトシ.co nfgitosi.com [group localteam]writable = local_testmembers = wyt@gentoo zhangsan@gentoo lisi@gentooを編集し、続いて、サーバ$ git commit -a -m ' local_test : 、 '$ git pushに提出し、出力するバージョンライブラリを選択して、すべてのバージョンライブラリ編集/etc/conf.d/git daement GITDAEMON_OPTS="--syslog --base-path=/var/spool/gitosis/repositories/ --export-all"を出力し、出力バージョンライブラリ編集/etc/conf.d/git daemen GITDAEMON_OPTS="--syslog --base-path=/var/spool/gitosis/repositories/"を選択して、各選択出力のバージョンライブラリに出力される.git-daemen-export okファイル$ sudo touch /var/spool/gitosis/repositories/local_test.git/git-daemon-export-okを追加して、git-daemen # /etc/init.d/git-daemon start# rc-update add git-daemon defaultを起動します.もし正常であれば、私達はすでに成功して、Git+Gitisサーバーを完成しました.今はリモートcloneを試してみてもいいです.$ git clone git://169.254.64.95/local_test.git参照リンク
  • GTOIS on Gentoo@Technical Pickles
  • GTOIS-Gentoo Linux Wiki
  • Hosting Git repositories、The Easy(and Secure)Way
  • ロbrat 2:Gigtons on Gentoo、impotant notes
  • Git in a Nutshell
  • 2008-05-20 UPDDATEclone読み取り専用バージョンライブラリ:$ git clone git://169.254.64.95/local_test.git clone読み取り可能バージョンライブラリ:$ git clone git+ssh://[email protected]/local_test.git新しい読み取り可能な書き込みバージョンライブラリを作成します.$ git remote add origin git+ssh://[email protected]/new_local_test.git$ git push origin master:refs/heads/master