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

Back to archive index

中野 宏朗 nakan****@nttco*****
2013年 7月 25日 (木) 13:52:06 JST


中野@幕張です。

Makefile.am, configure.in spec修正版のrpmで起動しようとすると、
l7vs.cfをまんまspecファイルで指定したRPM_BUILD_ROOT配下の
パスで探しにいってしまう不具合が発覚しましたorz

ちょっと修正案を考えます。

(2013/07/19 16:41), 中野 宏朗 wrote:
> 中野@幕張です。
> 
> ようやく、Makefile.amとconfigure.in、そしてspecファイルを
> 修正し終えました。
> 
> v2に比べて残念な部分が目立っていたv3のmake環境、rpmbuild環境
> が少しはマシになったと思います。
> 修正分をgitの3.1.0-develブランチにプッシュしました。
> 
> # でも以前立石さんが言ってたmake distは作れてないです・・・
> 
> 
> 
> (2013/07/17 14:36), 中野 宏朗 wrote:
>> 中野@幕張です。
>> autoconf,automake,rpmbuildと格闘中。。。
>>
>> rpmbuildで、RPMを作るのにmake installを
>> 使うようにすると、develパッケージ用の
>> ヘッダファイルがコピーされないことに
>> 気づきました。
>> # というか、知ってたけど忘れてましたw
>>
>> tar ballからのmake installからでも
>> ヘッダファイルをインストールするように
>> しようと思います。
>>
>> (2013/07/12 15:09), 中野 宏朗 wrote:
>>> 中野@幕張です。
>>>
>>> v2では、インストールマニュアルで./configure時に
>>> prefix, sysconfdir, localstatedir, libdirを
>>> コマンドラインで指定するようにしていたんですね。
>>>
>>> v3もそうしようかな・・・
>>> 他の方はどうでしょうか?
>>>
>>> (2013/07/12 14:53), TATEISHI Katsuyuki wrote:
>>>> たていしです。
>>>>
>>>> On Fri, 12 Jul 2013 14:44:34 +0900 (JST),
>>>> TATEISHI Katsuyuki <k.t****@nttco*****> wrote:
>>>>>>
>>>>>> --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 先を生で埋め込んでない
>>>>> 限りうまく動作するはずです。
>>>>
>>>> 補足です。
>>>>
>>>> v2 は spec ファイルでも
>>>> ============================================================
>>>> %define l7vs_moddir %{_libdir}/l7vs
>>>> %define l7vs_logdir %{_localstatedir}/log/l7vs
>>>> %define l7vsadm_sockdir %{_localstatedir}/run/l7vs
>>>> (中略)
>>>>
>>>> %build
>>>> %configure \
>>>>       --with-l7vs-moddir=%{l7vs_moddir} \
>>>>       --with-l7vs-logdir=%{l7vs_logdir} \
>>>>       --with-l7vsadm-sockdir=%{l7vsadm_sockdir} \
>>>>       --with-l7vs-maxvs=%{l7vs_maxvs}
>>>> ============================================================
>>>> のように指定してました。
>>>>
>>>> --
>>>> TATEISHI Katsuyuki <k.t****@nttco*****>
>>>>
>>>>
>>>>>
>>>>> --
>>>>> 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 のときも、たしかそうしたはずですし。
>>>>
>>>> 補足です。
>>>>
>>>>
>>>>
>>>
>>
> 

-- 
中野 宏朗 (NAKANO Hiroaki)
NTTコムウェア 品質生産性技術本部 技術SE部
基盤ソフトSE・OSS部門 OSS・DB技術担当
Tel: 043-211-2452 (Ext: 特番+26-8341), Fax: 043-211-5086
Zip/Address: 261-0023 千葉県千葉市美浜区中瀬1-6 NTT幕張ビル21F-En




Ultramonkey-l7-develop メーリングリストの案内
Back to archive index