CentOS上的rpmbuild:没有这样的文件或目录

时间:2018-11-18 11:13:51

标签: centos fedora rpm rpmbuild

我已经在Fedora27上创建了一个简单的RPM,并且运行良好。它只是将文件从tar.gz复制到/ usr / bin/。

当我尝试在CentOS上安装此RPM时,我得到了:

# rpm -i RPMS/x86_64/my_rpm-0.0-5.x86_64.rpm --force
error: Failed dependencies:
        libc.so.6(GLIBC_2.26)(64bit) is needed by my_rpm-0.0-5.x86_64

所以我认为我将需要在CentOS上创建RPM。 但是,当我这样做时,我会感到很奇怪:“没有这样的文件或目录”,我没有使用Fedora27。这是我的规格文件的草图:

%define _topdir     %(pwd)
%define name        my_rpm
%define release     5
%define version     0.0
%define buildroot   %{_topdir}/%{name}-%{release}-root

BuildRoot:      %{buildroot}
Summary:        my_rpm
License:        -
Name:           %{name}
Release:        %{release}
Version:        %{version}
Source:         %{name}-%{version}-%{release}.tar.gz
Prefix:         /usr
Group:          Tools

%description
This is my_rpm spec file

%prep
%setup -q -n %(arch)/%{name}-%{version}

%install
install -D my_app -t %{buildroot}/usr/bin/my_rpm/

%files
/usr/bin/my_rpm/*

当我尝试为其构建RPM时,会得到:

# rpmbuild -v -bb --clean SPECS/bpf.spec
+ install -D app -t /root/rpmbuild/BUILDROOT/my_rpm-0.0-5.x86_64/usr/bin/my_rpm/
install: failed to access '/root/rpmbuild/BUILDROOT/my_rpm-0.0-5.x86_64/usr/bin/my_rpm/': No such file or directory

相同的SPEC可以在Fedora27上顺利运行。 我应该在我的spec文件中对其进行哪些更改,以便使其在Fedora27和CentOS7上均可使用?还是我可以使用Glibc解决我最初的问题?

编辑1

我在安装过程中添加了“ mkdir -p ...”命令,构建成功,但是仍然出现相同的错误,我需要Glibc 2.6。 我不明白的是为什么在构建过程中会显示:

Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.26)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libc.so.6(GLIBC_2.9)(64bit) libelf.so.1()(64bit) libelf.so.1(ELFUTILS_1.0)(64bit) rtld(GNU_HASH)

编辑2(解决方案)

我明白了。我的可执行文件是编译的C代码。因此,我不得不在CentOS上重新编译所有内容,然后构建rpm。现在,它可以在Fedora和CentOS上使用。

0 个答案:

没有答案