rpmbuild на CentOS: нет такого файла или каталога - PullRequest
0 голосов
/ 18 ноября 2018

Я создал простой RPM на Fedora27, и он работал нормально.Он просто скопировал файлы из tar.gz в /usr/bin/.

Когда я попытался установить этот RPM на CentOS, я получил:

# 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

Так что я предположил, что мне нужно будет создатьRPM на CentOS.Но когда я делаю это, я получаю странное: «Нет такого файла или каталога», которого я не получаю на 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?

EDIT 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.

...