Cum se instaleaza Remi RPM pe Rocky Linux 10, 9 si 8?

Configurare noua (How To)

Situatie

Rocky Linux mentine pachetele de web-stack conservative, ceea ce este exact ce au nevoie multe servere pana cand o aplicatie solicita o ramura PHP mai noua, un server Redis curent sau extensii de cache care corespund unui stream PHP mai nou. Pentru a instala repository-ul Remi RPM pe Rocky Linux, adaugati EPEL plus repository-ul de dependente CRB sau PowerTools corespunzator, apoi instalati pachetul de lansare Remi pentru versiunea majora a Rocky Linux 10, 9 sau 8.

Repository-ul Remi este deosebit de util pentru module streams PHP 8.5, 8.4 si 8.3, inclusiv pachete de extensii precum php-pecl-redis6. Stream-urile mai vechi exista in continuare pentru migrari, dar suportul upstream PHP a incetat pentru mai multe dintre ele, deci mentineti ramurile legacy temporar, cu exceptia cazului in care furnizorul aplicatiei le impune.

Solutie

Pasi de urmat

Instalarea repository-ului Remi RPM pe Rocky Linux

Actualizarea Rocky Linux inainte de adaugarea Remi RPM

Reimprospatati metadatele pachetelor si aplicati actualizarile disponibile inainte de a adauga un repository third-party:

sudo dnf upgrade --refresh

Comenzile care incep cu sudo necesita un cont de administrator. DNF afiseaza tranzactia de pachete inainte de a modifica sistemul, deci revizuiti lista de actualizari inainte de a confirma.

Alegerea pachetului Remi RPM pentru Rocky Linux

Remi publica RPM-uri stabile de lansare pentru versiuni majore in directorul sau de repository Enterprise Linux, deci folositi permalink-ul remi-release-10.rpm, remi-release-9.rpm sau remi-release-8.rpm in loc sa codificati un fisier de lansare minora precum remi-release-9.7.rpm. Permalink-ul urmareste cel mai recent pachet Remi suportat pentru acea ramura Enterprise Linux.

Versiune Rocky Linux Repository dependente Sursa EPEL RPM lansare Remi
Rocky Linux 10 crb Rocky Extras remi-release-10.rpm
Rocky Linux 9 crb Rocky Extras remi-release-9.rpm
Rocky Linux 8 powertools Rocky Extras remi-release-8.rpm

Instalarea automata a EPEL si Remi RPM

Folositi detectia de versiune pentru a activa repository-ul de dependente corect, a instala EPEL din Rocky Extras si a adauga RPM-ul de lansare Remi corespunzator:

source /etc/os-release
rocky_major="${VERSION_ID%%.*}"

case "$rocky_major" in
  10 | 9)
    dependency_repo=crb
    ;;
  8)
    dependency_repo=powertools
    ;;
  *)
    dependency_repo=
    echo "Versiune Rocky Linux nesuportata: $VERSION_ID"
    ;;
esac

if [[ -n "$dependency_repo" ]]; then
  sudo dnf install -y dnf-plugins-core
  sudo dnf config-manager --set-enabled "$dependency_repo"
  sudo dnf install -y epel-release
  sudo dnf install -y "https://rpms.remirepo.net/enterprise/remi-release-${rocky_major}.rpm"
fi

Pachetul dnf-plugins-core furnizeaza dnf config-manager, care activeaza CRB sau PowerTools. EPEL este necesar deoarece unele pachete Remi depind de biblioteci din afara repository-urilor de baza Rocky.

Verificarea repository-ului Remi RPM pe Rocky Linux

Confirmati ca pachetul de lansare Remi este instalat si ca repository-urile Remi obisnuite sunt activate:

rpm -q remi-release
dnf repolist --enabled | grep -E '^remi-(modular|safe)[[:space:]]'

Output relevant pe Rocky Linux 10:

remi-release-10.1-3.el10.remi.noarch

remi-modular     Remi's Modular repository for Enterprise Linux 10 - x86_64
remi-safe        Safe Remi's RPM repository for Enterprise Linux 10 - x86_64

Inspectati fisierele de repository si fisierul de cheie de semnare specific ramurii instalat de remi-release:

source /etc/os-release
rocky_major="${VERSION_ID%%.*}"
rpm -ql remi-release | grep -E "/(RPM-GPG-KEY-remi\.el${rocky_major}|remi-(modular|safe)\.repo)$"

Output relevant pe Rocky Linux 10:

/etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el10
/etc/yum.repos.d/remi-modular.repo
/etc/yum.repos.d/remi-safe.repo

Versiunea exacta a pachetului Remi se schimba pe masura ce lansarile minore Rocky avanseaza, dar repository-urile activate trebuie sa includa remi-modular si remi-safe. Remi publica amprentele cheilor de semnare in fisierul sau KEYS.txt, util cand DNF solicita importarea unei chei Remi la prima tranzactie de pachet semnat.

Activarea modulelor PHP Remi pe Rocky Linux

Listarea stream-urilor PHP disponibile din Remi

Listati module streams PHP dupa ce repository-ul Remi RPM este activat:

dnf module list php

Output relevant pe Rocky Linux 10:

WARNING: modularity is deprecated, and functionality will be removed in a future release of DNF5.
Remi's Modular repository for Enterprise Linux 10 - x86_64
Name Stream   Profiles                   Summary
php  remi-7.4 common [d], devel, minimal PHP scripting language
php  remi-8.0 common [d], devel, minimal PHP scripting language
php  remi-8.1 common [d], devel, minimal PHP scripting language
php  remi-8.2 common [d], devel, minimal PHP scripting language
php  remi-8.3 common [d], devel, minimal PHP scripting language
php  remi-8.4 common [d], devel, minimal PHP scripting language
php  remi-8.5 common [d], devel, minimal PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Alegerea unei versiuni PHP Remi

Folositi o ramura PHP care corespunde matricei de suport a aplicatiei. Remi expune stream-uri mai vechi pentru migrare, dar noile implementari trebuie sa ramana pe o ramura pe care upstream PHP o suporta inca.

Ramura PHP Stream Remi Status suport Potrivit pentru
PHP 8.5 php:remi-8.5 Suport activ pana pe 31 dec 2027; suport securitate pana pe 31 dec 2029 Proiecte noi care pot tinti cea mai noua ramura PHP stabila
PHP 8.4 php:remi-8.4 Suport activ pana pe 31 dec 2026; suport securitate pana pe 31 dec 2028 Workload-uri de productie care necesita o ramura curenta cu compatibilitate extinsa de extensii
PHP 8.3 php:remi-8.3 Suport securitate pana pe 31 dec 2027 Aplicatii fixate pe PHP 8.3 sau framework-uri care nu au migrat la ramuri mai noi
PHP 8.2 php:remi-8.2 Suport securitate pana pe 31 dec 2026 Lucrari de compatibilitate pe termen scurt in timp ce planificati un upgrade

Activarea PHP 8.5 din Remi RPM

Resetati orice stream PHP anterior inainte de a activa PHP 8.5 din Remi:

sudo dnf module reset php -y
sudo dnf module enable php:remi-8.5 -y

Pentru alta ramura intretinuta, inlocuiti remi-8.5 cu remi-8.4, remi-8.3 sau remi-8.2. Activati un singur module stream PHP odata.

Verificati marcajul enabled de langa stream-ul selectat:

dnf module list php | grep 'remi-8.5'
Output relevant:
php remi-8.5 [e] common [d], devel, minimal PHP scripting language

Instalarea PHP si PHP-FPM din Remi
Instalati pachetul PHP de baza, instrumentele de linie de comanda si serviciul PHP-FPM din stream-ul Remi activat:

sudo dnf install -y php php-cli php-fpm

Verificati ramura PHP instalata:

php --version

Exemplu de output pentru PHP 8.5 pe Rocky Linux 10:

PHP 8.5.6 (cli) (built: May 5 2026 21:19:36) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine
Zend Engine v4.5.6, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.6, Copyright (c), by Zend Technologies

Daca stiva web foloseste PHP-FPM, activati si porniti serviciul:

sudo systemctl enable --now php-fpm

Confirmati ca serviciul este activ:

systemctl is-active php-fpm
active

Instalarea extensiilor PHP Redis sau Memcached din Remi
Pentru stream-urile PHP Remi, instalati extensia PHP ca php-pecl-redis6, nu php-redis:

sudo dnf install -y php-pecl-redis6
php -m | grep -i '^redis$'
redis

Daca aplicatia foloseste Memcached prin PHP, instalati extensia PECL corespunzatoare:

sudo dnf install -y php-pecl-memcached
php -m | grep -i '^memcached$'

Utilizarea stream-urilor Redis si Memcached din Remi RPM

Instalarea serverului Redis din Remi

Remi furnizeaza module streams Redis pentru Rocky Linux 8, 9 si 10. Verificati mai intai stream-urile disponibile:

dnf module list redis

Rocky Linux 10 expune in prezent stream-urile Redis 7.2, 8.0, 8.2, 8.4 si 8.6 prin Remi. Activati stream-ul pe care il suporta aplicatia; acest set de comenzi foloseste Redis 8.6.

Pe Rocky Linux 10, verificati pachetul Valkey implicit inainte de a-l inlocui cu Redis din Remi:

rpm -q valkey >/dev/null 2>&1 && echo "Valkey este instalat" || echo "Valkey nu este instalat"

sudo dnf module reset redis -y

sudo dnf module enable redis:remi-8.6 -y
sudo dnf install -y redis

Verificati versiunea clientului Redis:

redis-cli --version

Sirul de versiune trebuie sa inceapa cu redis-cli 8.6 cand ati selectat stream-ul Redis 8.6. Porniti serviciul cand acest host va rula Redis local:

sudo systemctl enable --now redis

systemctl is-active redis
active

Instalarea serverului Memcached din Remi

Remi expune un module stream Memcached pe Rocky Linux 10 si 9. Metadatele Remi curente pentru Rocky Linux 8 nu expun un modul Memcached, deci pastrati pachetul Rocky implicit acolo cu exceptia cazului in care aveti o cerinta separata de sursa de pachete.

dnf module list memcached

Pe Rocky Linux 10 sau 9, activati stream-ul Remi si instalati Memcached:

sudo dnf module reset memcached -y

sudo dnf module enable memcached:remi -y
sudo dnf install -y memcached

Verificati versiunea instalata:

memcached -h | head -n 1

Output-ul trebuie sa inceapa cu memcached urmat de versiunea instalata. Porniti serviciul cand acest host va rula Memcached local:

sudo systemctl enable --now memcached
systemctl is-active memcached
active

Actualizarea sau eliminarea repository-ului Remi RPM

Actualizarea pachetelor din Remi

Pachetele Remi se actualizeaza prin tranzactii DNF obisnuite alaturi de restul sistemului:

sudo dnf upgrade --refresh

DNF va afisa daca pachetele provin din remi-modular sau remi-safe inainte de a confirma tranzactia.

Eliminarea pachetelor si module stream-urilor Remi

Eliminati doar pachetele instalate din Remi. Acest helper verifica pachetele PHP, Redis si Memcached folosite anterior, apoi elimina doar pachetele corespunzatoare instalate curent:

remi_examples=(php php-cli php-fpm php-common php-pecl-redis6 php-pecl-memcached redis memcached)
installed_packages=()

for package in "${remi_examples[@]}"; do
  if rpm -q "$package" >/dev/null 2>&1; then
    installed_packages+=("$package")
  fi
done

if ((${#installed_packages[@]})); then
  sudo dnf remove "${installed_packages[@]}"
else
  echo "Nu sunt instalate pachete Remi de exemplu"
fi

Resetati orice module stream Remi pe care l-ati activat:

sudo dnf module reset php -y
sudo dnf module reset redis -y

Daca ati activat modulul Memcached pe Rocky Linux 10 sau 9, resetati-l si pe acela:

sudo dnf module reset memcached -y

Dupa eliminarea pachetelor, rulati pasul de curatare DNF interactiv daca doriti sa revizuiti dependentele neutilizate:

sudo dnf autoremove

Eliminarea pachetului de repository Remi

Eliminati pachetul de configurare a repository-ului dupa ce pachetele si module stream-urile Remi au fost curatate:

sudo dnf remove remi-release

Verificati ca nu mai ramane niciun repository Remi activat:

dnf repolist --enabled | grep -E '^remi-' || echo "Repository-urile Remi nu sunt activate"
Remi repositories are not enabled

Confirmati si ca fisierele de repository au fost eliminate:

find /etc/yum.repos.d -maxdepth 1 -name 'remi*.repo' -print | grep . || echo "Fisierele repository Remi au fost eliminate"
Remi repository files are remove

Daca ati instalat pachete semnate din Remi, DNF poate lasa cheia de semnare RPM Remi importata in baza de date RPM. Verificati dupa eliminarea pachetelor Remi:

rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE} %{SUMMARY}\n' | grep -i "Remi's RPM repository" || echo "Cheia RPM Remi nu este importata"

Daca o cheie Remi ramane si doriti o curatare completa a increderii, eliminati numele exact al pachetului gpg-pubkey-... afisat de acea comanda. Nu stergeti cheile RPM dupa un tipar larg deoarece alte repository-uri pot folosi chei diferite in aceeasi baza de date RPM.

Depanare probleme repository Remi RPM

Repository-ul Remi nu apare in lista

Daca DNF nu gaseste stream-urile Remi, confirmati mai intai pachetul de lansare si repository-urile activate:

rpm -q remi-release
dnf repolist --enabled | grep -E '^remi-(modular|safe)[[:space:]]'

Daca remi-release lipseste, reexecutati blocul de instalare cu detectie de versiune care instaleaza remi-release-${rocky_major}.rpm. Daca pachetul exista dar repository-urile sunt dezactivate, reactivati-le:

sudo dnf config-manager --set-enabled remi-safe
sudo dnf config-manager --set-enabled remi-modular

CRB sau PowerTools nu este activat

Erorile de dependente lipsa indica deseori ca CRB sau PowerTools este dezactivat. Verificati lista de repository-uri activate:

dnf repolist --enabled | grep -E '^(crb|powertools)[[:space:]]'

Activati repository-ul care corespunde versiunii Rocky Linux:

sudo dnf config-manager --set-enabled crb # Rocky Linux 10 sau 9
sudo dnf config-manager --set-enabled powertools # Rocky Linux 8

Activarea modulului PHP esueaza deoarece alt stream este activ

DNF blocheaza comutarea stream-urilor de modul cand alt stream PHP este deja activat. Eroarea poate arata astfel:

It is not possible to switch enabled streams of a module unless explicitly enabled via configuration option module_stream_switch.

Verificati stream-ul activ:

dnf module list php | grep '\[e\]'

Daca nu aveti nevoie de pachetele PHP existente, eliminati-le, resetati stream-ul si activati ramura Remi dorita:

sudo dnf remove php php-cli php-fpm php-common
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.5 -y

DNF nu gaseste php-redis

Pachetul extensie PHP Redis din Remi se numeste php-pecl-redis6. Instalati-l dupa activarea module stream-ului PHP corespunzator:

sudo dnf install -y php-pecl-redis6
php -m | grep -i '^redis$'
redis

Tip solutie

Permanent

Voteaza

(42 din 79 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?