OpenSolaris のソースを Mercurial(hg)を利用して opensolaris.org と同期します。 ここでは、Solaris 10 x86 上に構築します。
Mercurial は Python で記述されているので、Python をインストールしておく必要があります。 Solaris 10 用の Python は http://www.sunfreeware.com/ から入手しインストールするとよいでしょう。ソースから作成する場合も、Python 2.5 であれば Solaris 10 にインストールするのは簡単です(ncurses ライブラリはあらかじめインストールしてき、./configure; make で...)。
http://www.selenic.com/mercurial/wiki/index.cgi/Download/
作業は スーパーユーザー(root) で行ってください。
# gzip -dc mercurial-stable-snapshot.tar.gz | tar xf -
# cd mercurial-<version>
# python setup.py install --force
公開キーは、OpenSSH を利用して作成します。Solaris 10 には、OpenSSHがインストールされているため ssh-keygen コマンドを利用してキーを作成します。ここでは、ソース管理用アカウント srcadmin を用意してあるとします。
srcadmin$ ssh-keygen -b 1024 -t dsa
公開/非公開 dsa 鍵のペアを生成しています。
鍵を保存するファイルを入力してください (/home/srcadmin/.ssh/id_dsa): <Enter>
ディレクトリ '/home/srcadmin/.ssh' を作成しました。
パスフレーズを入力してください (パスフレーズなしの場合は空): <パスフレーズ>
パスフレーズをもう一度入力してください: <パスフレーズ>
識別情報が /home/srcadmin/.ssh/id_dsa に保存されました。
公開鍵が /home/srcadmin/.ssh/id_dsa.pub に保存されました。
鍵のフィンガープリント:
83:c5:22:8a:9c:d9:f4:1a:20:f0:65:e9:ad:28:6a:a1 srcadmin@example.com
srcadmin$
ここで作成した公開キー /home/srcadmin/.ssh/id_dsa.pub を OpenSolaris.org に登録します。
OpenSolaris.org のサイトへアクセスして、 アカウントを作成し Mercurial でのアクセス許可設定を行います。
アカウントを作成していなければ、register からアカウントを作成、アカウントを持っていれば Sign in からログインします。
自分のアカウント名をクリックし、update profile をクリックして作成した公開キーを登録します。SSH Authorized Keys のセクションに移動し、Type を DSA にして Key の欄に /home/srcadmin/.ssh/id_dsa.pub の内容を貼り付け "Save" ボタンを押して保存します。
ソースツリーを作成したいディレクトリを作成し、Mercurial(hg)を利用して最新のソースを入手します。
srcadmin$ mkdir -p /usr/local/src/solaris
srcadmin$ cd /usr/local/src/solaris
srcadmin$ hg clone ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
destination directory: onnv-gate
requesting all changes
adding changesets
adding manifests
adding file changes
added 3460 changesets with 67162 changes to 43027 files
39682 files updated, 0 files merged, 0 files removed, 0 files unresolved
srcadmin$
srcadmin$ cd onnv-gate
srcadmin$ hg pull
pulling from ssh://anon@hg.opensolaris.org/hg/onnv/onnv-gate
searching for changes
adding changesets
adding manifests
adding file changes
added 112 changesets with 1962 changes to 1779 files
(run 'hg update' to get a working copy)
srcadmin$ hg update
1771 files updated, 0 files merged, 350 files removed, 0 files unresolved
srcadmin$ ls -l usr/src
合計 394
-rw-rw-r-- 1 srcadmin staff 12561 2月 3日 14:42 Makefile
-rw-rw-r-- 1 srcadmin staff 7672 2月 3日 14:42 Makefile.lint
-rw-rw-r-- 1 srcadmin staff 31124 2月 3日 14:42 Makefile.master
-rw-rw-r-- 1 srcadmin staff 2325 1月 13日 12:30 Makefile.master.64
-rw-rw-r-- 1 srcadmin staff 2295 1月 13日 12:30 Makefile.msg.targ
-rw-rw-r-- 1 srcadmin staff 4179 1月 13日 12:30 Makefile.noget
-rw-rw-r-- 1 srcadmin staff 8881 2月 3日 14:42 Makefile.psm
-rw-rw-r-- 1 srcadmin staff 5446 2月 3日 14:42 Makefile.psm.targ
-rw-rw-r-- 1 srcadmin staff 18924 1月 13日 12:30 OPENSOLARIS.LICENSE
-rw-rw-r-- 1 srcadmin staff 65171 2月 3日 14:42 Targetdirs
drwxrwxr-x 412 srcadmin staff 7168 2月 3日 14:42 cmd/
drwxrwxr-x 27 srcadmin staff 512 1月 13日 12:32 common/
drwxrwxr-x 4 srcadmin staff 512 1月 13日 12:32 grub/
drwxrwxr-x 9 srcadmin staff 3584 2月 3日 14:42 head/
drwxrwxr-x 169 srcadmin staff 3584 2月 3日 14:42 lib/
drwxrwxr-x 383 srcadmin staff 8192 2月 3日 14:42 pkgdefs/
drwxrwxr-x 2 srcadmin staff 512 1月 13日 12:34 prototypes/
drwxrwxr-x 4 srcadmin staff 512 1月 13日 12:34 psm/
-rw-rw-r-- 1 srcadmin staff 1729 1月 13日 12:34 req.flg
drwxrwxr-x 4 srcadmin staff 512 1月 13日 12:34 stand/
drwxrwxr-x 26 srcadmin staff 1024 2月 3日 14:42 tools/
drwxrwxr-x 39 srcadmin staff 1024 1月 13日 12:34 ucbcmd/
drwxrwxr-x 4 srcadmin staff 512 1月 13日 12:34 ucbhead/
drwxrwxr-x 7 srcadmin staff 512 1月 13日 12:34 ucblib/
drwxrwxr-x 11 srcadmin staff 512 1月 13日 12:35 uts/
drwxrwxr-x 2 srcadmin staff 512 1月 13日 12:35 xmod/
srcadmin$