Невозможно установить php7 .1- soap в Ubuntu 19.04. - PullRequest
0 голосов
/ 04 февраля 2020

Я запускаю PHP 7.2 на Apache сервере в Ubuntu, и мне нужно добавить PHP SoapClient. Однако, когда я пытаюсь установить его с помощью apt-get, я получаю следующую ошибку:

The following packages have unmet dependencies:
 php7.2-soap : Depends: php7.2-common (= 7.2.24-0ubuntu0.19.04.2) but 7.2.26-1+ubuntu19.04.1+deb.sury.org+1 is to be installed
E: Unable to correct problems, you have held broken packages.

Я попробовал следующее перед повторной попыткой:

sudo apt-get update
sudo apt-get clean && sudo apt-get update
sudo apt-get upgrade
sudo apt-get upgrade-dist
sudo apt-get -f install
sudo dpkg --configure -a

Если это поможет, когда я запускаю uname -r, вывод 5.0.0-37-generic

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

После долгого времени решения этой проблемы я, наконец, решил ее и нашел решение:)

Кажется, проблема в том, что я использовал 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:)

См. Эти ссылки, которые я благодарен, чтобы найти решение для этого:

0 голосов
/ 04 февраля 2020

У меня похожая проблема один месяц go с Debian 9 и PHP 7. Рассматривали ли вы обновить PHP до последней стабильной версии перед установкой PHP клиента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...