This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.

package の名前

Chapter 18. package の名前

package の名前は以下のルールにしたがってつけてください. これは package のディレクトリを見やすくするためで, 無秩序な名前がたくさん並んでいるとユーザが使いづらくなるのではという心配からです (FTP サイトなどにはたくさん package がありますからね).

package の名前は以下のようにしてください. 言語-名前-オプションバージョン.番号

package 名は ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION} というように定義されています. 変数がこの書式と適合していることを確認してください.

  1. FreeBSD はユーザの慣れ親しんだ言語のサポートに力を入れています. 特定の言語のための port の package 名には 言語- に ISO-639 で定義されている言語名の略称を入れてください. たとえば日本語なら ja, ロシア語なら ru, ベトナム語なら vi, 中国語なら zh, 韓国語ならば ko, ドイツ語なら de といった具合です.

    port がある言語地域に特化したものである場合には, さらに二文字の国名コードを付加してください. たとえば合衆国英語圏は en_US となり, スイスのフランス語圏は fr_CH となります.

    言語- 部分は, PKGNAMEPREFIX 変数に定義されなければなりません.

  2. 名前の部分は原則的にはすべて英小文字を使います. 例外はたくさんのプログラムが入っている巨大な port の場合で, XFree86 (ほんとにあるんですよ) や ImageMagick などがこれにあたります. そうでない場合には名前の大文字を小文字に (少なくとも最初の一字だけは) 変えてください. もし大文字であることが重要な場合 (たとえば一文字の名前, R とか V) には, あなたの裁量で大文字を使うのも良いでしょう. Perl 5 のモジュールでは先頭に p5- を付け, 二重コロン (::) のセパレータをハイフン (-) に置きかえる習慣になっています. たとえば Data::Dumperp5-Data-Dumper になります. また, そのソフトウェアの名前として通常使われるものに番号, ハイフン, あるいは下線が入っている場合には, それらを使うことも構いません (kinput2など).

  3. コンパイル時に環境変数や make の引数などでハードコードされたデフォルトを変えてコンパイルできる場合, -compiled.specifics にそのコンパイル時のデフォルトを入れてください (ハイフンはあってもなくてもかまいません). 用紙のサイズ, あるいはフォントの解像度などがこれにあたります.

    compiled.specifics 部分は, PKGNAMESUFFIX 変数に定義されなければなりません.

  4. バージョン番号は数字とアルファベットからなり, ピリオド (.) で区切ります. アルファベットは二文字以上続けてはいけません. ただ一つの例外は「パッチレベル」を意味する pl で, それ以外にバージョン番号がまったくついていない場合にのみ使うことができます. もしソフトウェアのバージョンに "alpha", "beta" や "pre" といった文字列が含まれる場合には, ピリオドの後に最初の一文字をとってください. これらの後に, さらにバージョン文字列が続く場合には, 一文字のアルファベットの後にピリオドをつけずに番号を続けます.

    この考え方は, バージョン文字列を見て簡単に ports を並べられるようにするためのものです. 特に, バージョン番号の各部分が必ずピリオドで区切られていること, また日付の部分がバージョン文字列の一部となっている場合には yyyy.mm.dd という書式を使っていることを確認してください. dd.mm.yyyy や, 2000 年問題に対応していない yy.mm.dd という書式を使ってはいけません.

では, DISTNAMEを正しい PKGNAME に直す例を見てみましょう:

以下は, ソフトウェアの作者が決めた名前から 適切な package 名に変換する方法を示した (実際の) 例です.

配布名PKGNAMEPREFIXPORTNAMEPKGNAMESUFFIXPORTVERSION理由
mule-2.2.2(空)mule(空)2.2.2変更の必要はありません
XFree86-3.3.6(空)XFree86(空)3.3.6変更の必要はありません
EmiClock-1.0.2(空)emiclock(空)1.0.2プログラム一つだけの時は小文字のみ
rdist-1.3alpha(空)rdist(空)1.3.aalpha のような文字列は使えない
es-0.9-beta1(空)es(空)0.9.b1alpha のような文字列は使えない
v3.3beta021.src(空)tiff(空)3.3なんなんでしょう ;)
tvtwm(空)tvtwm(空)pl11バージョン番号は必ず必要
piewm(空)piewm(空)1.0同上
xvgr-2.10pl1(空)xvgr(空)2.10.1pl が使えるのは, 他にメジャー/マイナーバージョン番号がない場合のみ
gawk-2.15.6ja-gawk(空)2.15.6日本語バージョン
psutils-1.13(空)psutils-letter1.13コンパイル時に用紙のサイズを指定
pkfonts(空)pkfonts3001.0300dpiフォント用の package

オリジナルのソースにまったくバージョン情報が見当たらず, また原作者が新しいバージョンをリリースする可能性が低いときには, バージョン番号として 1.0 を使えばいいでしょう (上記の piewm の例がこれにあたります). そうでない場合には原作者に聞くか, 日付 (yyyy.mm.dd) を使うなどしてください.

FreeBSD ports システムに関する質問は <ports@freebsd.org> へ(英語で),
FreeBSD ports に関する日本語での議論は <ports-jp@jp.FreeBSD.org> へお願いします.
この文書の原文に関するお問い合わせは <doc@freebsd.org> へ(英語で),
日本語訳に関するお問い合わせは <doc-jp@jp.FreeBSD.org> へお願いします.