2005-04/30 Sat

_ [] 続solaris9/sparc

補足すると、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文字くらい使わせろ。

globのメカニズムがたわけ

/usr/local/bin などのディレクトリをパッケージが握るのはまだ良い。しかし、1つのパッケージしか握れないのか、インストール時に存在するディレクトリを消す選択しがあるのは腐れ。しかもデフォルトで消すのがダメダメ。rpmの場合、特定のディレクトリが複数のパッケージで握られるだけなので、美しくないがあまり実害は無い。(rpm -qfで確認可能)

機能が足りない

rpm -qf ファイルパス って実行できる?rpm -q(p)l パッケージ名 って実行できる?