Я пытаюсь установить необходимое программное обеспечение glib 2.14
поэтому я установил его с помощью этого руководства: Как обновить glibc с версии 2.12 до 2.14 на CentOS?
проблема в том, что путь к glib 2.14 - это /opt/glibc-2.14/lib/libc.so.6
поэтому, когда я пытаюсь установить программное обеспечение с помощью rpm, я все еще получаю эту ошибку:
error: Failed dependencies:
libc.so.6(GLIBC_2.14)(64bit) is needed by xyz-4.6.6-1.x86_64
libc.so.6(GLIBC_2.15)(64bit) is needed by xyz-4.6.6-1.x86_64
libc.so.6(GLIBC_2.17)(64bit) is needed by xyz-4.6.6-1.x86_64
как я могу добавить собственный путь для зависимостей rpm?





Было бы немного помочь, если бы вы дали нам имя пакета, который пытаетесь установить. Вы не можете просто указать путь, RPM проверяет, есть ли какие-либо зарегистрированные пакеты, которые предоставляют эти библиотеки, а их нет. Вот несколько методов, которые вы можете использовать:
Используйте --nodeps
Если вы уже знаете, что у вас есть все, что требуется, использование --nodeps совершенно нормально, ИМО.
Создайте виртуальные пакеты для недостающих библиотек (передовой)
Вам не хватает следующих библиотек: libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit).
Вот пример файла .spec для создания виртуального пакета претензии для предоставления этих библиотек:
Name: libc-virtual-provides
Provides: libc.so.6(GLIBC_2.14)(64bit)
Provides: libc.so.6(GLIBC_2.15)(64bit)
Provides: libc.so.6(GLIBC_2.17)(64bit)
Version: 1.0
Release: 1
Summary: Virtual package providing libc 2.14, 2.15, 2.17
License: Public domain
%description
Virtual package providing libc 2.14, 2.15, 2.17
%prep
%files
%changelog
Чтобы создать виртуальный пакет из этого файла SPEC, сначала создайте несколько каталогов:
mkdir -p ~/rpmbuild/BUILD ~/rpmbuild/BUILDROOT ~/rpmbuild/RPMS ~/rpmbuild/SOURCES ~/rpmbuild/SPECS ~/rpmbuild/SRPMS
Затем скопируйте файл SPEC в ~/rpmbuild/SPECS и создайте RPM:
cp virtual-glibc-provides.spec ~/rpmbuild/SPECS
cd ~/rpmbuild/SPECS
rpmbuild -ba virtual-glibc-provides.spec
Вы получите такой результат:
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.6Jni5u
+ umask 022
+ cd /home/.../rpmbuild/BUILD
+ exit 0
Processing files: glib2.14-virtual-provides-2.14-1.x86_64
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/.../rpmbuild/BUILDROOT/glib2.14-virtual-provides-2.14-1.x86_64
Wrote: /home/.../rpmbuild/SRPMS/glib2.14-virtual-provides-2.14-1.src.rpm
Wrote: /home/.../rpmbuild/RPMS/x86_64/glib2.14-virtual-provides-2.14-1.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.YNj8gP
+ umask 022
+ cd /home/.../rpmbuild/BUILD
+ /bin/rm -rf /home/.../rpmbuild/BUILDROOT/glib2.14-virtual-provides-2.14-1.x86_64
+ exit 0
И у вас будет ваш RPM под /home/.../rpmbuild/RPMS/, который затем можно будет установить с помощью rpm -ivh ....rpm. После этого вы сможете без проблем установить другой пакет.