入口
benchmarks
  bonnie
    results
  bytebench
comms
  mgetty
    /etc/mail/aliases
  mgetty+sendfax
    pppd サーバを作る mgetty
    設定の概要
    /etc/tty00 --モデム
    /etc/ttys
    mgetty.config, login.config
    まずは login して見る
    /etc/ppp/options
    /etc/ppp/pap-secrets
    確認方法
cross
  i386-mingw32
  ming-w64
    二つの不思議
databases
  mysql-server
    mysql_install_db
    rc.d/mysqld
    mysql_secure_installation
    20050605
      pkg_add
      (err)
      grant
    help
    error
      mysqlcheck
      reset password
      backup
    reset password
    create db
    create user
    grant
    ProFTPD+mysql
    操作
  postgres
  rrdtool
devel
  cvsync
    cvsync.conf
    ソースの取出
    問題
      desired version
  distcc
    url
    distcc って何
    用意するもの
    distccmon-text
    pkg_add
  doxygen
    Doxyfile
    出力を利用する
    1.4.5
    2007/04
  doxygen/gcc
    doxy 1.4.5
  mercurial
  git
font
  設定方法
    mkfontdir
    fontpath
  確認方法
    fontpath
    全ての書体
  intlfonts
    fontpath
  ipa
graphics
  graphviz
  magicpoint
  tgif
    print error
    work around
ham
  hamlog
inputmethod
  anthy
    kinput2
mail
  cyrus-imapd
    url
    説明
    pkg_info -D
    bin/master
    /etc/rc.d/
    認証
    cyrus-saslauthd
    メール box の管理
    着信(MTA)
    問題
    古い cyrus
    sieve
      設定
      .sieve
      操作
      検査
      有効にするには
      問題
        saslauthd
        passwd is asked
  fml
  sendmail
  milter-regex
  smtpfeed
    smtpfeed.mc
    ./Build
    test
    起動準備
  spamassassin
    pkg_add
    sa-learn
    local.cf
  spamass-milter
    メール見出
    設定
    問題
    tuning
  squirrelmail
    url
    設置と設定
    pkg_info -D
    apache
    開始画面例
    文字符号
    課題
    問題
  ja-squirrelmail
    url
    設置と設定
    pkg_info -D
    開始画面例
    文字符号
    課題
    問題
  ctorrent
  urjtag
misc
  ttyrec
multimedia
  mplayer
  gmplayer
  libdvdcss
  xine-ui
net
  bind9
    設定確認
    起動
    必要な機能の分類
    chroot 環境
  TCP/IP と AppleTalk
  netatalk
    AppleTalk と TCP/IP
    版と構成部品
    pkg_info -D
    afpd
    一時的に起動
    認証
    動作確認
    誤り
  mrtg
  net-snmp
    設定
    起動
    log
    mrtg
    snmpget
    snmpwalk
    man pages
    参考
  rsync
  samba
    版
    設定
      smb.conf
      /etc/rc.d
    起動
    add user
    debug
    problem
news
  inn
pkgtools
  pkg_chk
print
  mf
    pktogf + gftodvi
  bibtex
    ごみ
  xpdf
  ja-ptex-bin
    jpbibtex
  ja-ptex
    dvipdfmx
    その他
  pdvipdfmx
personal
  fml
    設定作業の流れ
    pkg_info -D
    fml-system
    ml を作る
      newml
    /etc/mail/aliases
    Generic From
    sendmail.cf
    最初の会員
    自動で送られるメール
    MHonArc
    majordomo
    覚え
      password の設定
      members-admin
      log
      cf を変更した時には
      自動登録
      メールで管理するには
      admin add で welcome
      asymmetric mode って
      debug
      問題
      package 問題
  id-utils
security
  cyrus-sasl
  cy2-crammd5
  openssh
sysutils
  dd_rescue
  mklivecd
      config
  memtester
textproc
  hyperestraier
    更新
    異常停止
wip
  emacs-current
    X11
wip-jp
wm
  fvwm2
www
  apache
    rc.d
    httpd.conf
    start
    mkcert
    startssl
  ap2-auth-pgsql
  cvsweb
    pkgsrc
  firefox
    Fonts
    言語毎設定
    Firmacs
  php4
    mb_string
      Wordpress
    php.ini
  w3m
X11
  qt2
wip
  u-boot

Software 入口 | Hardware | NetBSD 解説 | packages | macppc | TsubaiBSD 絹/software/全文検索

This is under: http://www.ki.nu/software/pkgsrc/

NetBSD/pkgsrc

Last Update: "2007/05/07 11:51:08 makoto"

devel

cvsync

cvsync は CVS 保管庫の同期を取るソフトウェアです。 もっと簡単に言えば、CVS リポジトリをそっくり写すためのものです。 それを効率よく行なえるような工夫がされています。

同じようなものに CVSup (CVS Update protocol) があります。 しかし これは Modula-3 で書かれていて、 その Modula-3 の処理系は x86 のアセンブリ言語で書かれた部分があるなどの 理由で i386 などの限られた機構(architecture)だけで利用出来ます。 実際には、 cvsup のためだけに作られた限定 modula-3, ezm3 ものがあって、 いくつかのアーキテクチャ用に移植が行なわれているはずです (Mac OS X にも移植されているはずですが上記 URL にはありませんね)。

さて、 これに対して cvsync は、 どの arch でも使えるのが嬉しいところです。

使えるようにするには、 pkgsrc/devel/cvsync/ で make と make install をします。 cvsync サーバでどのようなものを取得出来るかは、 http://www.cvsync.org/に書いてありますが、 次のような形式を使います。

% cvsync cvsync://<host>[:<port>]/
実際には次のような入力と反応になります。
ttyp1:makoto@u2 20:53:00/050126(~/Mail)> cvsync cvsync://cvsync.org/ Connecting to cvsync.org port 7777 Connected to 61.115.120.90 port 7777 Running... Name: cvsync, Release: rcs Comment: CVSync CVS Repository Name: cvsync-www, Release: rcs Comment: To mirror CVSync web pages Finished successfully
上の例では cvsync.org に「何がありますか」と聞きましたが、その代りに cvsync.allbsd.org に聞くと、もっと沢山の一覧が表示されます。

cvsync.conf

cvsync の設定は cvsync.conf に書きます。 /usr/pkg/share/examples/cvsync に設定例があります。それを見て /usr/pkg/etc/cvsync.conf に設定します。 例えば一番簡単な例だと、次のようになります。
config {
        hostname  cvsync.allbsd.org

        collection {
                name netbsd release rcs
                prefix /export/cvsync
        }
}
これは、cvsync.allbsd.org という機械に取りに行って、 「名前が netbsd で、リリース が rcs のもの」を持って来て、それを /export/cvsync の下に置く、と読みます。 つまり、この例では netbsd 関係の CVS 保管庫の全ての内容を /export/cvsync 以下に取得します。

それを実際に実行するには、 上のように書いておいて後は単に cvsync と入力するだけです。 その結果次のようなディレクトリが作られます。

ttypf:makoto@st4200 19:22:08/050126(~)> ls /export/cvsync/ CVSROOT/ htdocs/ othersrc/ pkgsrc/ src/ xsrc/
もし /usr/pkg/etc/cvsync.conf 以外の位置を参照したい時には
cvsync -c ~/etc/cvsync.conf
のように -c を使ってその名前を指定します。 これらの方法で 全部持って来ると、次のような大きさになります。これは 2005/01 現在の数字です。合計では 3.2GBytes くらいになります。
directory size(kBytes)
2005/012006/09
CVSROOT 59 61
htdocs 238,371 490,799
othersrc 22,738 27,253
pkgsrc 398,468 562,714
src 1,864,931 2,511,947
xsrc 642,828 948,898
合計 3,167,396 4,050,873
もし全部ということではなく、src だけが必要という場合なら、cvsync.conf の中の
name netbsd 
と書いてある部分を
name netbsd-src
に変更します。
config {
        hostname  cvsync.allbsd.org

        collection {
                name netbsd-src release rcs
                prefix /export/cvsync
        }
}

ソースの取出

上で cvsync について説明しましたが、これで手元に持って来ると、 それは CVS 保管庫になりますから、後は cvs の操作です。

例えば、この後で、

% mkdir /export/cvs-work % cd /export/cvs-work % cvs -d /export/cvsync co src
と入力すると最新の src を手元に持出せます。

問題

cvs co した時に、次のような問題が起きることがあります。
% cvs [update aborted]: EOF in key in RCS file /export/cvsync/src/distrib/utils/sysinst/factor.c,v
この指摘された譜を rcscan を使って調べると、次のように言われるはずです。
% rcscan /export/cvsync/src/distrib/utils/sysinst/factor.c,v ERROR: /export/cvsync/src/distrib/utils/sysinst/factor.c,v
この場合は、 簡単に言えば、自分のサーバ側の譜がこわれています。可能性は二つあります。
  1. 元のサーバは正常で自分のサーバ側がこわれている
  2. cvsync している元のサーバ側でもこわれている
この一つ目の場合には 単純にこれを消して、もう一度 cvsync をすれば、たいていの場合は解決します。

ただ、これでは、また次のところで同様に操作が必要で、 cvs co を見ている必要があります。そこで、次のようにするのも一つの方法です。

% setenv CVSYNC /export/cvsync ( 一例です) % cd $CVSYNC % find . -name \*,v -exec rcscan -q '{}' \; | awk -F : '{print "rm -f", $2} % find . -name \*,v -exec rcscan -q '{}' \; | awk -F : '{print "rm -f", $2} | sh (または) % find . -name \*,v -exec rcscan -q '{}' \; | awk -F : '{print "rm -f", $2} | tee | sh
(上の例のうち、3 行目は単に確認ですから、実際には不要ですが、初めての時には 御自分で確認のために試して見て下さい)。 この後に cvsync をもう一度実行すると、全て回復するはずです。
desired version
cvs [update aborted]: could not find desired version 1.13 \
     in /e/cvsync/cvsync/pkgsrc/cad/geda-examples/PLIST,v
ttyp0:makoto@tc2120 12:07:19/070411(/export/pkgsrc)> grep  1.13  cad/geda-examples/CVS/Entries

/PLIST/1.13/Mon Oct 23 09:43:13 2006//
Removing this Entries line will fix this problem.
ttyp0:makoto@tc2120 13:19:40/070411(/export/pkgsrc)> cvs update cad/geda-examples
cvs update: Updating cad/geda-examples
cvs update: move away cad/geda-examples/PLIST; it is in the way
C cad/geda-examples/PLIST
cvs update: move away cad/geda-examples/distinfo; it is in the way
C cad/geda-examples/distinfo
ttyp0:makoto@tc2120 13:20:54/070411(/export/pkgsrc)> cvs update cad/geda-examples
cvs update: Updating cad/geda-examples
U cad/geda-examples/PLIST
U cad/geda-examples/distinfo
ttyp0:makoto@tc2120 13:20:56/070411(/export/pkgsrc)> cat  cad/geda-examples/CVS/Entries 
/DESCR/1.1.1.1/Wed Apr 11 03:07:19 2007//
/Makefile/1.15/Wed Apr 11 03:07:19 2007//
/PLIST/1.5/Wed Feb 21 13:23:57 2007//
/distinfo/1.11/Wed Feb 21 13:23:57 2007//
D
ttyp0:makoto@tc2120 13:21:08/070411(/export/pkgsrc)> 
参考:
NetBSD General Commands Manual cvsync(1)
http://www.cvsync.org/man/cvsync.1.html
NetBSD解説/pkgsrc
Last Update: Mon, 08 Feb 2016 22:22:20 GMT 1.66 2008/03/08