doc/ja_JP.eucJP/man/man1/pkg_create.1
SUZUKI Koichi 8a72894489 Fix typos.
Sync with the original version.
Unify some japanese words.

Submitted by:  kano@na.rim.or.jp
2004-10-11 08:23:01 +00:00

587 lines
15 KiB
Groff

.\"
.\" FreeBSD install - a package for the installation and maintainance
.\" of non-core utilities.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" Jordan K. Hubbard
.\"
.\"
.\" @(#)pkg_create.1
.\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.61 2004/07/02 23:12:52 ru Exp %
.\"
.\" hacked up by John Kohl for NetBSD--fixed a few bugs, extended keywords,
.\" added dependency tracking, etc.
.\"
.\" [jkh] Took John's changes back and made some additional extensions for
.\" better integration with FreeBSD's new ports collection.
.\"
.\" $FreeBSD$
.Dd June 29, 2004
.Dt PKG_CREATE 1
.Os
.Sh 名称
.Nm pkg_create
.Nd ソフトウェア配布 package を作成するプログラム
.Sh 書式
.Nm
.Op Fl YNOhjvyz
.Op Fl C Ar conflicts
.Op Fl P Ar pkgs
.Op Fl p Ar prefix
.Op Fl i Ar iscript
.Op Fl I Ar piscript
.Op Fl k Ar dscript
.Op Fl K Ar pdscript
.Op Fl r Ar rscript
.Op Fl s Ar srcdir
.Op Fl S Ar basedir
.Op Fl t Ar template
.Op Fl X Ar excludefile
.Op Fl D Ar displayfile
.Op Fl m Ar mtreefile
.Op Fl o Ar originpath
.Fl c Ar comment
.Fl d Ar description
.Fl f Ar packlist
.Ar pkg-filename
.Nm
.Op Fl YNhvy
.Fl b Ar pkg-name
.Op Ar pkg-filename
.Sh 解説
この
.Nm
コマンドは、package 展開/情報プログラムに渡される package
(訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します)
を作成します。
package 作成のために入力する説明とコマンドライン引数
は本来人間が生成することを意図していませんが、
そうすることも簡単にできます。
自力でどうにかすることも可能ですが、作成にはフロントエンドツールを
用いた方がいいでしょう。
とはいうものの、入力書式の概略はこの文書に含まれています。
.Sh オプション
以下のコマンドラインオプションが提供されています:
.Bl -tag -width indent
.It Fl f Ar packinglist
ファイル
.Ar packinglist
から、もしくは
.Ar packinglist
.Cm -
(ダッシュ)であれば
.Cm stdin
から、package 用の
.Dq packing list
を取得します。
.It Fl c Xo
.Oo Fl Oc Ns Ar desc
.Xc
ファイル
.Ar desc
から、もしくは先頭が
.Cm -
で始まっていれば引数自身から、package の
.Dq 一行説明
を取得します。
この文字列は、package が提供するもののバージョンを知る
手がかりとなるべきです。
.It Fl d Xo
.Oo Fl Oc Ns Ar desc
.Xc
ファイル
.Ar desc
から、もしくは先頭が
.Cm -
で始まっていれば引数自身から、package の長い説明を取得します。
.It Fl Y
質問に対してのデフォルトの回答を `Yes' とします。
.It Fl N
質問に対してのデフォルトの回答を `No' とします。
.It Fl O
`packing list Only' モードに移行します。
これは
.Fx
.Em "Ports Collection"
のための特別な修正であり、port がインストールされる時の
`fake pkg_add' を行うために用いられます。
このような場合には、調整された最終的な packing list が
どのようなものになるかを知る必要があるのです。
.It Fl v
饒舌な出力に切り替えます。
.It Fl h
tar がシンボリックリンクをたどるようにします。
この結果、リンク自身ではなくリンク先のファイルが出力されます。
.It Fl i Ar iscript
package のインストール前手続きとして
.Ar iscript
を用います。
これは実行可能なプログラム (もしくはシェルスクリプト) なら
なんでも構いません。
これは package がインストールされる時に自動的に起動されます。
その際、package 名が第 1 引数として渡されます。
.Pp
.Sy 注:
.Fl I
オプションが指定されない場合、
本スクリプトは当該 package の
pre-install および post-install の両方のスクリプトとして動作します。
package 名の後にキーワード
.Ar PRE-INSTALL
および
.Ar POST-INSTALL
をそれぞれ渡すことにより、機能を切り替えることになります。
.It Fl I Ar piscript
package のインストール後手続きとして
.Ar piscript
を用います。
これは実行可能なプログラム (もしくはシェルスクリプト) なら
なんでも構いません。
これは package がインストールされる時に自動的に起動されます。
その際、package 名が第 1 引数として渡されます。
.It Fl C Ar conflicts
初期の package 衝突リストとして
.Ar conflicts
を用います。
これは、空白で区切った package 名のリストとみなされ、
packing list 中で複数の
.Cm @conflicts
ディレクティブを指定する手っ取り早い方法でもあります
(後述の
.Sx PACKING LIST 詳細
節を参照してください)。
.It Fl P Ar pkgs
初期の package 依存リストとして
.Ar pkgs
を用います。
これは空白で区切られた package の名前となります。
また、packing list (後述の
.Sx "PACKING LIST 詳細"
セクションを参照)
内の複数の
.Cm @pkgdep
ディレクティブを指定する手っ取り早い方法でもあります。
.Ar pkgs
リストの各引数は
.Ar pkgname Ns Op : Ns Ar pkgorigin
という書式です。
省略可能な
.Ar pkgorigin
要素は、リストからの各依存の起源を表し、
.Ar pkgname
と共に
.Cm @comment
ディレクティブを使用して packing list 中に記録されます。
.It Fl p Ar prefix
package のファイルを選択する際に
.Dq 基準
となる初期ディレクトリとして
.Ar prefix
を用います。
.It Fl k Ar dscript
package のアンインストール手続きとして
.Ar dscript
を用います。
これは実行可能なプログラム (もしくはシェルスクリプト) なら
なんでも構いません。
これは package がアンインストールされる時に自動的に起動されます。
その際、package 名が第 1 引数として渡されます。
.Pp
.Sy 注:
.Fl K
オプションが指定されない場合、
本スクリプトは当該 package の
de-install および post-deinstall の両方のスクリプトとして動作します。
package 名とともにキーワード
.Ar DEINSTALL
および
.Ar POST-DEINSTALL
をそれぞれ渡すことにより、機能を切り替えることになります。
.It Fl K Ar pdscript
package のアンインストール後手続きとして
.Ar pdscript
を用います。
これは実行可能なプログラム (もしくはシェルスクリプト) なら
なんでも構いません。
これは package がアンインストールされる時に自動的に起動されます。
その際、package 名が第 1 引数として渡されます。
.It Fl r Ar rscript
package の
.Dq requirements
手続きとして
.Ar rscript
を用います。
これは実行可能なプログラム (もしくはシェルスクリプト) なら
なんでも構いません。
これはインストール時、アンインストール時に自動的に起動され、
インストール、アンインストールを継続するべきかどうかを決定するのに
用いられます。
インストールとアンインストールを区別するために、キーワード
.Ar INSTALL
.Ar DEINSTALL
がそれぞれ、package 名と共に渡されます。
.It Fl s Ar srcdir
package 作成中に
.Ar srcdir
は、
.Cm @cwd
の値に優先します。
.It Fl S Ar basedir
package 作成の間、
.Ar basedir
がすべての
.Cm @cwd
の前に付けられます。
.It Fl t Ar template
.Xr mktemp 3
への入力として
.Ar template
を用います。
これはデフォルトでは
.Pa /tmp/instmp.XXXXXX
という文字列ですが、
.Pa /tmp
ディレクトリの容量が制限されているような状況では
変更する必要があるかもしれません。
.Xr mktemp 3
が一意の ID を用いるために必要な `X' の文字をいくつか残しておく
ことを忘れないでください。
.It Fl X Ar excludefile
最終的に package を作成する際に、
.Ar excludefile
.Cm tar
.Fl exclude-from
引数として渡します。
このオプションを使うにあたっての詳しい情報は、
.Cm tar
のマニュアルページ (もしくは
.Fl -help
引数を付けて
.Cm tar
を実行) を参照してください。
.It Fl D Ar displayfile
package をインストールした後にファイルを (連結して標準出力へ) 表示します。
「ほとんど free なソフトウェア」などにおいて、
法的な通知のようなものなどに便利でしょう。
.It Fl m Ar mtreefile
package がインストールされる前に、mtreefile を入力として
.Xr mtree 8
を実行します。mtree は
.Cm mtree
.Fl u
.Fl f
.Ar mtreefile
.Fl d
.Fl e
.Fl p
.Pa prefix
として起動されます (ただし
.Pa prefix
.Cm @cwd
ディレクティブにより名付けられた最初のディレクトリの名前)。
.It Fl o Ar originpath
.Ar originpath
を、
.Em "FreeBSD Ports Collection"
中で package が作成された場所として記録します。
この書式は、
.Pa MASTERCATEGORY/PORTDIR
であるべきです。
.It Fl j
package の tarball を圧縮するために、
.Xr bzip2 1
ユーティリティを
.Xr gzip 1
の代りに使用します。
最終的なアーカイブの書式が、認識可能なサフィックスによって
.Ar pkg-filename
で明示的に指定されている場合、本オプションは無効であることに注意してください。
現在
.Nm
は、次のサフィックスを認識します:
.Pa .tbz , .tgz , .tar
.It Fl y
互換性のための、
.Fl j
の同義語です。
.It Fl z
package の tarball を圧縮するために、
.Xr gzip 1
ユーティリティを使用します。
.It Fl b Ar pkg-name
.Ar pkg-name
という名前でローカルにインストールされた package から、
package ファイルを作成します。
.Ar pkg-filename
が指定されない場合、最終的なアーカイブはカレントディレクトリに作成され、
.Ar pkg-name
に対して伸長用の適切なサフィックスが付いた名前となります。
.El
.Sh PACKING LIST 詳細
.Dq packing list
の書式 (
.Fl f
を参照) は単純で、package に含めるファイル名を一行につきひとつずつ
並べたものにすぎません。
どこにインストールされるかわからない package に対して絶対パスを
用いるのは一般的に悪い方法なので、
どこにインストールされることを想定しているのか、
そしてどんな ownership と mode を伴ってインストールされるべきなのか
(こちらはオプション) を指定する方法が用意されています。
これは packing list 内に一連の特殊コマンドを
埋め込むことで実現されています。以下に簡単に示します:
.Bl -tag -width indent -compact
.It Cm @cwd Ar directory
内部のディレクトリポインタが
.Ar directory
を指すようにします。以降のファイル名はこのディレクトリへの相対パス
であるとみなされます。
注:
.Cm @cd
はこのコマンドの別名です。
.It Cm @srcdir Ar directory
「作成時のみ」の内部ディレクトリポインタを
.Ar directory
に設定します。
package 作成時に
.Cm @cwd
に優先すると言えますが、展開時にはこれはあてはまりません。
.It Cm @exec Ar command
展開処理の一環として
.Ar command
を実行します。
.Ar command
が以下の文字列を含んでいた場合、その場で置換されます。
以下の例では
.Cm @cwd
.Pa /usr/local
と設定されていて、最後に展開されたファイルが
.Pa bin/emacs
だったとしています。
.Bl -tag -width indent -compact
.It Cm "%F"
最後に展開されたファイル名に置換されます。この例では
.Pa bin/emacs
となります。
.It Cm "\&%D"
.Cm @cwd
で設定されたカレントディレクトリプレフィックスに置換されます。
この例では
.Pa /usr/local
になります。
.It Cm "\&%B"
完全な (フルパスの) ファイル名の
.Dq basename
へ置換されます。
これはカレントディレクトリプレフィックスに最後の filespec を
加え、末尾のファイル名部分を除いたものです。
この例では、
.Pa /usr/local/bin
になります。
.It Cm "%f"
完全な (フルパスを含む) ファイル名の
.Dq filename
部分へ置換されます。
.Cm \&%B
と対応していて、この例では
.Pa emacs
となります。
.El
.It Cm @unexec Ar command
アンインストール処理の一環として
.Ar command
を実行します。特別な
.Cm %
文字列の置換は
.Cm @exec
と同様です。
このコマンドは
.Cm @exec
のように package を加える際に実行されるのではなく、package が
削除されるときに実行されます。
これは、package を加えるときに作られたリンクや他の
付随ファイル (package の内容一覧に記されているファイルは自動的に
削除されるので除く) を削除するのに便利です。
アンインストールスクリプトよりも
.Cm @unexec
を用いる方が有利な点は、どこにインストールされているかわからない (
.Fl p
を参照) ファイルの場所を得るのに
.Dq 特殊文字列置換
を用いることが
可能なことです。
.It Cm @mode Ar mode
この後で展開されるすべてのファイルのデフォルトの許可属性を
.Ar mode
に設定します。
書式は
.Cm chmod
コマンドで用いられているものと同じです (というよりも、そのまま
渡されています)。
引数無しで用いると、デフォルトの (展開) 許可属性に戻します。
.It Cm @option Ar option
内部用 package オプションを設定します。
現在二つのオプションのみがサポートされています。
ひとつは
.Ar extract-in-place
で、これは pkg_add コマンドに package の tarball を
staging area に展開せずに、目的の階層に直接展開するよう指示します
(これは主に配布物や他の特殊な package などに用いられます)。
もうひとつは
.Ar preserve
で、存在するファイルを別の所に保存しておくよう pkg_add に指示します
(これらは pkg_delete の時に復活しますが、自分の責任で行ってください)。
.It Cm @owner Ar user
この後で展開されるすべてのファイルのデフォルトの ownership を
.Ar user
に設定します。
引数無しで用いると、デフォルトの (展開) ownership に戻します。
.It Cm @group Ar group
この後で展開されるすべてのファイルのデフォルトの group ownership を
.Ar group
に設定します。
引数無しで用いると、デフォルトの (展開) group ownership に戻します。
.It Cm @comment Ar string
packing list 内にコメントを埋め込みます。
誰かが後で間違えてしまうかもしれない特に厄介な部分を説明しようとする
場合に便利です。
.It Cm @ignore
特殊な目的に使われるファイルなどのため、展開時に次のファイルを
無視する (どこにもコピーしない) ように、内部で用いられます。
.It Cm @ignore_inst
.Cm @ignore
と同様ですが、次のファイルを無視するのは一評価サイクルだけ
遅らせられます。
このおかげでこのディレクティブを
.Ar packinglist
ファイル内で用いることが可能になるので、インストーラが
無視するような、インストールスクリプトなどのための特殊な
データファイルを、配布物内に入れることができるようになります。
.It Cm @name Ar name
package の名前を設定します。
これは必須項目であり、通常先頭に置かれます。
この名前は package が提供するファイルの名前とは異なる可能性があり、
後でアンインストールする時のために
package の記録を残しておくのに使われます。
名前が指定されなかった場合には、
.Nm
は package 名から推定し、自動的に設定することに注意してください。
.It Cm @dirrm Ar name
ディレクトリ
.Pa name
がアンインストール時に削除されるよう宣言します。デフォルトでは、
package のインストール時に作成されたディレクトリは
アンインストール時には削除されませんが、このディレクティブは明示的な
ディレクトリ削除方法を提供します。
このディレクティブは package リストの最後で用いるようにしてください。
一つ以上の
.Cm @dirrm
ディレクティブが指定された場合、指定された順番に削除されます。
.Pa name
は空きディレクトリでなければ削除されません。
.It Cm @mtree Ar name
.Pa name
を、インストール時に用いられる
.Xr mtree 8
への入力ファイルとして宣言します (上述の
.Fl m
を参照)。最初にひとつだけ
.Cm @mtree
ディレクティブを指定することが推奨されます。
.It Cm @display Ar name
.Pa name
を、インストール時に表示されるファイルとして宣言します (上述の
.Fl D
を参照)。
.It Cm @pkgdep Ar pkgname
package
.Ar pkgname
に依存することを宣言します。
package
.Ar pkgname
はこの package がインストールされる前にインストールされていなければ
ならず、またこの package は package
.Ar pkgname
がアンインストールされる前にアンインストールされなければなりません。
package が複数の package に依存する場合には、複数の
.Cm @pkgdep
ディレクティブが用いられます。
.It Cm @conflicts Ar pkgcflname
.Ar pkgcflname
package との衝突を宣言します。
これは、ふたつの package が同じファイルへの参照を持ち、
同一システムに共存できないことが理由です。
.El
.Sh 環境変数
環境変数
.Ev PKG_TMPDIR
で、
.Nm
が作業用ファイルの生成を試みるディレクトリの名前を指定します。
.Ev PKG_TMPDIR
が設定されていない場合、
.Ev TMPDIR
で指定されたディレクトリが使用されます。
.Ev PKG_TMPDIR
.Ev TMPDIR
ともに設定されていない場合は、組み込みのデフォルトディレクトリが
使用されます。
.Sh 関連ファイル
.Bl -tag -width /usr/tmp -compact
.It Pa /var/tmp
環境変数
.Ev PKG_TMPDIR
.Ev TMPDIR
がともに設定されていない場合の作業用ディレクトリ。
.It Pa /tmp
.Pa /var/tmp
が存在しない場合の、その次の選択肢。
.It Pa /usr/tmp
.Pa /tmp
が適切でない場合の、最後の選択肢。
.El
.Sh 関連項目
.Xr pkg_add 1 ,
.Xr pkg_delete 1 ,
.Xr pkg_info 1 ,
.Xr pkg_version 1 ,
.Xr sysconf 3
.Sh 歴史
.Nm
コマンドは
.Fx
で最初に登場しました。
.Sh 作者
.An Jordan Hubbard
.Sh 協力者
.An John Kohl Aq jtk@rational.com ,
.An Oliver Eikemeier Aq eik@FreeBSD.org
.Sh バグ
package が展開される際にハードリンクを保存しておくために、
配布物のファイル間でのハードリンクは
.Cm @cwd
ディレクティブで括られていなければなりません。
その上、実行時の引数の長さの制限 (これは
.Fn sysconf _SC_ARG_MAX
により返される値に依存します) のために、それらのハードリンクは単一の
.Cm tar
実行内で行われなければなりません。
.Pp
バグは他にもあるはずです。