<===

ProNotes

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` с содержимым пакета.
← Previous Next →
Back to list