Я пытаюсь установить php на Ubuntu 22.10, раньше я мог сделать «apt install php» и покончить с этим, но теперь я не могу по какой-то причине?
Все, что я получаю, когда запускаю install php, это:
root@backups:/# apt install php
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php8.2 : Depends: libapache2-mod-php8.2 but it is not installable or
php8.2-fpm but it is not installable or
php8.2-cgi but it is not installable
Depends: php8.2-common but it is not installable
E: Unable to correct problems, you have held broken packages.
Мне все равно, какую версию php я могу получить, пока это 7 или 8, я перепробовал много руководств, все они говорят вам либо добавить это (http://ppa.launchpad.net/ondrej /php/ubuntu/pool/main/p/php8.1/) (что не работает) или просто запустить apt install, что тоже не работает. Или какая-то его вариация.
Я могу установить любую программу, кроме зависимостей или пакетов, связанных с PHO или PHP.
При установке зависимости получаю:
root@backups:/# sudo apt install php8.1-fpm
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
php8.1-fpm : Depends: php8.1-common (= 8.1.18-1+ubuntu20.04.1+deb.sury.org+1) but 8.1.7-1ubuntu3.3 is to be installed
E: Unable to correct problems, you have held broken packages.
Добавление репозитория ppa:ondrej/php приводит к:
root@backups:/var/www/snipeit# sudo add-apt-repository ppa:ondrej/nginx-mainline
PPA publishes dbgsym, you may need to include 'main/debug' component
Repository: 'deb https://ppa.launchpadcontent.net/ondrej/nginx-mainline/ubuntu/ kinetic main'
Description:
This branch follows latest NGINX Mainline packages compiled against latest OpenSSL for HTTP/2 and TLS 1.3 support.
BUGS&FEATURES: This PPA now has a issue tracker: https://deb.sury.org/#bug-reporting
PLEASE READ: If you like my work and want to give me a little motivation, please consider donating: https://donate.sury.org
More info: https://launchpad.net/~ondrej/+archive/ubuntu/nginx-mainline
Adding repository.
Press [ENTER] to continue or Ctrl-c to cancel.
Продолжение просто выдает мне ошибку при обновлении
E: The repository 'https://ppa.launchpadcontent.net/ondrej/nginx-mainline/ubuntu kinetic Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Я предполагаю, что эта проблема связана с тем, что 22.10 является довольно новым, но я всегда устанавливал последние версии Ubuntu и никогда не имел проблем с установкой программ, я думал, что в этом весь смысл Linux, стабильного и надежного.
Я могу переустановить более старую версию, но я хотел бы избежать этого, если это возможно, поскольку на этой машине работает больше служб.
Это тоже не работает
Взгляните на github.com/oerdnj/deb.sury.org/issues/1662 — deb.sury.org не поддерживает выпуски, отличные от lts.
Я бы предположил, что вам нужно удалить пакеты deb.sury — 8.1.18-1+ubuntu20.04.1+deb.sury.org+1 не похож на версию пакета, которую вы должны были установить в Ubuntu 22.10.
я проверил репозиторий ondrej, и на сегодняшний день в нем нет пакета для Ubuntu 22.10 .... если вы хотите установить php на 22.10, вы можете скомпилировать его из исходного кода - но могут возникнуть ошибки или лучше понизить ОС до 22.04 ЛТС ...






Я очень рекомендую установить PHP через PPA Ondřej Surý
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt search php
Вы сможете не только установить PHP, но и большинство его популярных пакетов PECL.
Это не сработает, так как Ondrejs PPA не поддерживает выпуски, отличные от lts.
Не могли бы вы проверить, работает ли это для установки Ubuntu Server 22.10? потому что, если это произойдет, я просто переустановлю Ubuntu (более старую версию LTS) и покончу с этим.
@Alex, я попробую и обновлю пост, если потребуются какие-либо изменения.
Я сдался, только что установил 22.04 LTS, и теперь все работает нормально. Я отмечаю это как решенное.
Предоставленное @rogervila решение работает для всех выпусков LTS.
Мораль этой истории: не используйте технологию Bleeding Edge для развертывания серверов. Оставайтесь на релизах LTS.
По-видимому, библиотека PHP еще не была скомпилирована для Ubuntu 22.10. Просто перейдите на версию 22.04 LTS, и она заработает с первого раза, вам даже не нужно добавлять какие-либо репозитории, просто установите ее.
Решение @rogervila providad тоже работает, и вы можете заставить его работать на Ubuntu 22.10, но проще перейти на выпуск LTS.
«Библиотека PHP еще не была скомпилирована для Ubuntu 22.10» — конечно, была. packages.ubuntu.com/kinetic/php перечисляет множество пакетов PHP, которые являются частью собственных репозиториев Ubuntu.
«Конечно, было», я имел в виду репозиторий ppa:ondrej/php. У него нет файла выпуска для Ubuntu 22.10. ``` E: В репозитории 'ppa.launchpadcontent.net/ondrej/nginx-mainline/ubuntukinetic Release' нет файла Release. ```
Этот комментарий кажется мне довольно странным — почему он относится к nginx для установки пакетов PHP? Кроме того, оригинальные исходники пакетов для Ubuntu 22.10 содержат все необходимые пакеты PHP. Если вы хотите использовать любой сторонний источник пакетов, выберите тот, который поддерживается
Еще раз, я имею в виду репозиторий ppa:ondrej/php, а не репозиторий Ubuntu по умолчанию. Проблема решена, в репозитории ppa:ondrej/php нет выпусков для Ubuntu 20.10, так как он официально поддерживает только выпуски LTS. В конце истории, если вы хотите использовать репозиторий ppa:ondrej/php, вам нужно получить выпуск LTS. Больше нечего обсуждать.
Вместо этого вы можете использовать этот источник deb.sury.org