補足すると、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 パッケージ名 って実行できる?