Назад | Перейти на главную страницу

Можно ли копировать файлы, установленные с помощью rpm, в другое место?

У меня есть сценарий, который я использую для установки некоторых rpms в образе докера, который показан ниже.

yumdownloader common-jars-${RELEASE_VERSION} \
              test-jars-${RELEASE_VERSION} \
rpm -ivh --force --nodeps --prefix /usr/local/integrations *rpm && \
rm -rf *.rpm && \
rm -rf /var/lib/yum/yumdb

Это приводит к тому, что содержимое каждого файла rpm загружается в /usr/local/integrations.

Есть ли проблемы с последующим копированием содержимого /usr/local/integrations в другой каталог и использовать их там? Меня беспокоит, что, возможно, rpm -i команда будет делать некоторые вещи под прикрытием, которые обычный cp не стал бы учитывать.

Я не могу изменить сценарий прямо сейчас, так как он является частью процесса развертывания, который существует очень давно. Я просто хочу понять, cp или mv из этих файлов по-прежнему позволяют им работать правильно.

Это сводит на нет большинство преимуществ использования пакетов.

  • Исправьте пакет, чтобы файлы располагались там, где вы хотите. Таким образом, если вы используете rpm для проверки файлов, он будет проверять контрольную сумму используемых файлов.
  • Устанавливайте только с помощью yum. Это безопаснее по нескольким причинам, включая установку зависимостей.
  • Не удаляйте yumdb или rpmdb. Может быть, вы хотите уменьшить размер контейнера, но я не вижу смысла удалять списки пакетов.
  • Не используйте --nodeps. Либо это законные зависимости, и вы сломаете свою систему, либо они ничего не сделают для вас, и было бы лучше пересобрать пакет без них.

Один из побочных эффектов заключается в том, что вы не сможете переместить упаковщик, изменив префикс во время установки, а только во время сборки пакета. Очень немногие дистрибутивы или пакеты используют эту функцию, поэтому я не думаю, что вы сильно теряете.