У меня есть набор файлов об/мин в каталоге, где все файлы об/мин извлечены как/usr/.. Я хотел бы извлечь все файлы об/мин и перезаписать существующие файлы.
Я обычно делаю это с роликом файла-f *.rpm, который поднимает GUI, чтобы попросить, чтобы местоположение извлекло и затем выполнение его работы. Поскольку ролик файла отказывает на 14,04 (в прошлый раз, когда я сделал это было на 12,04), я ищу другой способ сделать эту работу
Если я использую ролик файла GUI (выбирающий все файлы об/мин в наутилусе) и говорю, что извлечение здесь это приведет к наличию нескольких папок usr, usr (1), usr (2)... usr (102).
Есть ли какое-либо приложение, или иначе я могу использовать?
Самый легкий способ извлечь содержание RPM-пакетов состоит в том, чтобы объединить команды cpio и rpm2cpio. Это уступает командной строке дорогу для распаковки об/мин в текущем каталоге для достигания содержания пакета, игнорируя метаданные и зависимости пакета.
Например, для распаковки всего RPMs в текущем каталоге использовать
for rpm in *.rpm; do rpm2cpio $rpm | cpio -idm; done
Это извлечет содержание к текущему каталогу также, и все файлы будут принадлежать текущему пользователю, во многом как извлечение tarball как обычный пользователь.
Команда cpio может только извлечь файлы к текущему каталогу, таким образом, файлы будут всегда извлекаться в каталоге, куда cpio выполняется. Для помещения содержания в другой каталог Вы могли использовать также
for rpm in *.rpm; do rpm2cpio $rpm | ( cd /path/to/dir && cpio -idm ); done
или
for rpm in /path/to/packages/*.rpm; do rpm2cpio $rpm | cpio -idm; done