[ 地球流体電脳倶楽部 / cc-env ] [ 手引き / SIGEN.htm ]

電脳倶楽部謹製 debian パッケージ apt リスト公開の手引き



概要

地球流体電脳倶楽部で作成しているソフトウェア群のうち, debian パッケー ジ化されているものの apt ソースリストの公開方法について記す.

なお, 下記の手順は作業を簡単にするため, かなり自動化してある. 手動で apt による管理を行なうための技術情報に関しては 技術文書 を参照せよ.

アーカイブの基本方針

基本的にこのディレクトリに以下に debian パッケージの実体は置かず, 他の プロジェクトのディレクトリ以下の debian パッケージ置き場のディレクトリ へのシンボリックリンクを作成する.

実際にこのディレクトリ以下で管理しているのは apt に必要となる Packages.gz, Sources.gz のみである. これらのファイルは (<URL:stable><URL:testing> 以下に作成される).

公開の基本方針

/etc/apt/sources.list に記述する公開アドレスは

または

とする.

事前準備

debian パッケージを公開するための事前準備の手引きである. 既に事前準備が済んでおり, 新たに別のプロジェクトで公開している debian パッケージ群を apt リストに追加したい場合は 追加する場合の手順 を参照せよ

Makefile.apt の準備

<URL:Makefile.apt> の各変数を書き変える.

$ vi Makefile.apt

      STABLE  = sarge

      TESTING =

      SUBDIRS = spml netcdf ispack fftw gt4f90io g95

      CHMOD   = 664     # Set mode          (optional)

      CHGRP   = cc-env # Set group         (optional)

STABLE, TESTING に指定されるディレクトリ以下に Packages.gz, Sources.gz が作成される.

SUBDIRS にリストされるディレクトリ以下の debian パッケージが探査 される. 関連ディレクトリの様子を以下に示す.

凡例

./debian
|
|-- $(STABLE)/          <-- このディレクトリ以下は自動生成
|   |-- Packages.gz         (下記の「Packages.gz, Sources.gz の作成」
|   `-- Sources.gz          参照)
|
|-- $(TESTING)/         <-- このディレクトリ以下は自動生成
|   |-- Packages.gz         (下記の「Packages.gz, Sources.gz の作成」
|   `-- Sources.gz          参照)
|
|-- $(SUBDIRS) その1/   <-- このディレクトリ以下は手動で準備
|   |-- $(STABLE)/
|   |   `-- **********.deb  <-- $(STABLE)/Packages.gz, 
|   |                           $(STABLE)/Sources.gz へと反映
|   |
|   `-- $(TESTING)/
|       `-- **********.deb  <-- $(TESTING)/Packages.gz, 
|                               $(TESTING)/Sources.gz へと反映
|
`-- $(SUBDIRS) その2/   <-- このディレクトリ以下は手動で準備
    |-- $(STABLE)/
    |   `-- **********.deb  <-- $(STABLE)/Packages.gz, 
    |                           $(STABLE)/Sources.gz へと反映
    |
    `-- $(TESTING)/
        `-- **********.deb  <-- $(TESTING)/Packages.gz, 
                                $(TESTING)/Sources.gz へと反映

具体例 (STABLE=sarge, TESTING=etch, SUBDIRS=g95 gt4f90io)

./debian
|
|-- sarge/
|   |-- Packages.gz
|   `-- Sources.gz
|
|-- etch/
|   |-- Packages.gz
|   `-- Sources.gz
|
|-- g95/
|   |-- sarge/
|   |   |-- g95_20060412.dsc
|   |   |-- g95_20060412.tar.gz
|   |   |-- g95_20060412_i386.changes
|   |   |-- g95_20060412_i386.deb
|   |   |-- g95_20060419.dsc
|   |   |-- g95_20060419.tar.gz
|   |   |-- g95_20060419_i386.changes
|   |   `-- g95_20060419_i386.deb
|   |
|   `-- etch/
|       |-- g95_20060421.dsc
|       |-- g95_20060421.tar.gz
|       |-- g95_20060421_i386.changes
|       `-- g95_20060421_i386.deb
|
`-- gt4f90io/
    |-- sarge/
    |   |-- gt4f90io-ifc8.1_20050207-1.dsc
    |   |-- gt4f90io-ifc8.1_20050207-1.tar.gz
    |   |-- gt4f90io-ifc8.1_20050207-1_i386.changes
    |   |-- gt4f90io-ifc8.1_20050207-1_i386.deb
    |   |-- gt4f90io-ffc5_20060123-1.dsc
    |   |-- gt4f90io-ffc5_20060123-1.tar.gz
    |   |-- gt4f90io-ffc5_20060123-1_i386.changes
    |   `-- gt4f90io-ffc5_20060123-1_i386.deb
    |
    `-- etch/
        |-- gt4f90io-ifc9_20060123-1.tar.gz
        |-- gt4f90io-ifc9_20060123-1.dsc
        |-- gt4f90io-ifc9_20060123-1_i386.deb
        `-- gt4f90io-ifc9_20060123-1_i386.changes

アーカイブの実体へのシンボリックリンク作成

上記のディレクトリ構造を参照し, 公開したい debian パッケージの格納され たディレクトリのシンボリックリンクを作成する. 以下はその例である. (シンボリックリンクを作成する際は, 絶対パスではなく, 相対パス をリンク先にすること. 絶対パスに対するシンボリックリンクは ftp アクセス の際に見えない).

$ cd /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou
$ ln -s ../../gtool4/debian/gt4f90io ./gt4f90io
$ ln -s ../g95/debian/ ./g95
$                 :

シンボリックリンク先のディレクトリ構造に応じてリンクのはり方が 異なってくるので注意.

stable ディレクトリ作成

debian の安定版バージョンに対応するコードネームのディレクトリ (上記の Makefile.apt で STABLE 変数に指定された名前) に stable のシンボリックリンクをはる.

$ cd /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou
$ sg cc-env
$ umask 002
$ ln -s sarge stable

TESTING に値が指定される場合にはそのシンボリックリンクも作成する.

$ ln -s etch testing

Linux ディレクトリ以下へシンボリックリンク

ftp アクセスのことを考え, 相対パスでシンボリックリンクを作成すること. ftp は実ディレクトリからの相対パスでなくてはならないので注意.

$ cd /GFD_Dennou_Club/ftp/arch-large1/cc-env/Linux
$ sg cc-env
$ umask 002
$ ln -s ../../../arch/cc-env/debian-dennou/
$ ln -s ../../../arch/cc-env/debian-dennou.SIGEN

Packages.gz, Sources.gz の作成

<URL:./> ディレクトリで, 以下のコマンドを入力する.

$ cd /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou
$ sg cc-env
$ umask 002
$ make scan

すると, $(STABLE), $(TESTING) に指定されたディレクトリが 生成され, そのディレクトリ以下に Packages.gz および Sources.gz が 作成されているはずである.

テスト

上記のように Package.gz, Source.gz が準備できたら, 手元の PC の /etc/apt/sources.list に以下の記述を追加する.

deb http://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou stable
deb-src http://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou stable

以下のコマンドでソフトウェアのインストールが出来たら OK.

# apt-get update
# apt-get install g95 (例えば)

以下の記述でもうまくいくことを確認する.

deb ftp://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou stable
deb-src ftp://www.gfd-dennou.org/library/cc-env/Linux/debian-dennou stable

Cron による Packages.gz, Sources.gz 更新の自動化

cc-env ユーザに成り代わり, crontab の設定を行って apt のリストを 自動更新するよう設定する.

$ sudo -u cc-env -s
$ crontab -e

    # Update of Packages.gz, Sources.gz
    30 4 * * * umask 002; cd /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou ; make scan > /dev/null 2>&1

追加する場合の手順

以下は, 既に事前準備が済んでおり, 新たに別途 debian パッケージ群 を apt リストに追加したい場合の手順を示す.

アーカイブの実体へのシンボリックリンク作成

追加で公開したい debian パッケージの格納されたディレクトリ のシンボリックリンクを作成する. 以下は, /GFD_Dennou_Club/ftp/arch/gtool4/debian/gt4f90io ディレクトリ 以下の debian パッケージを公開する場合の例である. (シンボリックリンクを作成する際は, 絶対パスではなく, 相対パス をリンク先にすること. 絶対パスに対するシンボリックリンクは ftp アクセス の際に見えない).

$ cd /GFD_Dennou_Club/ftp/arch/cc-env/debian-dennou
$ ln -s ../../gtool4/debian/gt4f90io ./
$ ln -s ../../gtool4/debian/gt4f90io.SIGEN ./

この際, ディレクトリ構造がMakefile.apt の準備で 述べられているようになっているよう注意すること.

Makefile.apt の編集

次に, <URL:Makefile.apt> の SUBDIRS に新たに探査するディレクトリ名を 追加する. 改行する場合, 末尾にバックスラッシュをつける必要があるので注意.

$ vi Makefile.apt

      SUBDIRS = spml netcdf
                 dcl/dcl-5.3 dcl/dcl-5.3.1 dcl/dcl-c dcl/dcl-f90 \
                 ruby/gave ruby/gphys ruby/gphys-remote \
                 gt4f90io # <- 新規に書き足す

Packages.gz, Sources.gz 更新

Cron による Packages.gz, Sources.gz 更新の自動化 の 設定が為されていれば, Packages.gz, Sources.gz が自動更新される はずだが, すぐに更新したい場合は Packages.gz, Sources.gz の作成 を参照せよ.

技術文書


cc-env Group / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: 2006/07/10, Since: 2006/04/22