У меня есть более старый пакет, предоставленный поставщиком, который я пытаюсь установить на 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.
Надеюсь на помощь!