Вопрос или проблема
Я скачал исходный файл rmp src.rpm для audacity. Когда я запускаю [root@09PC148B Downloads]# rpmbuild --rebuild audacity-2.1.0-2.fc23.src.rpm
, я получаю следующий ответ:
flac-devel требуется для audacity-2.1.0-2.el6.i686
jack-audio-connection-kit-devel требуется для audacity-2.1.0-2.el6.i686
ladspa-devel требуется для audacity-2.1.0-2.el6.i686
libid3tag-devel требуется для audacity-2.1.0-2.el6.i686
taglib-devel требуется для audacity-2.1.0-2.el6.i686
libogg-devel требуется для audacity-2.1.0-2.el6.i686
libsndfile-devel требуется для audacity-2.1.0-2.el6.i686
libvorbis-devel требуется для audacity-2.1.0-2.el6.i686
portaudio-devel >= 19-16 требуется для audacity-2.1.0-2.el6.i686
soundtouch-devel требуется для audacity-2.1.0-2.el6.i686
soxr-devel требуется для audacity-2.1.0-2.el6.i686
vamp-plugin-sdk-devel >= 2.0 требуется для audacity-2.1.0-2.el6.i686
wxGTK-devel требуется для audacity-2.1.0-2.el6.i686
libappstream-glib требуется для audacity-2.1.0-2.el6.i686
Когда я запускаю эту команду:
[root@09PC148B Downloads]# rpm -ivv audacity-2.1.0-2.fc23.src.rpm
моя реакция такова:
D: ============== audacity-2.1.0-2.fc23.src.rpm
D: загрузка ключей из pubkeys в /var/lib/rpm/pubkeys/*.key
D: не удалось найти ключи в /var/lib/rpm/pubkeys/*.key
D: загрузка ключей из rpmdb
D: открытие окружения db /var/lib/rpm cdb:mpool:joinenv
D: открытие индекса db /var/lib/rpm/Packages в режиме rdonly mode=0x0
D: заблокирован индекс db /var/lib/rpm/Packages
D: открытие индекса db /var/lib/rpm/Name в режиме rdonly mode=0x0
D: прочитано h# 1438 Проверка корректности заголовка: OK
D: добавлен ключ gpg-pubkey-6b8d79e6-3f49313d в связку ключей
D: Используются устаревшие gpg-публичные ключи из rpmdb
D: Ожидаемый размер: 24389466 = lead(96)+sigs(4292)+pad(4)+data(24385074)
D: Фактический размер: 24389466
D: audacity-2.1.0-2.fc23.src.rpm: SHA1-хеш заголовка: OK (6b5705fc00764be7bc14578e1976d33d86ac2a3d)
D: добавлен исходный пакет [0]
D: найдено 1 исходный и 0 бинарных пакетов
D: Ожидаемый размер: 24389466 = lead(96)+sigs(4292)+pad(4)+data(24385074)
D: Фактический размер: 24389466
D: InstallSourcePackage на: psm.c:244: SHA1-хеш заголовка: OK (6b5705fc00764be7bc14578e1976d33d86ac2a3d)
audacity-2.1.0-2.fc23
D: ========== Каталоги, не включенные в пакет явно:
D: 0 /root/rpmbuild/SOURCES/
D: 1 /root/rpmbuild/SPECS/
D: ==========
D: завершено 100664 1 (501, 501) 19390331 /root/rpmbuild/SOURCES/audacity-manual-2.1.0.zip;55486cb6 неизвестно
D: завершено 100664 1 (501, 501) 5104924 /root/rpmbuild/SOURCES/audacity-minsrc-2.1.0.tar.xz;55486cb6 неизвестно
D: завершено 100644 1 (501, 501) 23062 /root/rpmbuild/SPECS/audacity.spec;55486cb6 неизвестно
GZDIO: 2994 чтения, 24518844 всего байт за 0.074680 сек
D: закрыт индекс db /var/lib/rpm/Name
D: закрыт индекс db /var/lib/rpm/Packages
D: закрыто окружение db /var/lib/rpm
в чем ошибка
Вам нужно установить пакеты-зависимости до сборки требуемого
Попробуйте использовать
yum install <package>
это решит проблему с зависимостями
Ответ или решение
Теория
Установка пакетов из исходных RPM (.src.rpm) на Linux системах—задача, которая может потребовать определенной подготовки и понимания процесса. Исходные RPM пакеты содержат исходный код и скрипты сборки, которые после сборки позволяют создать бинарный RPM пакет, готовый к установке. Процесс установки .src.rpm пакета включает в себя несколько ключевых шагов: установка необходимых инструментов для сборки, установка зависимостей, сборка бинарного пакета и его последующая установка. Ниже я расскажу, как выполнить этот процесс на примере Audacity, основываясь на предоставленной вами информации.
Пример
-
Предварительная установка инструментов: Прежде чем начать работу с .src.rpm файлом, вам необходимо убедиться, что ваш дистрибутив имеет все необходимые инструменты для сборки ПО из исходников. Как правило, минимальный набор инструментов включает в себя
rpm-build
,gcc
, и дополнительные утилиты, необходимые для конфигурации и компиляции аудиопакетов. Для установки используйте команду:yum install rpm-build gcc
-
Установка зависимостей: В вашем случае система сигнализирует о нехватке ряда библиотек, которые являются обязательными для сборки Audacity. Они перечислены как
flac-devel
,jack-audio-connection-kit-devel
, и так далее. Эти библиотеки обычно инсталлируются через yum:yum install flac-devel jack-audio-connection-kit-devel ladspa-devel libid3tag-devel taglib-devel libogg-devel libsndfile-devel libvorbis-devel portaudio-devel soundtouch-devel soxr-devel vamp-plugin-sdk-devel wxGTK-devel libappstream-glib
Убедитесь, что все зависимости установлены, так как без них сборка пакета завершится с ошибкой.
-
Сборка пакета: Используя
rpmbuild
, вы можете попробовать пересобрать пакет:rpmbuild --rebuild audacity-2.1.0-2.fc23.src.rpm
Процедура
rpmbuild
создаст директории для источников и спецификаций, а затем попытается собрать бинарный пакет на основе предоставленных скриптов и исходного кода. -
Установка бинарного .rpm пакета: Если сборка прошла успешно, в директории
~/rpmbuild/RPMS/
появится бинарный RPM файл. Вы можете установить его с помощью следующей команды:rpm -Uvh ~/rpmbuild/RPMS/i686/audacity-2.1.0-2.el6.i686.rpm
Или же вы можете использовать
yum localinstall
, которая автоматически учитывает еще неизведанные зависимости:yum localinstall ~/rpmbuild/RPMS/i686/audacity-2.1.0-2.el6.i686.rpm
Применение
Применяя вышеописанную процедуру, вы сможете установить Audacity из исходного пакета на вашей системе. Это полезно в случае, если вам необходимо адаптировать пакет под специфические требования (например, патчи или изменения в конфигурации), или если бинарные пакеты недоступны. Однако стоит отметить, что выполнение сборки ПО из исходников может потребовать времени и знаний программирования, особого внимания к версиям библиотек и совместимости.
Работая с .src.rpm, всегда важно следить за версией дистрибутива и использовать соответствующие репозитории для получения зависимостей, так как соответствие версий библиотек и программного обеспечения критически важно для успешной сборки и стабильной работы программы. В этом отношении лучшей практикой является периодическое обновление системы и использование современных источников пакетов.
Для дополнительной информации рекомендуется ознакомление с документацией по работе с RPM, а также поддержку, предоставляемую вашим Linux-дистрибутивом. Знание процессов работы с исходниками также может помочь вам вносить более сложные изменения и оптимизации в устанавливаемое ПО, что особенно актуально в профессиональной и производственной среде, где стабильность и производительность процессов имеют приоритетное значение.