rpmを構築しており、デフォルトのシステムパスではなくパスにこのパッケージをインストールしたいとopensips
思います。/opt/opensips
SPEC
私のファイルに以下を定義しました。
%define _prefix /opt/opensips
%define _sysconfdir /opt/opensips/etc
%define _libdir /opt/opensips/lib64
%define _datadir /opt/opensips/share
%define _sbindir /opt/opensips/sbin
%define _bindir /opt/opensips/bin
%define _mandir /opt/opensips/share/man
...
...
...
%build
LOCALBASE=/usr NICER=0 CFLAGS="%{optflags}" %{?_with_oracle:ORAHOME="$ORACLE_HOME"} %{__make} all %{?_smp_mflags} TLS=1 \
exclude_modules="%EXCLUDE_MODULES" \
cfg-target=%{_sysconfdir}/opensips/ \
modules-prefix=%{buildroot}%{_prefix} \
modules-dir=%{_lib}/%{name}/modules
%install
rm -rf $RPM_BUILD_ROOT
%{__make} install TLS=1 LIBDIR=%{_lib} \
exclude_modules="%EXCLUDE_MODULES" \
basedir=%{buildroot} prefix=%{_prefix} sysconfdir=%{buildroot}/opt/opensips/etc \
cfg-prefix=%{buildroot} \
modules-prefix=%{buildroot}/%{_prefix} \
modules-dir=%{_lib}/%{name}/modules \
DBTEXTON=yes # fixed dbtext documentation installation
RPMをビルドすると、次のエラーが発生します。
rpmbuild -ba opensips.spec
間違い:
RPM build errors:
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/rc.d/init.d/opensips
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/opensips/dictionary.opensips
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/sysconfig/opensips
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/opensips/opensips.cfg
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/opensips/opensipsctlrc
File not found: /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/opt/opensips/etc/opensips/osipsconsolerc
BUILDROOTを確認すると、すべてのファイルがデフォルトの/etc
場所に保存されていることがわかります。
ls -l /root/rpmbuild/BUILDROOT/opensips-1.11.1-1.el6.x86_64/etc/opensips/
/opt/opensips/etc/
RPMにこれらのファイルをディレクトリに入れるようにどのように言いますか?
答え1
"make install" コマンドの後、ファイルを /etc/opensips から /opt/opensips に移動します。