[Ultramonkey-l7-develop 959] Re: make install時のインストール先変更について

アーカイブの一覧に戻る

TATEISHI Katsuyuki k.t****@nttco*****
2013年 7月 12日 (金) 14:44:34 JST


たていしです。

On Fri, 12 Jul 2013 14:13:50 +0900,
中野 宏朗 <nakan****@nttco*****> wrote:
> どもです。ちょっと変えてみました。
> 実行ファイルやman、docはいい感じに入ったのですが・・・
> 
> /etcや/varもsysconfdirやlocalstatedirで置き換えてみたんですが、
> そうすると/usr/local/etcや/usr/local/varが出来て、そこに
> 設定ファイルやらpidファイル用ディレクトリやらが作られて
> しまいます。
> 
> こいつらは/etcや/varに入れたくて、でもrpmbuild時は
> prefix効かせたいんですが、なんかいい方法ないですかね〜。

そういうものだと思います。

rpmの場合、正確には rpmbuild したあとにビルドディレクトリに残っ
ている config.log を見てみると分かるのですが、RHEL環境であれば

   --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
                --libdir='${prefix}/lib64 ...

みたいな指定が自動的になされるはずです。

# 直接関係はないですが redhat-rpm-config はインストールして
# おいたほうが良いです。(バイナリをstripしてdebuginfoを作るため)


> 
> --with-l7vsadm-sockdir と  --with-l7vs-config-dir あるから、
> こいつらだけ生path指定して、rpmbuild時はこのオプションに
> RPM_BUILD_ROOTを付与するしかないかな?
> でも、v2のconfigure.acとMakefile.amを見ると、sysconfdirや
> localstatedirを使っているんですよね。
> 
> v2のときはどう乗り切ったんだろう?

v2では --with-l7... のデフォルト値を

============================================================
AC_ARG_WITH(
  l7vsadm-sockdir,
  [  --with-l7vsadm-sockdir=DIR l7vsadm sockfile path.
                            [default="${localstatedir}/run/l7vs"] ],
  [  l7vsadm_sockdir="$withval" ],
# XXX: Should be [  l7vsadm_sockdir="${localstatedir}/run/${PACKAGE}" ]
  [  l7vsadm_sockdir="${localstatedir}/run/l7vs" ]
)
============================================================
のようにしています
# XXX が残ってますが今回は関係なさげ

なので、 --prefix を指定しただけだと同様に /usr/local/var 配
下とかになる仕様です。

前述のとおり rpm にするときは rpmbuild がこのへんの場所を指定
してくれるので、Makefile.am が install 先を生で埋め込んでない
限りうまく動作するはずです。

--
TATEISHI Katsuyuki <k.t****@nttco*****>



> 
> (2013/07/12 11:14), TATEISHI Katsuyuki wrote:
>> たていしです。
>> 
>> On Thu, 11 Jul 2013 16:19:02 +0900,
>> 中野 宏朗 <nakan****@nttco*****> wrote:
>>> # ./configure --prefix=/hoge
>>>
>>> とかやってインストール先を変えようとしても変わらない。
>>> configure使ってる意味を一つ潰してて、そのせいでrpmbuildのときに
>>> 仮インストール先を変更できない・・・
>>> make exe_prefix=/hoge
>>> とかやると変えられるかもだけど、configure使ってて、configure.inを解読
>>> しないとmake変数がわからないとか、configureで変えられないとか、非一般的です。
>>>
>>> というわけで、AC_SUBST(exec_prefix,[/usr])とか、libdirとかincludeとかの
>>> 直でフルパス指定しているところを削除したいです。
>>> # libdirやincludeは、%prefix/libとかになるかな。
>>> そうすると、ソースを直接configure;makeしたときのデフォルトprefixが
>>> automake標準の/usr/localになるんですが、それでもいいでしょうか。
>>>
>>> rpmのときはprefixを$RPM_BUILD_ROOT/usrにして、/usr 配下にインストール
>>> されるようにしようと思っています。
>>> その方が一般的だと思うのですが。
>> 
>> ./configure のときに何も指定しなければ /usr/local へ、 RPM
>> は (rpmbuild が --prefix とかを /usr に指定するので) /usr へ
>> インストールされるというかたちで良いと思います。
>> 
>> # v2 のときも、たしかそうしたはずですし。
>> 
>> --
>> TATEISHI Katsuyuki <k.t****@nttco*****>
>> 
>> 
>> 
> 
> -- 
> 中野 宏朗 (NAKANO Hiroaki)
> 
> _______________________________________________
> Ultramonkey-l7-develop mailing list
> Ultra****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop
> 




Ultramonkey-l7-develop メーリングリストの案内
アーカイブの一覧に戻る