補足すると、opensshで make packages を実行するだけでは/usr/local 以下は飛ばされない。これでパッケージを作った後のinstall時に、適当にy, yと押したのが原因。メッセージを以下に記す。例えばlibungifの例
% gzcat libungif-4.1.0-sol9-sparc-local.gz > libungif-4.1.0-sol9-sparc-local
% sudo pkgadd -d !$
sudo pkgadd -d libungif-4.1.0-sol9-sparc-local
The following packages are available:
1 SMClungif libungif
(sparc) 4.1.0
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:
Processing package instance <SMClungif> from
</home/tab/work/sunsite/libungif-4.1.0-sol9-sparc-local>
libungif
(sparc) 4.1.0
This appears to be an attempt to install the same architecture and
version of a package which is already installed. This installation
will attempt to overwrite this package.
Eric S. Raymond
Using </usr/local> as the package base directory.
## Processing package information.
## Processing system information.
3 package pathnames are already properly installed.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
The following files are already installed on the system and are being
used by another package:
/usr/local/bin <attribute change only>
/usr/local/doc <attribute change only>
/usr/local/include <attribute change only>
/usr/local/lib <attribute change only>
Do you want to install these conflicting files [y,n,?,q]
この最後の時点で、yを選択すると破滅する。
パッケージを入れるには、
Do you want to install these conflicting files [y,n,?,q] n Do you want to continue with the installation of <SMClungif> [y,n,?] y
と選択すれば良い。
「パッケージの弱点については諸説あるが、代表的なものをあげてみよう」
「お前、調べてないし詳しくないだろ?」
pkginfoで9文字しか表示してくれなかった。しかも頭の4文字はシステムに取られる。せめて32文字くらい使わせろ。
/usr/local/bin などのディレクトリをパッケージが握るのはまだ良い。しかし、1つのパッケージしか握れないのか、インストール時に存在するディレクトリを消す選択しがあるのは腐れ。しかもデフォルトで消すのがダメダメ。rpmの場合、特定のディレクトリが複数のパッケージで握られるだけなので、美しくないがあまり実害は無い。(rpm -qfで確認可能)
rpm -qf ファイルパス って実行できる?rpm -q(p)l パッケージ名 って実行できる?