【问题标题】:How to install rpm in opt directory [closed]如何在 opt 目录中安装 rpm [关闭]
【发布时间】:2020-11-26 12:52:37
【问题描述】:

我已经为其中一个包创建了 rpm。我想将该 rpm 安装在 opt 目录中,但默认情况下它安装在根目录中。我尝试在规范文件中使用前缀,但它不起作用。 我也尝试过 rpm -ivh --prefix=/opt 但 rpm 总是安装在根目录中。 rpm 是可重定位的。

rpm -qpi abc.rpm的输出:

Name        : abc
Version     : 1.4
Release     : 0
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Multimedia
Size        : 39054113
License     : GPL
Signature   : (none)
Source RPM  : abc.rpm
Build Date  : Wednesday 05 August 2020 09:10:51 PM IST
Build Host  : localhost
Relocations : /usr 
Packager    : 
Summary     : Xiph Streaming media server that supports multiple formats.
Description :

RPM 的 SPEC 文件:

Name:           abc
Version:        1.4
Release:        0
Summary:        
Group:          
License:        
Source:         %{name}.tar.gz
Prefix:         %{_prefix}
Packager:        xyz
BuildRoot:      %{_tmppath}/%{name}-root
%description
 rpm
%Prefix /opt
%prep
rm -rf %{_topdir}/BUILD/*
%setup -n abc

%build

%install
mkdir -p -m0755 %{buildroot}/
cp -r %{_builddir}/%{name} %{buildroot}/

%clean
#rm -rf %{buildroot}
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
/abc/daemon
/abc/proxy
/abc/service-files
/abc/pip-selfcheck.json
/abc/requirements.txt
/abc/README.md
/abc/.git
/abc/venv.tar.gz

【问题讨论】:

    标签: rpm rpmbuild rpm-spec


    【解决方案1】:

    像这样更正你的规范文件:

    Prefix: /opt
    ...
    %install
    mkdir -p -m0755 %{buildroot}/
    cp -r %{_builddir}/%{name} %{buildroot}/opt/
    
    %files
    %defattr(-,root,root)
    /opt/abc/daemon
    

    更多信息:http://ftp.rpm.org/max-rpm/s1-rpm-reloc-prefix-tag.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2011-08-07
      • 1970-01-01
      • 2013-02-12
      相关资源
      最近更新 更多