5.3. カテゴリ分類
戻る | 第5章 `Makefile` の作成 | 次へ

## 5.3. カテゴリ分類

### 5.3.1. `CATEGORIES`

パッケージが作成されると `/usr/ports/packages/All` に置かれ、一つ以上の `/usr/ports/packages` のサブディレクトリからリンクが張られます。 これらのサブディレクトリの名称は、`CATEGORIES` 変数で指定されます。これは、ユーザが FTP サイトや CDROM のパッケージの山から探し出すのを容易にするためのものです。 既存のカテゴリを参照して、 あなたの port にふさわしいものを選んでください。

また、このリストは、その port が ports ツリーのどこにインポートされるかも決定します。 ここに複数のカテゴリを指定すると、port のファイルは最初のカテゴリ名のサブディレクトリに置かれることになります。 適切なカテゴリの選択方法についてはカテゴリ節をご覧ください。

あなたが作成した port が、本当に既存のどのカテゴリにも当てはまらない場合には、 新たにカテゴリ名を作成することもできます。 その場合、新しいカテゴリを提案するメールを FreeBSD ports メーリングリスト 宛に送ってください。 しかし、一般的にはあなたが提案したカテゴリにあてはまる ports が一握りではすまない場合でなければ、 あなたの提案は却下されるでしょう。

### 注記:

時々、カテゴリを 2 階層構造や、 何か他のキーワードを利用した構造に再構成することを提案する人がいます。 今日まで、その提案はどれも実現しませんでした。 なぜなら、その構成を実現することは簡単なのですが、既存の Ports Collection 全体を構成しなおしたものに合わせて改修する労力は、 控え目にいっても気が遠くなるものだからです。 こういうアイディアを送る前に、 それらの提案の歴史をメーリングリストのアーカイブで調べてください。 さらに、動作するプロトタイプを示せと言われるのに対する準備をしておきましょう。

### 5.3.2. 現在のカテゴリのリスト

ここに現在の port のカテゴリの一覧を示します。 アスタリスク(`*`) が付いているものは仮想 (virtual) カテゴリです — これらには対応するサブディレクトリが port ツリーにはありません。 これらは第 2 の補助的なカテゴリとして、 検索目的にしか使われません。

### 注記:

仮想カテゴリでないものは、 そのサブディレクトリ内の `pkg/COMMENT` に一行の記述があります (例: `archivers/pkg/COMMENT`)。

カテゴリ | 説明 | Notes
--- | --- | ---
`accessibility` | 障害を持ったユーザの役に立つ ports |
`afterstep*` | AfterStep ウィンドウマネージャをサポートする ports |
`arabic` | アラビア語サポート |
`archivers` | アーカイブ用ツール |
`astro` | 天文学関連の ports |
`audio` | サウンドをサポートする ports |
`benchmarks` | ベンチマークユーティリティ |
`biology` | 生物学関連のソフトウェア |
`cad` | CAD ツール |
`chinese` | 中国語サポート |
`comms` | 通信ソフトウェア | ほとんどはシリアルポート用のソフトウェア
`converters` | 文字コード変換 |
`databases` | データベース |
`deskutils` | コンピュータが発明される以前に机上で使われていた道具 | (訳注: いわゆるデスクトップユーティリティのこと)
`devel` | 開発ユーティリティ | 単にライブラリだからというだけで、 どうしてもここに置かなければならない理由があるのでない限り、 ライブラリをここに含めないでください。
`dns` | DNS 関連ソフトウェア |
`editors` | 一般的なエディタ | 特殊なエディタはそれぞれふさわしいセクションに入れます (たとえば数式エディタは `math` です)。
`elisp` | Emacs-lisp の ports |
`emulators` | 他のオペレーティングシステム用のエミュレータ | 端末エミュレータはここに含まれません — X ベースのものは `x11` に、 テキストベースのものは機能によって `comms` か `misc` に分類されます。
`finance` | 金融や財務会計関連のアプリケーション。 |
`french` | フランス語サポート |
`ftp` | FTP クライアントとサーバユーティリティ | port が FTP と HTTP の両方に対応していれば、 `ftp` に入れ、第 2 カテゴリを `www` とします。
`games` | ゲーム |
`german` | ドイツ語サポート |
`gnome*` | GNOME プロジェクトの ports |
`graphics` | グラフィックユーティリティ |
`haskell*` | Haskell 言語関連のソフトウェア。 |
`hebrew` | ヘブライ語サポート |
`hungarian` | ハンガリー語サポート |
`ipv6*` | IPv6 関連のソフトウェア |
`irc` | インターネットリレーチャット (IRC) 用ユーティリティ |
`japanese` | 日本語サポート |
`java` | Java 言語関連のソフトウェア |
`kde*` | K Desktop Environment (kde) プロジェクトの ports |
`korean` | 韓国語サポート |
`lang` | プログラミング言語 |
`linux*` | Linux アプリケーションとサポートユーティリティ |
`lisp*` | Lisp 言語関連のソフトウェア |
`mail` | メールソフトウェア |
`math` | 数値計算ソフトウェアやその他の数学ソフトウェア |
`mbone` | MBone アプリケーション |
`misc` | 種々のユーティリティ | 基本的に他のカテゴリに属さないものです。 これは他の仮想でないカテゴリを伴わない、唯一のカテゴリです。 `misc` と他のカテゴリが `CATEGORIES` 行に書かれている場合、 `misc` を削除して他のサブディレクトリにおいて良いという意味になります。 このカテゴリに置かれた ports は見落とされやすいので、 可能な限り `misc` よりふさわしいカテゴリを探してください。
`multimedia` | マルチメディアソフトウェア |
`net` | 種々のネットワークソフトウェア |
`net-mgmt` | ネットワーク管理ソフトウェア |
`news` | USENET ニュースソフトウェア |
`offix*` | OffiX suite の ports |
`palm` | Palm™ シリーズをサポートするソフトウェア |
`parallel*` | 並列計算を行うアプリケーション |
`pear*` | Pear PHP フレームワーク関連の ports |
`perl5*` | 実行に Perl バージョン 5 を必要とする ports |
`picobsd` | PicoBSD をサポートするための ports |
`plan9*` | Plan9 に由来するさまざまなソフトウェア |
`polish` | ポーランド語サポート |
`portuguese` | ポルトガル語サポート |
`print` | 印刷ソフトウェア | DTP 用ツール (プレビューアなど) もここに分類されます。
`python*` | Python 言語関連のソフトウェア |
`ruby*` | Ruby 言語関連のソフトウェア |
`russian` | ロシア語サポート |
`science` | `astro` や `biology`, `math` 等、 他のカテゴリにはあてはまらない科学関連の ports |
`security` | セキュリティ関連のユーティリティ |
`shells` | コマンドラインシェル |
`sysutils` | システムユーティリティ |
`tcl76*` | 実行に Tcl バージョン 7.6 を必要とする ports |
`tcl80*` | 実行に Tcl バージョン 8.0 を必要とする ports |
`tcl81*` | 実行に Tcl バージョン 8.1 を必要とする ports |
`tcl82*` | 実行に Tcl バージョン 8.2 を必要とする ports |
`tcl83*` | 実行に Tcl バージョン 8.3 を必要とする ports |
`textproc` | テキスト処理ユーティリティ | DTP ツールはここではなく、`print` に分類されます。
`tk42*` | 実行に Tk バージョン 4.2 を必要とする ports |
`tk80*` | 実行に Tk バージョン 8.0 を必要とする ports |
`tk81*` | 実行に Tk バージョン 8.1 を必要とする ports |
`tk82*` | 実行に Tk バージョン 8.2 を必要とする ports |
`tk83*` | 実行に Tk バージョン 8.3 を必要とする ports |
`tkstep80*` | 実行に TkSTEP バージョン 8.0 を必要とする ports |
`ukrainian` | ウクライナ語サポート |
`vietnamese` | ベトナム語サポート |
`windowmaker*` | WindowMaker ウィンドウマネージャをサポートする ports |
`www` | World Wide Web 関連のソフトウェア | HTML 言語サポートもここに分類されます。
`x11` | X ウィンドウシステムとその関連ソフトウェア | このカテゴリは、 直接ウィンドウシステムをサポートするソフトウェアのみを対象とするものです。 通常の X アプリケーションをここに分類しないでください。 ほとんどは他の `x11-*` カテゴリ (下記参照) に分類されるべきです。 あなたの port が X アプリケーションで、 `USE_XLIB` を定義し (`USE_IMAKE` を定義すると自動的に定義されます)、 適切なカテゴリに分類してください。
`x11-clocks` | X11 用時計 |
`x11-fm` | X11 用ファイルマネージャ |
`x11-fonts` | X11 フォントとフォントユーティリティ |
`x11-servers` | X11 サーバ |
`x11-toolkits` | X11 ツールキット |
`x11-wm` | X11 ウィンドウマネージャ |
`zope*` | Zope サポート |

### 5.3.3. 適切なカテゴリの選択

多くのカテゴリに重なるので、 どれを「第一」カテゴリにするかを決めなければならないことがたびたびあるでしょう。 これをうまく決めるルールがいくつかあります。 以下はその優先順のリストで、優先度の高いものから低いものの順に書いてあります。

- 言語特有のカテゴリがまず最初です。 たとえば日本語の X11 のフォントをインストールする port の場合、 `CATEGORIES` 行は `japanese x11-fonts` となるでしょう。

- より特徴的なカテゴリが、 一般的なカテゴリより優先されます。 たとえば、HTML エディタの場合は `www editors` となります。 これを逆順にはしないでください。 また、 port が `irc`, `mail`, `mbone`, `news`, `security`, `www` のいずれかに属する場合には `net` は暗黙のうちに含まれますので、入れるべきではありません。

- `x11` を第二カテゴリにするのは第一カテゴリが自然言語の場合のみにしてください。 特に X のアプリケーションには `x11` を指定しないでください。

- Emacs のモードは、 そのモードで対応しているアプリケーションと同じ ports カテゴリに置くようにして、 `editors` には置かないでください。 例えば、あるプログラミング言語のソースファイルを編集するための Emacs モードは、 `lang` に置くべきです。

- もし、あなたの port が他のどのカテゴリにも属しない場合には `misc` にしてください。

もし、あなたがカテゴリについて自信が持てない場合には、 そのことを send-pr(1) する時に書き加えてください。 そうすればインポートする前にそれについて議論できます (もしあなたがコミッターであれば、 そのことを FreeBSD ports メーリングリスト に送って先に議論するようにしてください。 新しい port が間違ったカテゴリに import されて、 すぐ移動されることがあまりに多いのです。そうなると、 ソースリポジトリのマスターが不要で好ましくない膨れ方をしてしまいます。

戻る | 上に戻る | 次へ
5.2. 名前の付け方 | ホーム | 5.4. 配布ファイル

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。