Рейтинг:1

Установите PHP 7.x на Ubuntu 16.04

флаг cn

Я знаю, что этот вопрос задавали много раз, но я всегда получал один и тот же ответ, который не решает мою проблему.

Предлагаемое решение обычно выглядит следующим образом:

~$ sudo apt-get install software-properties-common python-software-properties;
~$ sudo add-apt-repository -y ppa:ondrej/php;
~$ sudo apt-get update;

И это сделано! Но не в моем случае к сожалению.

Итак, после выполнения ранее упомянутых шагов я пытаюсь установить «любую» версию PHP 7.x через подходящий но похоже, что пакеты для любой версии PHP не могут быть найдены.

~$ sudo apt install php7.4;
Чтение списков пакетов... Готово
Построение дерева зависимостей... 50%
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Обратите внимание, выбор «php7.4-gd» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-cli» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-dom» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-ffi» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-ftp» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-xmlreader» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-mysqli» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-sysvmsg» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-json» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-phar» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-tokenizer» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-curl» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-shmop» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-pdo-mysql» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-sysvsem» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-sysvshm» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-pdo» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-sockets» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-ctype» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-calendar» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-intl» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-fileinfo» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-opcache» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-soap» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-xml» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-xsl» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-zip» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-simplexml» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-mysql» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-mbstring» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-readline» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-exif» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-mysqlnd» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-common» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-bcmath» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-posix» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-iconv» для регулярного выражения «php7.4»
Обратите внимание: выбор «libapache2-mod-php7.4» для регулярного выражения «php7.4»
Обратите внимание, выбор «php7.4-gettext» для регулярного выражения «php7.4»
Обратите внимание: выбор «php7.4-xmlwriter» для регулярного выражения «php7.4»
0 обновлено, 0 установлено заново, 0 удалено и 0 не обновлено.

Что также интересно, так это то, что когда я использую меткий поиск в том, что на самом деле не существует пакета для любого php версия

~$ sudo apt search php7.4
Сортировка... Готово
Полнотекстовый поиск... Готово
libapache2-mod-php7.4/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-bcmath/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-cli/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]

  (никто)

php7.4-common/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-curl/теперь 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-gd/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-intl/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

php7.4-json/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [остаточная конфигурация]
  (никто)

... и т.д

Что мне не хватает?

Изменить: после выполнения apt-получить очистку php7.4 сообщение для (по крайней мере, PHP 7.4) изменилось на следующее:

~$ sudo apt-get install -y php7.4
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
E: Не удалось найти пакет php7.4
E: Не удалось найти ни одного пакета по glob 'php7.4'
E: Не удалось найти ни одного пакета по регулярному выражению 'php7.4'
флаг in
Ubuntu 18.04 поставляется с PHP 7.2 в репозиториях по умолчанию. Вам нужна именно 7.4 или подойдет любая версия из линейки 7.x?
BRO_THOM avatar
флаг cn
@matigo Я занимаюсь восстановлением виртуальной машины, используемой разработчиком, который создал всевозможные странные зависимости, поэтому самым быстрым способом решить проблему было удалить все версии php и переустановить их. Я, однако, ударил эту шишку. Ранее были установлены 7.0, 7.2, 7.2, 7.3, 7.4 и 8.0. Но да, цель состоит в том, чтобы просто установить любую версию.
флаг in
Как правило, с виртуальными машинами лучше обращаться как с одноразовыми объектами, поэтому, возможно, будет быстрее перейти к «выжженной земле» и начать все заново. Тем не менее, если вы настаиваете на сохранении этой виртуальной машины, какую версию PHP вы хотите установить? Дефолтная 7.2 или что-то другое?
BRO_THOM avatar
флаг cn
@matigo, к сожалению, это невозможно, я тоже простой разработчик, и у нас нет никаких процедур / виртуальных образов для их переустановки. Не говоря уже обо всех остальных необходимых пакетах. Кроме того, виртуальная машина «все еще используется».
BRO_THOM avatar
флаг cn
@matigo Лол, я нажал Enter, так что мой комментарий все равно был отправлен. Я бы предпочел и 7.3, и 7.4. Как мне их установить? Насколько я понимаю, использование `apt` - единственный способ.
флаг in
Глядя на сообщение от apt и ваши комментарии, кажется, что PHP 7.4 (и, возможно, еще пять версий) уже установлен в системе. Запуск «apt install» покажет вышеуказанное сообщение, если программное обеспечение уже установлено и обновлено. У вас проблемы с переключением между версиями?
BRO_THOM avatar
флаг cn
@matigo, другая версия ранее была удалена с помощью команды `apt-get remove php7.x` и, похоже, больше нигде в системе, поэтому кажется, что они были удалены правильно.
BRO_THOM avatar
флаг cn
@matigo, чтобы быть уверенным, я проверил, могу ли я получить другое сообщение от «apt-get remove php7.4», но в нем просто указано «0 обновлено, 0 недавно установлено, 0 для удаления и 0 не обновлено».
BRO_THOM avatar
флаг cn
@matigo, кроме того, я только что заметил, что среда работает на Ubuntu 16.04 вместо вышеупомянутой 18.04.
флаг in
16.04 является EOL, и у меня больше нет экземпляров этой системы для тестирования решений. Я *настоятельно* советую загрузить файл .iso версии 20.04 LTS и создать новую виртуальную машину для использования командой разработчиков. Считайте это хорошим учебным опытом, который повысит ценность, которую вы приносите команде.
BRO_THOM avatar
флаг cn
Ты прав. Судя по всему, сопровождающий пакетов Ubuntu PHP прекратил поддержку 16.04.
Рейтинг:2
флаг cn

Для всех, кто заинтересован;

Поддержка PHP для Ubuntu xenial 16.04 прекращена с 10 июня 2021 года.Я обнаружил это на собственном горьком опыте, когда также пытался установить модули / версии PHP на другие виртуальные машины, использующие 16.04, и, по-видимому, «не смог найти пакеты», когда другая машина ранее с легкостью установила их.

На stackoverflow есть сообщение, описывающее это: https://stackoverflow.com/questions/67920506/unable-to-install-php-7-4-on-ubantu-16-04-even-with-ondrej-ppa-repository-in-apa

Levente avatar
флаг cn
Любая стандартная поддержка 16.04 была прекращена, включая исправления безопасности ОС и приложений: https://meta.askubuntu.com/q/19582/1157519 Это также помечает этот выпуск как не относящийся к теме этого веб-сайта. Узнайте больше об этом и о ваших вариантах в моих комментариях здесь и ниже: https://askubuntu.com/questions/1342277/how-to-change-color-of-dialogue-window#comment2293435_1342277
BRO_THOM avatar
флаг cn
@Levente, может быть, это идея заархивировать эту тему из-за ее важности в ближайшие дни для разработчиков / администраторов, использующих устаревшее программное обеспечение?
Levente avatar
флаг cn
Это не мне решать... Я просто хотел указать, что для обеспечения безопасности вам необходимо либо перейти на поддерживаемую версию, либо явным образом подписаться на расширенную поддержку.
флаг cl
Мне пришлось удалить 7.4, а затем переустановить, что внезапно начало давать сбой, и я сходил с ума, пытаясь понять, почему, пока не увидел этот ответ. Думал, что я был 18.04, но это заставило меня проверить и упс... все еще 16.04.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.