From Fedora Project Wiki

< Infrastructure‎ | fedorapeople.org

Revision as of 04:45, 14 August 2010 by T2y (talk | contribs) (cloneurl ワークアラウンドを追加)

fedorapeople.org

本稿は Fedora の貢献者が世界中でファイル共有のためにアップロードできる fedorapeople.org で、あなたの個人スペースを作成して使用する方法の詳細を説明します。それは spec ファイル、SRPM、パッチ、個人リポジトリ等をアップロードするために最適です。

fedorapeople.org スペースへアクセスする

  1. Fedora アカウントを有効にする必要があります。
  2. 何かのグループを支援するために参加しなければなりません(CLA グループ以外)。
  3. ssh キーを生成する必要があります(ssh-keygen -t rsa)。
  4. Fedora アカウントへ ssh キーをアップロードします。アップロードするために このリンクを訪問して 'Public RSA SSH key フィールドにあなたのパブリックキーを選択してください。通常はホームディレクトリの .ssh/id_rsa.pub にあります。アップロード後 ssh キーが有効になるのに1時間かかります。
  5. 接続するために、Fedora アカウントにアップロードした ssh キーを使用してください。
ssh -i ~/.ssh/id_rsa <your_fedora_id>@fedorapeople.org

一般的な回答

  • 各 Fedora 貢献者は quota 制御で 150 MB のスペースを持てます。
  • ウェブ上に公開されたスペースを作成するために public_html ディレクトリを作成してください。
  • scp, sftp 又は rsync を使用してファイルをアップロードしてください。
Idea.png
Nautilus の使用
GNOME を使用しているなら fedorapeople.org スペースへ接続する簡単な方法について このページを訪問してください。
Idea.png
Dolphin 又は Konqueror の使用
KDE を使用しているなら fedorapeople.org スペースへ接続する簡単な方法として、ファイルマネージャに sftp://your_username@fedorapeople.org を入力してください。

コマンドラインからファイルをコピーするために scp コマンドを使用することができます。

scp /path/to/file your_fedora_username@fedorapeople.org:/home/fedora/your_fedora_username/public_html
  • 拡張 ACL を使用して read/write/etc のアクセス権をファイルへ与えてください。ディレクトリ/ファイルへアクセス権を追加するために setfacl と getfacl の man ページを確認してください。このサンプルは jkeating というユーザに読み込みと書き込みのアクセス権を file へ与えます。
setfacl -m u:jkeating:rw file

BETA git ホスティングサポート

現在 fedorapeople.org はホスティングのために gitweb で提供しているサービスと同様に匿名ダウンロードのために git:// 経由でのアクセスを含めて git リポジトリをサポートしています。 これは beta と見なされるべきです。

次に fedorapeople.org で git を使い始める方法を簡単に紹介します。これはあなたが既に git に少し慣れていることを前提としています。慣れていないなら Git クイックリファレンスで調べる方が良いかもしれません。

fedorapeople.org で ~/public_git ディレクトリを作成する

ssh your_fedora_username@fedorapeople.org "mkdir ~/public_git"

~/public_git で新たな git リポジトリを作成する

サンプルとして ローカルシステム上 に空のリポジトリを作成して、その空リポジトリをアップロードする方法を紹介します。

mkdir repo.git
cd repo.git
git --bare init
touch git-daemon-export-ok
cd ..
scp -r repo.git/ your_fedora_username@fedorapeople.org:public_git/

このサンプルは bare リポジトリ(例えば、ワーキングディレクトリを持たないリポジトリ)を作成します。それは (大半のユーザは見慣れている) non-bare リポジトリの .git ディレクトリの一部であるファイルのみを含みます。

Important.png
リポジトリ名は .git 終わらなければなりません
Gitweb は repos を表示しません。というのは .git で終わっていないからです。
Important.png
リポジトリアクセスと git-daemon-export-ok
git-daemon-export-ok ファイルなしでは git:// プロトコル経由でリポジトリへ匿名アクセスはできません。

{{admon/caution|Non-bare リポジトリ| non-bare リポジトリは動作 すべき ではありますが、そのようなリポジトリに push することは一般的に推奨されていません。しかし、あなたが non-bare リポジトリをどうしても使用するなら、トップレベルの git ディレクトリに git-daemon-export-ok ファイルを置くべきです。例えば、~/public_git/your_repo.git/git-daemon-export-ok です。また ~/public_git/your_repo.git/.git/git-daemon-export-ok では ありません

~/public_git への既存リポジトリへアップロードする

fedorapeople 上に使用したい既存のリポジトリを持っているなら、もっと簡単にできます。

git clone --bare /path/to/local/repo repo.git
touch repo.git/git-daemon-export-ok
scp -r repo.git/ your_fedora_username@fedorapeople.org:public_git/

ここでも前のセクションで説明した警告が同様に適用されます。

リポジトリに対して push する

ローカルリポジトリの変更を push するためには次のようにします。

cd /path/to/local/repo
git remote add fedorapeople your_fedora_username@fedorapeople.org:public_git/repo.git
git push --mirror fedorapeople

これはローカルリポジトリのミラーを作成します。ローカルリポジトリの全てのブランチとタグは fedorapeople リポジトリへ push されます。

選択したブランチへ push したいだけなら git push のサンプルを修正してください。例えば、ローカルのマスタブランチへのみ push するには次のようにします。

git push fedorapeople master
Idea.png
他のユーザにも push を許可する
他の fedorapeople.org ユーザに、拡張 ACL を使用して(詳細は setfacl(1) を参照)リポジトリへ push することを許可することができます。しかし、あなたのプロジェクトで作業するユーザがたくさんいるなら Fedora Hosted を使用することを強く推奨します。

リポジトリをクローンする

リポジトリをクローンするために次のコマンドを使用してください。

git clone git://fedorapeople.org/~your_fedora_username/repo.git

http:// プロトコル経由でプロジェクトをクローンすることもできます。この作業のためにリポジトリを更新するときはいつも git-update-server-info を実行するように調整しなければなりません。通常、これは post-update フックスクリプトで行われます。しかし、fedorapeople.org 上のユーザのホームディレクトリは、そのフックスクリプトの実行が行えない noexec オプションでマウントされています。その代わり、リポジトリのフックディレクトリにある git-update-server-info へのシンボリックリンクを作成します。

ssh ~your_fedora_username@fedorapeople.org
cd ~/public_git/repo.git/hooks
ln -svbf /usr/bin/git-update-server-info post-update

また ~/public_html/git から ~/public_git へシンボリックリンクを作成することも必要です。

cd ~/public_html
ln -svbf ../public_git git

次のコマンドで http:// 経由でリポジトリをクローンすることもできます。

git clone http://your_fedora_username.fedorapeople.org/git/repo.git/
Idea.png
git:// 対 http://
もしファイアウォールのために git:// プロトコルが使えないなら http:// プロトコルのみでクローンしてください。git:// の方が http:// プロトコルよりも速くて効率的です。

gitweb 経由でプロジェクトをブラウズする

プロジェクトリストが更新されると gitweb であなたのプロジェクトが表示されます。このリストは1時間毎に更新されます。 gitweb URL は変更されるかもしれないので注意してください。

Idea.png
リポジトリの説明
リポジトリにある description ファイルを編集することで gitweb に表示されるリポジトリの説明を設定することができます。
Idea.png
リポジトリ URL
デフォルトで gitweb リポジトリが表示する URL は正しくありません(2008年中頃のサービスの導入以来、最近は2010年8月11日に確認しました)。正しい URL を含むリポジトリに対する cloneurl をファイルに追加することで対処することができます。

デフォルトの壊れた URL:

git://fedorapeople.org/home/fedora/your_fedora_username/public_git/repo.git
ssh://fedorapeople.org/home/fedora/your_fedora_username/public_git/repo.git

正しく動作するためには cloneurl ファイルにこれらの URL を追加します。

git://fedorapeople.org/~your_fedora_username/repo.git
ssh://fedorapeople.org/~your_fedora_username/public_git/repo.git