Вопрос или проблема
Извините за это, вот что я получаю при попытке установить следующие пакеты, любые советы будут очень полезны.
yael@ypa-ubuntu-server:~$ sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-mbstring php7.2-xmlrpc php7.2-soap php-apcu php-smbclient php7.2-ldap php-redis php7.2-gd php7.2-xml php7.2-intl php7.2-json php-imagick php7.2-mysql php7.2-cli php7.2-ldap php7.2-zip php7.2-curl
[sudo] пароль для yael:
Чтение списков пакетов... Готово
Формирование дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Пакет libapache2-mod-php7.2 недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника.
Пакет php-smbclient недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника.
Пакет php7.2-common недоступен, но на него ссылается другой пакет.
Это может означать, что пакет отсутствует, устарел или
доступен только из другого источника.
E: Не удалось найти пакет php7.2
E: Не удалось найти пакет 'php7.2'
E: У пакета 'libapache2-mod-php7.2' нет кандидата на установку
E: У пакета 'php7.2-common' нет кандидата на установку
E: Не удалось найти пакет php7.2-mbstring
E: Не удалось найти пакет 'php7.2-mbstring'
E: Не удалось найти пакет php7.2-xmlrpc
E: Не удалось найти пакет 'php7.2-xmlrpc'
E: Не удалось найти пакет php7.2-soap
E: Не удалось найти пакет 'php7.2-soap'
E: У пакета 'php-smbclient' нет кандидата на установку
E: Не удалось найти пакет php7.2-ldap
E: Не удалось найти пакет 'php7.2-ldap'
E: Не удалось найти пакет php7.2-gd
E: Не удалось найти пакет 'php7.2-gd'
E: Не удалось найти пакет php7.2-xml
E: Не удалось найти пакет 'php7.2-xml'
E: Не удалось найти пакет php7.2-intl
E: Не удалось найти пакет 'php7.2-intl'
E: Не удалось найти пакет php7.2-json
E: Не удалось найти пакет 'php7.2-json'
E: Не удалось найти пакет php7.2-mysql
E: Не удалось найти пакет 'php7.2-mysql'
E: Не удалось найти пакет php7.2-cli
E: Не удалось найти пакет 'php7.2-cli'
E: Не удалось найти пакет php7.2-ldap
E: Не удалось найти пакет 'php7.2-ldap'
E: Не удалось найти пакет php7.2-zip
E: Не удалось найти пакет 'php7.2-zip'
E: Не удалось найти пакет php7.2-curl
E: Не удалось найти пакет 'php7.2-curl'
Я попробовал apt policy [один из отсутствующих пакетов] для нескольких из них, и вот что я получил.
yael@ypa-ubuntu-server:~$ apt policy php7.2
N: Не удалось найти пакет php7.2
N: Не удалось найти пакет 'php7.2'
yael@ypa-ubuntu-server:~$ apt policy php7.2
N: Не удалось найти пакет php7.2
N: Не удалось найти пакет 'php7.2'
yael@ypa-ubuntu-server:~$ apt policy libapache2-mod-php7.2
libapache2-mod-php7.2:
Установлено: (нет)
Кандидат: (нет)
Таблица версий:
yael@ypa-ubuntu-server:~$ apt policy php7.2-common
php7.2-common:
Установлено: (нет)
Кандидат: (нет)
Таблица версий:
yael@ypa-ubuntu-server:~$ apt policy php7.2-mbstring
N: Не удалось найти пакет php7.2-mbstring
N: Не удалось найти пакет 'php7.2-mbstring'
Пакет php-smbclient
был в последний раз доступен для 18.04 LTS официально.
Чтобы получить его на 21.04, вам нужно использовать PPA:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jnweiger/php-smbclient
sudo apt-get update
sudo apt-get install php-smbclient
Также обратите внимание, что рекомендуется использовать версии LTS (например, 18.04 LTS или 20.04 LTS) для надежных долгосрочных установок серверов.
Ответ или решение
Проблема, с которой вы столкнулись, связана с невозможностью установки пакетов PHP для конфигурации Apache на вашем сервере Ubuntu. Давайте подробно рассмотрим, как можно решить эту проблему и что она может означать.
1. Анализ ошибки
Вы получили несколько сообщений об ошибках, таких как:
- "Package [имя пакета] is not available"
- "Unable to locate package [имя пакета]"
Эти сообщения указывают на то, что пакеты, которые вы пытаетесь установить, не доступны в стандартных репозиториях вашего дистрибутива.
2. Версия PHP и версии Ubuntu
Судя по вашему выводу, вы пытаетесь установить пакеты PHP 7.2. Однако, важно отметить, что версия PHP 7.2 больше не поддерживается в некоторых версиях Ubuntu, и могла быть удалена из стандартных репозиториев. Если вы используете Ubuntu 21.04 или более новые версии, это может объяснить отсутствие необходимых пакетов.
3. Рекомендации по стабильным версиям
Рекомендуется использовать LTS (Long Term Support) версии Ubuntu, такие как 18.04 LTS или 20.04 LTS. Эти версии имеют более длительный срок поддержки и содержат более стабильные репозитории, что полезно для серверов.
4. Установка PHP из внешних репозиториев
Для установки php-smbclient
на Ubuntu 21.04 вы можете использовать PPA (Personal Package Archive), как указано в вашем примере. Вот шаги для установки необходимых пакетов:
Шаги по исправлению:
-
Установка программного обеспечения для управления репозиториями:
sudo apt-get install software-properties-common
-
Добавление PPA репозитория для PHP:
sudo add-apt-repository ppa:jnweiger/php-smbclient
-
Обновление списка пакетов:
sudo apt-get update
-
Установка необходимых пакетов:
Попробуйте теперь установить основные пакеты PHP, как это делали ранее, или установите PHP 7.4 или 8.0, так как они менее проблемные:
sudo apt install php php-cli libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-apcu php-smbclient php-ldap php-redis php-gd php-xml php-intl php-json php-imagick php-mysql php-zip php-curl
5. Проверка доступности пакета
Если после выполнения всех вышеперечисленных шагов пакеты по-прежнему недоступны, проверьте, что у вас правильно настроены репозитории:
- Откройте файл
/etc/apt/sources.list
и убедитесь, что у вас есть записи дляmain
,universe
,restricted
иmultiverse
. В случае необходимости добавьте их.
6. Альтернативные варианты
Если по-прежнему возникают проблемы с установкой PHP 7.2, подумайте о переходе на более новую версию PHP (например, 7.4 или 8.0), которые могут быть доступны в вашем текущем распределении.
Заключение
Установка пакетов PHP для Apache может вызвать сложности из-за изменений в репозиториях и поддерживаемых версиях. Следуя указанным шагам, вы сможете настроить свою среду удовлетворительно. Также имеет смысл поддерживать актуальную и стабильную версию системы для минимизации подобных зависимостей в будущем.