<===

ProNotes

2026-01-16 17:52:42
Для RHEL 8 логика та же, только вместо `dpkg/apt` используем `dnf`/`rpm`. [linuxconfig](https://linuxconfig.org/how-to-list-installed-packages-on-redhat-8)

## 1. Скрипт на старой машине (RHEL 8)

`export-php-packages.sh`:

```bash
#!/usr/bin/env bash
set -e

OUT_FILE="php-packages.txt"

echo "Собираю список установленных PHP-пакетов в $OUT_FILE"

# Вариант через dnf (предпочтителен на RHEL8)
dnf list installed | awk '/php/ {print $1}' | sort -u > "$OUT_FILE"

# Если dnf вдруг недоступен, можно так (раскомментировать при необходимости):
# rpm -qa 'php*' | sort -u > "$OUT_FILE"

echo "Готово. Скопируйте $OUT_FILE на новую машину."
```

`dnf list installed | grep php`/`awk '/php/ {print $1}'` — стандартный способ увидеть все установленные пакеты, содержащие `php` в имени на RHEL 8.  [linuxconfig](https://linuxconfig.org/how-to-list-installed-packages-on-redhat-8)

## 2. Скрипт на новой машине (RHEL 8)

`install-php-packages.sh`:

```bash
#!/usr/bin/env bash
set -e

IN_FILE="php-packages.txt"

if [ ! -f "$IN_FILE" ]; then
  echo "Файл $IN_FILE не найден"
  exit 1
fi

sudo dnf makecache

# Устанавливаем те же пакеты, пропуская отсутствующие
xargs -a "$IN_FILE" -r sudo dnf install -y
```

`dnf install` в RHEL 8 является основным пакетным менеджером, и через `xargs` можно массово ставить пакеты из файла. [linode](https://www.linode.com/docs/guides/dnf-package-manager/)

## 3. Контроль модулей PHP

На обеих машинах можно сохранить список реально загруженных модулей PHP:

```bash
php -m | sort > php-modules.txt
```

Списки `php-modules.txt` удобно сравнить `diff`/`vimdiff`, чтобы убедиться, что окружения совпадают. [stackoverflow](https://stackoverflow.com/questions/14774700/how-to-find-the-version-numbers-of-built-in-modules-in-php-from-the-cli)
← Previous Next →
Back to list