<===
2025-10-29 07:21:14
разархивирует указанный `.rpm`-пакет в директорию с **таким же именем, как у пакета (без расширения `.rpm`)**.
```bash
#!/bin/bash
# Проверка аргументов
if [ $# -ne 1 ]; then
echo "Использование: $0 <package.rpm>"
exit 1
fi
RPM_FILE="$1"
# Проверка существования файла
if [ ! -f "$RPM_FILE" ]; then
echo "Ошибка: файл '$RPM_FILE' не найден."
exit 1
fi
# Получаем имя пакета без пути и расширения
BASENAME=$(basename "$RPM_FILE" .rpm)
# Создаём директорию
mkdir -p "$BASENAME"
# Извлекаем содержимое rpm в эту директорию
rpm2cpio "$RPM_FILE" | cpio -idmv -D "$BASENAME"
# Проверяем успешность
if [ $? -eq 0 ]; then
echo "Пакет '$RPM_FILE' успешно разархивирован в директорию '$BASENAME/'"
else
echo "Ошибка при разархивировании."
exit 1
fi
```
---
### Как использовать:
1. Сохрани скрипт, например, как `extract_rpm.sh`
2. Сделай его исполняемым:
```bash
chmod +x extract_rpm.sh
```
3. Запусти:
```bash
./extract_rpm.sh package.rpm
```
> Результат: всё содержимое `.rpm` будет в папке `package/`
---
### Зависимости
Убедись, что установлены:
```bash
rpm2cpio # обычно есть в rpm
cpio # обычно установлен
```
На большинстве систем они есть по умолчанию.
---
### Пример:
```bash
./extract_rpm.sh vim-enhanced-8.2.1234.el9.x86_64.rpm
```
→ Создастся папка `vim-enhanced-8.2.1234.el9.x86_64` с содержимым пакета.