相关疑难解决方法(0)

实际上是$ RPM_BUILD_ROOT?

在构建RPM包的过程中,我必须指定BuildRoot,稍后将在%install中使用,它将调用$ RPM_BUILD_ROOT.我一直认为$ RPM_BUILD_ROOT是RPM执行打包的虚假安装.然后,在安装时使用RPM包,它将安装到实际位置.例如:

$RPM_BUILD_ROOT/usr/bin
Run Code Online (Sandbox Code Playgroud)

我认为$ RPM_BUILD_ROOT仅用于打包过程,并且在某些方面RPM可以区分$ RPM_BUILD_ROOT和实际安装位​​置,当用户执行"rpm -ivh package.rpm"时将是/ usr/bin.

但是最近在阅读一些文档时,建议$ RPM_BUILD_ROOT是将要安装的实际位置,并且$ RPM_BUILD_ROOT由用户使用环境变量$ RPM_BUILD_ROOT的设置指定,以便让用户在他们的愿望中安装包位置.否则,$ RPM_BUILD_ROOT将为null,它将安装到默认位置.在上面的例子中,它是/ usr/bin.因此,$ RPM_BUILD_ROOT不仅适用于打包或"虚假安装"过程,而且是用户定义安装位置的一种方式,类似于Windows中的选择文件夹位置.

我不知道我的想法是否正确.有人可以验证吗?提前致谢.

linux packaging rpm

31
推荐指数
2
解决办法
3万
查看次数

RPM构建错误:来自/var/tmp/rpm-tmp.32XJLX的错误退出状态(%install)

我试图在centos 6.5上创建一个简单的rpm包..但我无法完成它,因为它给我错误..我已经遵循这两个线程.. 来自/var/tmp/rpm-tmp.b1DgAt的错误退出状态(%建)从/var/tmp/rpm-tmp.ajKra4(%PREP)坏退出状态 ..但没有运气...

我无法弄清楚我在这里缺少什么..请帮我解决这个问题..

这是我的

Name:   test
Version: 1.0    
Release:    1%{?dist}
Summary: A test package 

Group:      Testing
License:    GPL
URL:        http://www.yahoo.com
Source0:        test-1.0.tar.gz
BuildRoot:  %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

BuildRequires:  /bin/rm, /bin/mkdir, /bin/cp
Requires:   /bin/bash, /bin/date

%description
this is the test package build for rhche

%prep
%setup -q

%build
./configure
%install
rm -rf $RPM_BUILD_ROOT
make -p $RPM_BUILD_ROOT/usr/local/bin
cp myscriptdate $RPM_BUILD_ROOT/usr/local/bin

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%attr(0755,root,root)/usr/local/bin/myscriptdate

%changelog
* Thu Dec 09 2010 Forrest <forrest@redhat.com> 1.0-1
-Initial RPM
-Added …
Run Code Online (Sandbox Code Playgroud)

bash centos rpm rpmbuild rpm-spec

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

rpm ×2

bash ×1

centos ×1

linux ×1

packaging ×1

rpm-spec ×1

rpmbuild ×1