Исходный RPM, похоже, не устанавливается на CentOS без предупреждений.

Вопрос или проблема

Мой опыт работы с CentOS и RPM ограничен, так что я могу пропустить что-то очевидное, но я не могу разобраться в этом… Я пытаюсь установить Sphinx на CentOS 6 в образе Docker, следуя инструкциям здесь: http://sphinxsearch.com/docs/current/installing-redhat.html (хотя я пытаюсь установить из исходного RPM вместо бинарного)

Я запускаю docker run -i -t centos:centos6 bash, чтобы получить работающий образ CentOS, и вот что я получаю, когда пытаюсь выполнить команды (немного отличается от инструкций для предоставления большего количества информации и пропуска подсказок):

[root@db60006ae258 /]# yum -y install postgresql-libs unixODBC
Загруженные плагины: fastestmirror
Настройка процесса установки
base                                                                                                               | 3.7 kB     00:00     
base/primary_db                                                                                                    | 4.6 MB     00:37     
extras                                                                                                             | 3.4 kB     00:00     
extras/primary_db                                                                                                  |  34 kB     00:00     
updates                                                                                                            | 3.4 kB     00:00     
updates/primary_db                                                                                                 | 3.3 MB     00:08     
Определение зависимостей
--> Выполнение проверки транзакции
---> Установка пакета postgresql-libs.x86_64 0:8.4.20-4.el6_7 
---> Установка пакета unixODBC.x86_64 0:2.2.14-14.el6 
--> Обработка зависимости: libltdl.so.7()(64bit) для пакета: unixODBC-2.2.14-14.el6.x86_64
--> Выполнение проверки транзакции
---> Установка пакета libtool-ltdl.x86_64 0:2.2.6-15.5.el6 
--> Завершено разрешение зависимостей

Зависимости разрешены

==========================================================================================================================================
 Пакет                                Архитектура                  Версия                              Репозиторий                    Размер
==========================================================================================================================================
Установка:
 postgresql-libs                      x86_64                      8.4.20-4.el6_7                       updates                      202 k
 unixODBC                             x86_64                      2.2.14-14.el6                        base                         378 k
Установка для зависимостей:
 libtool-ltdl                         x86_64                      2.2.6-15.5.el6                       base                          44 k

Итог транзакции
==========================================================================================================================================
Установить       3 Пакет(ов)

Общий размер загрузки: 624 k
Установленный размер: 1.8 M
Загрузка пакетов:
(1/3): libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm                                                                      |  44 kB     00:00     
(2/3): postgresql-libs-8.4.20-4.el6_7.x86_64.rpm                                                                   | 202 kB     00:00     
(3/3): unixODBC-2.2.14-14.el6.x86_64.rpm                                                                           | 378 kB     00:01     
------------------------------------------------------------------------------------------------------------------------------------------
Всего                                                                                                     234 kB/s | 624 kB     00:02     
внимание: rpmts_HdrFromFdno: Подпись заголовка V3 RSA/SHA1, идентификатор ключа c105b9de: NOKEY
Получение ключа из file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Импорт GPG ключа 0xC105B9DE:
 Идентификатор пользователя : CentOS-6 Key (CentOS 6 Official Signing Key) <[email protected]>
 Пакет: centos-release-6-7.el6.centos.12.3.x86_64 (установлен)
 Из: /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Выполнение rpm_check_debug
Запуск теста транзакции
Тест транзакции выполнен успешно
Запуск транзакции
  Установка : libtool-ltdl-2.2.6-15.5.el6.x86_64                                                                                     1/3 
  Установка : unixODBC-2.2.14-14.el6.x86_64                                                                                          2/3 
  Установка : postgresql-libs-8.4.20-4.el6_7.x86_64                                                                                  3/3 
  Проверка   : postgresql-libs-8.4.20-4.el6_7.x86_64                                                                                  1/3 
  Проверка   : unixODBC-2.2.14-14.el6.x86_64                                                                                          2/3 
  Проверка   : libtool-ltdl-2.2.6-15.5.el6.x86_64                                                                                     3/3 

Установлено:
  postgresql-libs.x86_64 0:8.4.20-4.el6_7                                 unixODBC.x86_64 0:2.2.14-14.el6                                

Установлена зависимость:
  libtool-ltdl.x86_64 0:2.2.6-15.5.el6                                                                                                    

Готово!
[root@db60006ae258 /]# rpm -Uhvv http://sphinxsearch.com/files/sphinx-2.2.10-1.rhel6.src.rpm
Получение http://sphinxsearch.com/files/sphinx-2.2.10-1.rhel6.src.rpm
D: ============== /var/tmp/rpm-tmp.Knfx7x
D: загрузка ключей из pubkeys в /var/lib/rpm/pubkeys/*.key
D: не удалось найти никаких ключей в /var/lib/rpm/pubkeys/*.key
D: загрузка ключей из rpmdb
D: открытие окружения базы данных /var/lib/rpm cdb:mpool:joinenv
D: открытие индекса базы данных       /var/lib/rpm/Packages rdonly mode=0x0
D: заблокирован   индекс базы данных       /var/lib/rpm/Packages
D: открытие индекса базы данных       /var/lib/rpm/Name rdonly mode=0x0
D:  проверка h#     155 Санитарная проверка заголовка: ОК
D: добавлен ключ gpg-pubkey-c105b9de-4e0fd3a3 в кольцо ключей
D: Использование устаревших gpg-pubkey(ов) из rpmdb
D: Ожидаемый размер:      4201741 = lead(96)+sigs(180)+pad(4)+data(4201461)
D:   Фактический размер:      4201741
D: /var/tmp/rpm-tmp.Knfx7x: Заголовок SHA1 дайджест: ОК (f86024cbd050d0758ddb1aa0fc73c246deeb2f90)
D:  добавлен исходный пакет [0]
D: найден 1 исходный и 0 бинарных пакетов
D: Ожидаемый размер:      4201741 = lead(96)+sigs(180)+pad(4)+data(4201461)
D:   Фактический размер:      4201741
D: InstallSourcePackage at: psm.c:244: Заголовок SHA1 дайджест: ОК (f86024cbd050d0758ddb1aa0fc73c246deeb2f90)
D: создано директория(и) /root/rpmbuild с правами 0755
D: создано директория(и) /root/rpmbuild/SOURCES с правами 0755
D: создано директория(и) /root/rpmbuild/SPECS с правами 0755
   1:sphinx                 D: ========== Директории, которые не явно включены в пакет:
D:          0 /root/rpmbuild/SOURCES/
D:          1 /root/rpmbuild/SPECS/
D: ==========
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
D: завершено      100644  1 (   0,   0)       288 /root/rpmbuild/SOURCES/config.patch;56a3c57f неизвестно
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
D: завершено      100664  1 (   0,   0)    129584 /root/rpmbuild/SOURCES/libstemmer_c.tgz;56a3c57f неизвестно
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
D: завершено      100664  1 (   0,   0)   1064388 /root/rpmbuild/SOURCES/re2.tar.gz;56a3c57f неизвестно
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
########################################### [100%]
D: завершено      100644  1 (   0,   0)   3109250 /root/rpmbuild/SOURCES/sphinx-2.2.10-release.tar.gz;56a3c57f неизвестно
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
D: завершено      100644  1 (   0,   0)      2048 /root/rpmbuild/SOURCES/sphinx.init;56a3c57f неизвестно
внимание: пользователь builder не существует - используется root
внимание: группа builder не существует - используется root
D: завершено      100644  1 (   0,   0)      9647 /root/rpmbuild/SPECS/sphinx_rel22.spec;56a3c57f неизвестно
GZDIO:     527 чтений,  4316100 всего байт за 0.021979 сек
D: закрыт   индекс базы данных       /var/lib/rpm/Name
D: закрыт   индекс базы данных       /var/lib/rpm/Packages
D: закрыто   окружение базы данных /var/lib/rpm
[root@db60006ae258 /]# service searchd start
bash: service: команда не найдена
[root@db60006ae258 /]# find / -name "searchd*"
[root@db60006ae258 /]#

Исходный RPM (src.rpm) – это исходный пакет, собранный с использованием формата RPM. Вы можете использовать его для создания бинарного пакета для вашей машины или использовать как отправную точку для пользовательских версий. Исходные RPM достаточно портативны по сравнению с бинарными, но если у вас нет соответствующих навыков, я бы не рекомендовал идти по этому пути.

Проверьте страницы CentOS, убедитесь, есть ли доступные бинарные пакеты для вашей системы, либо как официальный пакет, либо в одном из проверенных сторонних репозиториев. Будьте осторожны, некоторые более подозрительные сторонние репозитории могут перезаписывать основные пакеты и могут сломать вашу систему (или сделать обновление трудным).

Ответ или решение

Когда вы пытаетесь установить исходный RPM (source RPM) на CentOS 6, возможно возникновение различных предупреждений и ошибок, особенно если у вас ограниченный опыт работы с данной системой и RPM. Рассмотрим подробно шаги, которые вы предприняли, а также основные проблемы и рекомендации для их решения.

Проблемы, которые вы столкнулись

  1. Предупреждения о пользователе и группе builder: Вы получили несколько предупреждений, таких как:

    warning: user builder does not exist - using root
    warning: group builder does not exist - using root

    Эти предупреждения означают, что RPM-пакет, который вы пытаетесь установить, ожидает наличие пользователя и группы с именем "builder", но они не были созданы в вашей среде. По умолчанию RPM использует пользователя root, что может не позволить корректно установить или собрать пакет с необходимыми настройками.

  2. Отсутствие команды service: Ошибка bash: service: command not found указывает на то, что команда service недоступна в вашей среде, возможно, из-за того, что вы находитесь в контейнере Docker без установленных необходимых пакетов управления сервисами.

  3. Проблемы с зависимостями и установкой: Хотя зависимости (postgresql-libs и unixODBC) были успешно установлены, вам нужно будет убедиться, что другие необходимые зависимости для сборки Sphinx также установлены.

Рекомендации по решению проблем

  1. Создание пользователя и группы builder:

    • Вы можете создать пользователя и группу с помощью следующих команд:
      groupadd builder
      useradd -g builder builder
    • Это позволит избежать предупреждений, связанных с отсутствием этих учетных записей.
  2. Установка необходимых пакетов для сборки:

    • Убедитесь, что у вас установлены все зависимости, необходимые для сборки RPM. Обычно для этого требуется установить rpm-build, gcc, make и другие инструменты для разработки:
      yum install -y rpm-build gcc make
  3. Использование Docker для установки сервисов:

    • Если вы не можете использовать команду service, вы можете непосредственно запускать службы с помощью команд, например, для запуска Sphinx вы можете использовать:
      nohup searchd &
    • Убедитесь, что директория для хранения данных и конфигурация Sphinx настроены правильно.
  4. Работа с исходным RPM:

    • После установки всех необходимых зависимостей вы можете собрать бинарный RPM из исходного RPM, используя следующие команды:
      rpmbuild --rebuild sphinx-2.2.10-1.rhel6.src.rpm
    • После успешной сборки бинарный RPM будет находиться в каталоге ~/rpmbuild/RPMS/x86_64/.
  5. Поиск бинарных пакетов:

    • Если вы не уверены, стоит ли пытаться собирать из исходников, проверьте наличие бинарных пакетов в официальных репозиториях или в проверенных сторонних репозиториях (например, EPEL), которые могут существенно упростить процесс установки.

Заключение

Работа с RPM и CentOS может быть непростой задачей для новичков, но с пониманием основ и шагов, описанных выше, вы сможете успешно преодолеть возникшие препятствия. Убедитесь, что вы внимательно отслеживаете все зависимости и уделяйте внимание создаваемым пользователям и группам на вашем сервере. Это поможет избежать множества проблем в будущем и упростит управление пакетами и сервисами в вашей системе.

Оцените материал
Добавить комментарий

Капча загружается...