Вопрос или проблема
Мне нужно установить php-gd на CentOS 7. У меня очень ограниченные репозитории в моей сети. Я не могу получить прямое соединение с Интернетом с сервером Linux.
Я попробовал установить php56w-gd-5.6.19.1.w7.x86_64.rpm
. Но он требует php56w-common-5.6.19.1.w6.x86_64.rpm
, который зависит от libgmp.so.3
. Я получаю ошибку, что этот .so.3
файл необходим. Я не могу найти этот so.3
файл на сервере Linux. Так что сообщение об ошибке правильное. gmp.x86_64
установлен. Yum list gmp показывает это.
Я попробовал установить эти пакеты: gmp-4.3.1-7.el6_2.2.i686.rpm
и gmp-4.3.1-7.el6_2.2.x86_64.rpm
. Я попробовал другой способ установки php-gd. Я использовал rh-php56-php-gd-5.6.5-7.el7.x86_64
. Но я получил сообщение о том, что он не обновляет установленный пакет.
Я попробовал yum clean all
. Но когда я повторил свои попытки установки .rpm пакетов, я получил те же проблемы. Затем я попробовал еще два пакета gmp: gmp-4.1.4-10.el5.x86_64.rpm
и gmp.4.1.4-12.3_2.el5.x86_64.rpm
. Ни один из них не установился. С gmplib.org
я скачал .tar.gz файл для установки gmp 6.1
. Установка прошла успешно. Но он не смог создать файл libgmp.so.3
.
yum list gmp
показывает, что gmp 6.0 установлен. Какой пакет удовлетворит мою необходимость в файле libgmp.so.3
? Есть ли другой способ установить php56w-common-5.6.19-1.w6.x86_64.rpm
или php56w-gd-5.6.19.1.w7.x86_64.rpm
? Мне нужно установить php-gd
с версией 5.6 (не ниже).
Обновление: rh-php56-php-gmp.x86_64 успешно установлен.
yum предоставляет */libgmp.so.3
выведет все пакеты, содержащие этот файл.
Ответ или решение
Чтобы установить пакет php-gd на CentOS 7, когда на вашем сервере ограниченные репозитории и нет доступа к интернету, необходимо выполнить несколько ключевых шагов. Давайте разберем процесс поэтапно, учитывая проблемы, с которыми вы столкнулись, и предлагая возможные решения.
Этап 1: Определение зависимости libgmp.so.3
Первым делом нужно понять, что проблема с установкой пакетов php56w-gd
и php56w-common
связана с отсутствием библиотеки libgmp.so.3
. Ваша команда yum provides */libgmp.so.3
поможет обнаружить, какой пакет эту зависимость содержит. На CentOS 7 библиотека libgmp.so.3
относится к более ранним версиям gmp.
Этап 2: Установка пакета gmp, содержащего libgmp.so.3
Чтобы решить вашу проблему, попробуйте установить более раннюю версию GMP, которая содержит libgmp.so.3
. Можно использовать rpm
для прямой установки RPM-пакета. Например, вы можете поискать и загрузить пакет gmp-5.1.3-8.el7.x86_64.rpm
, который должен содержать нужную библиотеку.
Если у вас есть возможность загрузить пакеты на другой компьютер с доступом к интернету, это будет оптимальный вариант. После загрузки перенесите их на сервер, используя scp
или USB-накопитель, если прямой доступ невозможен.
Этап 3: Установка необходимых пакетов вручную
-
Загрузка RPM-пакетов:
Загрузите все необходимые RPM-пакеты, включая:- gmp
- php56w-common
- php56w-gd
-
Установка зависимостей:
Установите сначалаgmp
, затемphp56w-common
, и, наконец,php56w-gd
. Пример команд:sudo rpm -ivh gmp-*.rpm sudo rpm -ivh php56w-common-*.rpm sudo rpm -ivh php56w-gd-*.rpm
Этап 4: Проверка установки
После завершения установки следует проверить, правильно ли были установлены пакеты. Для этого вы можете выполнить:
php -m | grep -i gd
Эта команда должна вернуть "gd" (если расширение установлено).
Альтернативный способ: Использование репозиториев
Если вам удастся получить доступ к репозиторию с интернетом — даже временно (например, через прокси-сервер), вы можете установить необходимые пакеты, используя yum
. Команда:
yum install php-gd
Попробует установить необходимые зависимости автоматически.
Заключение
Несмотря на явные трудности, вы можете успешно установить php-gd на вашем сервере CentOS 7, следуя этим шагам. Убедитесь, что у вас есть все необходимые RPM-пакеты перед началом установки и учитывайте, что для систем, работающих в ограниченных условиях, загрузка пакетов с другого компьютера может оказаться самым простым и быстрым решением. Если у вас будут дополнительные вопросы или возникнут сложности, пожалуйста, не стесняйтесь обращаться за помощью.