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

Как заставить RPM установить пакет и НЕ заменять конфликтующие файлы

У меня есть более старый пакет, предоставленный поставщиком, который я пытаюсь установить на CentOS 7. Он устанавливает вещи в / usr / lib, но есть конфликт с самим каталогом / usr / lib.

Каталог / usr / lib в установленном виде:

ls -ld /usr/lib
dr-xr-xr-x. 42 root root 4096 Jun 10 08:44 /usr/lib   

Каталог / usr / lib, как указано в пакете:

rpm -qlpv <package file>
drwxr-xr-x    2 root    root  0 Jun 22  2006 /usr/lib

Я мог бы использовать --replacefiles с rpm, чтобы продолжить, но на самом деле это НЕ ПРАВИЛЬНО. Вместо этого я бы хотел, чтобы rpm просто пропустил установку каталога / usr / lib (в конце концов, он уже там) и просто установил его содержимое.

Параметр --excludepath на самом деле ничего не делает (я все еще получаю сообщение об ошибке) и (согласно выходным данным -vv) все равно исключает большую часть пакета.

На данный момент в тестовой среде я могу использовать --replacefiles, но я чувствую, что должен быть какой-то «более правильный» способ справиться с этой ситуацией.

ПРИМЕЧАНИЕ. Получение обновленного пакета поставщика ЯВЛЯЕТСЯ в моем списке TODO, но не произойдет в течение некоторого времени, поэтому мне нужно лучшее краткосрочное решение.

Я бы предложил установить его в другой каталог с помощью rpm --prefix и вытащите то, что вам нужно. В качестве альтернативы вы можете извлечь его напрямую с помощью rpm2pcio package.rpm | cpio -idmv.

С помощью --prefix по крайней мере имеет преимущество выполнения любых сценариев после установки и т.д ... в RPM.

Надеюсь на помощь!