2011 の春、make install と make package の挙動が変わりました。
本来 make package は
1. 作成 (make build) 2. インストール (make install) 3. インストールしたものをまとめたアーカイブ(tar.gz 形式)を作成する。 4. クリーニング (make clean)を実行するものでした。 現在の make package は pkgsrc/pacakges/All ディレクトリにバイナリ(.tar.gz)を生成するだけです。 つまり 2. と 4. を実行していません。
逆に、make install の動作が make package を含むようになりました。
1. 作成 (make build)。 2. インストールしたものをまとめたアーカイブ(tar.gz 形式)を作成する。 3. インストール (従来の make install)。
これによるメリット: (1) make install が常にバックアップとしてバイナリを生成します。 (2) 新しいフレームワーク( USE_DESTDIR )では、 work/ 以下に仮想的に /usr/pkg 以下を作成し、 そこからバイナリを生成しています。 これにより、 用もないのに /usr/pkg 以下にインストールされる、 ということがなくなりました。
備考: もう少し技術的な話をすると、 install ターゲットが、 USE_DESTDIR フレームワークを使う場合は新しい方法( package-install )、 USE_DESTDIR フレームワークを使わない場合は従来どおりの方法( stage-install ) という動作をしています。
pkgsrc は -current 的なものなので、 はっきりとした境目が分かりにくいです。 ただ、三カ月ごとに作る pkgsrc の正式リリース版である 2011Q1 では USE_DESTDIR がデフォルトと書いてあります。 そんなわけで、この変更は 2011 春のどこかなのでありんす。
詳細は pkgsrc/mk/install/bsd.install.mk から依存関係をたどって自分で読んでください。
pkgsrc/mk/install/bsd.install.mk の cvs log より:
revision 1.13 date: 2010/02/24 22:53:34; author: joerg; state: Exp; lines: +23 -7 Rename the install phase to stage-install. Introduce a new install target that defaults to either stage-install or package-install, depending on whether DESTDIR support is active and supported by the package or not.
pkgsrc/mk/install/install.mk の cvs log より:
revision 1.58 date: 2010/02/24 22:53:34; author: joerg; state: Exp; lines: +9 -9 Rename the install phase to stage-install. Introduce a new install target that defaults to either stage-install or package-install, depending on whether DESTDIR support is active and supported by the package or not.
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >