【问题标题】:Cannot create RPM package无法创建 RPM 包
【发布时间】:2023-06-14 17:22:01
【问题描述】:

我正在尝试创建 RPM 规范文件。不幸的是,我找不到解决此问题的方法。

我使用命令 rpmdev-setuptree 创建了 rpm 构建目录,并创建了简单的规范文件。我把源文件放在 SOURCES/test-one-1.0.tar.gz 下

这是规范文件:

Name:           test
Version:        1.0
Release:        1%{?dist}
Summary:        test installation script

Group:          Utilities
License:        GPL
URL:            http://oracle-base.com/articles/linux/linux-build-simple-rpm-packages.php
Source0:        test-one-1.0.tar.gz
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

#BuildRequires:  
#Requires:       

%description
test installation script

%prep
%setup -q


%build
%configure
make %{?_smp_mflags}


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT

#install -d $RPM_BUILD_ROOT/opt/mytest


%clean
rm -rf $RPM_BUILD_ROOT


%files
%dir /opt/mytest
%defattr(-,root,root,-)
%doc



%changelog

当我运行命令rpmbuild -bb -v rpm/SPECS/kernel.spec

我得到这个输出:

[user@laptop ~]$ rpmbuild -bb -v rpm/SPECS/kernel.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Hqq4KB
+ umask 022
+ cd /home/rcbandit/rpm/BUILD
+ cd /home/rcbandit/rpm/BUILD
+ rm -rf test-1.0
+ /usr/bin/gzip -dc /home/rcbandit/rpm/SOURCES/test-one-1.0.tar.gz
+ /bin/tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd test-1.0
/var/tmp/rpm-tmp.Hqq4KB: line 34: cd: test-1.0: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.Hqq4KB (%prep)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.Hqq4KB (%prep)
[user@laptop ~]$

你能帮我解决这个问题吗?

【问题讨论】:

    标签: linux rpm rpmbuild rpm-spec


    【解决方案1】:

    %setup 假定提取源代码会创建一个与%name 同名的目录。如果不是这种情况,则应使用-n argument 指定备用目录名称。

    【讨论】:

    • 呃...你应该添加一个-n%setup之后的名字。
    • 我是这样编辑的 %setup -n test_dir.但我收到错误 /var/tmp/rpm-tmp.uZ2UzJ: line 34: cd: test_dir: No such file or directory
    • ...您是否为在存档中查找您应该使用的名称而烦恼?
    • 进入 tar.gz 文件我有多个文件。能否提供更多信息?
    • 它们都在存档的一个子目录中吗?