После долгого времени решения этой проблемы я, наконец, решил ее и нашел решение:)
Кажется, проблема в том, что я использовал PPA ppa: ondrej / apache2, который устанавливал последнюю версию из набора PHP пакетов, который на момент написания использует PHP7 .2.27. Насколько я могу судить, самая последняя версия пакета php7 .2- soap предназначена для php7 .2.24, то есть существует неудовлетворенная зависимость для php7 .2-common пакет, предоставленный PPA.
Итак, решение состояло в том, чтобы удалить PPA и понизить версию пакетов PHP. Вот шаг за шагом для всех бедных душ, которые могут столкнуться с подобной проблемой:
Сначала, если еще не установлено, установите aptitude sudo apt-get install aptitude
Затем установите ppa-purge:
mkdir ppa-purge && cd ppa-purge && wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb && wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb && sudo dpkg -i ./*.deb
(Я запустил это в своей папке пользователя, т.е. ~/
Затем я удаляю PPA с помощью следующих команд:
sudo ppa-purge ppa:ondrej/apache2
sudo add-apt-repository --remove ppa:ondrej/apache2
sudo apt-get autoclean
Теперь нам нужно понизить зависимости. Сначала я определил, какая версия мне нужна. Пакет, который вызывал неудовлетворенную зависимость, был php7 .2-common, поэтому я запустил sudo apt list -a php7.2-common
. Я выбрал версию, соответствующую исходному сообщению об ошибке, в данном случае 7.2.24-0ubuntu0.19.04.2
.
Таким образом, вы можете установить указанную c версию, следуя пакету с =
, а затем номером версии. Если вы, как и я, работаете на работающем сервере, я ' Я собираюсь выкрикнуть следующий бит о следующей команде, которую вы напишите:
НЕ ИСПОЛЬЗУЙТЕ -Y TAG !!
ВЫБЕРИТЕ «НЕТ» КОГДА Он спрашивает вас, если вы хотите продолжить !!
Если вы сделаете что-то из этого, он будет автоматически удалите все зависимости для php7 .2-common и PHP перестанет работать на вашем сайте.
Чтобы определить, какие зависимости нам нужно обновить вместе с php7 .2-common, я запустил sudo apt-get install php7.2-common=7.2.24-0ubuntu0.19.04.2
. Затем он показал мне список других пакетов, которые он также удалит. Я скопировал эти зависимости, затем выбрал «n» для отмены установки.
Затем я поместил скопированный список в текстовый редактор и использовал его для создания следующего скрипта:
sudo apt-get install php7.2-common=7.2.24-0ubuntu0.19.04.2 \
libapache2-mod-php7.2=7.2.24-0ubuntu0.19.04.2 \
php7.2=7.2.24-0ubuntu0.19.04.2 \
php7.2-bcmath=7.2.24-0ubuntu0.19.04.2 \
php7.2-bz2=7.2.24-0ubuntu0.19.04.2 \
php7.2-cgi=7.2.24-0ubuntu0.19.04.2 \
php7.2-cli=7.2.24-0ubuntu0.19.04.2 \
php7.2-curl=7.2.24-0ubuntu0.19.04.2 \
php7.2-dev=7.2.24-0ubuntu0.19.04.2 \
php7.2-enchant=7.2.24-0ubuntu0.19.04.2 \
php7.2-fpm=7.2.24-0ubuntu0.19.04.2 \
php7.2-gd=7.2.24-0ubuntu0.19.04.2 \
php7.2-imap=7.2.24-0ubuntu0.19.04.2 \
php7.2-intl=7.2.24-0ubuntu0.19.04.2 \
php7.2-json=7.2.24-0ubuntu0.19.04.2 \
php7.2-ldap=7.2.24-0ubuntu0.19.04.2 \
php7.2-mbstring=7.2.24-0ubuntu0.19.04.2 \
php7.2-mysql=7.2.24-0ubuntu0.19.04.2 \
php7.2-odbc=7.2.24-0ubuntu0.19.04.2 \
php7.2-opcache=7.2.24-0ubuntu0.19.04.2 \
php7.2-pspell=7.2.24-0ubuntu0.19.04.2 \
php7.2-readline=7.2.24-0ubuntu0.19.04.2 \
php7.2-tidy=7.2.24-0ubuntu0.19.04.2 \
php7.2-xml=7.2.24-0ubuntu0.19.04.2 \
php7.2-xmlrpc=7.2.24-0ubuntu0.19.04.2 \
php7.2-zip=7.2.24-0ubuntu0.19.04.2
Наконец Я запустил эту команду. Вместо того, чтобы предупредить меня об удалении пакетов, он предупредил меня, что эти пакеты будут «понижены», и это нормально. Я нажал Y, и он переустановил все пакеты и альт! После этого я смог установить php7 .2- soap:)
См. Эти ссылки, которые я благодарен, чтобы найти решение для этого: