8a72894489
Sync with the original version. Unify some japanese words. Submitted by: kano@na.rim.or.jp
587 lines
15 KiB
Groff
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
|
|
バグは他にもあるはずです。
|