无法将 php5.5 降级回 php5.3

无法将 php5.5 降级回 php5.3

我尝试在 Ubuntu 12.04 上将 apache2.2 升级到 apache2.4,将 php5.3 升级到 php5.5。对于 php5.5,我使用了下面的命令(我不记得我使用了哪个 PPA 进行 apache 升级):

add-apt-repository ppa:ondrej/php5
add-apt-repository ppa:ondrej/php5-oldstable
apt-get update
apt-get install php5
apt-get install python-software-properties

然后我尝试通过删除 PPA 来降级它:

sudo add-apt-repository --remove ppa:ondrej/php5-oldstable
sudo add-apt-repository --remove ppa:ondrej/php5
apt-get update
apt-get install php5

但它给了我这个输出,但有一些错误:

The following packages have unmet dependencies:
 libapache2-mod-php5 : Depends: php5-common (= 5.5.26+dfsg-1+deb.sury.org~precise+1) but 5.3.10-1ubuntu3 is to be installed
 php5 : Depends: php5-common (>= 5.3.10-1ubuntu3.18) but 5.3.10-1ubuntu3 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

因此,一旦我发出命令“apt-get -f install”,我就会得到以下信息:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  libapache2-mod-php5
0 upgraded, 0 newly installed, 1 to remove and 119 not upgraded.
1 not fully installed or removed.
After this operation, 9473 kB disk space will be freed.
Do you want to continue [Y/n]? y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "tr_TR.UTF-8",
    LC_ADDRESS = "tr_TR.UTF-8",
    LC_MONETARY = "tr_TR.UTF-8",
    LC_NUMERIC = "tr_TR.UTF-8",
    LC_TELEPHONE = "tr_TR.UTF-8",
    LC_IDENTIFICATION = "tr_TR.UTF-8",
    LC_MEASUREMENT = "tr_TR.UTF-8",
    LC_TIME = "tr_TR.UTF-8",
    LC_NAME = "tr_TR.UTF-8",
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up php5-fpm (5.3.10-1ubuntu3) ...
start: Job failed to start
invoke-rc.d: initscript php5-fpm, action "start" failed.
dpkg: error processing php5-fpm (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 php5-fpm
E: Sub-process /usr/bin/dpkg returned an error code (1)

我已使用以下命令检查了我的源列表。它们没有输出,所以我认为这些 PPA 已成功删除。

cat /etc/apt/sources.list.d/*.list
cat /etc/apt/sources.list | grep php
cat /etc/apt/sources.list | grep apache

还 :

dpkg -l |grep php 

给了我这个:

ii  dh-php5                          0.2+deb.sury.org~precise+1            debhelper add-on to handle PHP PECL extensions
ii  libapache2-mod-php5              5.5.26+dfsg-1+deb.sury.org~precise+1  server-side, HTML-embedded scripting language (Apache 2 module)
ii  php-pear                         5.3.10-1ubuntu3                       PEAR - PHP Extension and Application Repository
ii  php5                             5.3.10-1ubuntu3                       server-side, HTML-embedded scripting language (metapackage)
rc  php5-apcu                        4.0.6-1+deb.sury.org~precise+1        APC User Cache for PHP 5
ii  php5-cli                         5.3.10-1ubuntu3                       command-line interpreter for the php5 scripting language
ii  php5-common                      5.3.10-1ubuntu3                       Common files for packages built from the php5 source
iF  php5-fpm                         5.3.10-1ubuntu3                       server-side, HTML-embedded scripting language (FPM-CGI binary)
ii  php5-gd                          5.3.10-1ubuntu3                       GD module for php5
ii  php5-imagick                     3.1.0~rc1-1                           ImageMagick module for php5
rc  php5-json                        1.3.6-1+deb.sury.org~precise+1        JSON module for php5
ii  php5-mcrypt                      5.3.5-0ubuntu1                        MCrypt module for php5
ii  php5-mysql                       5.3.10-1ubuntu3                       MySQL module for php5
ii  phpmyadmin                       4:3.4.10.1-1                          MySQL web administration tool
ii  pkg-php-tools                    1.21+deb.sury.org~precise+1           various packaging tools and scripts for PHP packages

我还尝试重新添加 PPA 并使用 ppa-purge 将其删除:

add-apt-repository ppa:ondrej/php5
add-apt-repository ppa:ondrej/php5-oldstable
ppa-purge ppa:ondrej/php5-oldstable
ppa-purge ppa:ondrej/php5

但是在删除 PPA 之后,它给出了以下输出,但有一些错误:

ppa-清除 ppa:ondrej/php5-oldstable

Updating packages lists
PPA to be removed: ondrej php5-oldstable
comm: file 2 is not in sorted order
Package revert list generated:
 dh-php5/precise libapache2-mod-php5/precise libbsd0/precise libedit2/precise 
php-pear/precise php5/precise php5-cli/precise php5-common/precise 
php5-fpm/precise php5-gd/precise php5-imagick/precise php5-mcrypt/precise 
php5-mysql/precise

Disabling ondrej PPA from 
/etc/apt/sources.list.d/ondrej-php5-oldstable-precise.list
Updating packages lists
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libedit2 is already the newest version.
libapache2-mod-php5 is already the newest version.
libbsd0 is already the newest version.
dh-php5 is already the newest version.
Selected version '0.2+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [all]) for 'dh-php5'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'libapache2-mod-php5'
Selected version '0.7.0-2+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'libbsd0'
Selected version '3.1-20140620-2+deb.sury.org~precise+4' (PPA for PHP 5.5:12.04/precise [amd64]) for 'libedit2'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [all]) for 'php-pear'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [all]) for 'php5'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-cli'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-common'
Selected version '2.15-0ubuntu10.12' (Ubuntu:12.04/precise-updates [amd64]) for 'libc6' because of 'php5-common'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-fpm'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-gd'
Selected version '3.1.2-1+deb.sury.org~precise+2' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-imagick'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-mcrypt'
Selected version '5.5.26+dfsg-1+deb.sury.org~precise+1' (PPA for PHP 5.5:12.04/precise [amd64]) for 'php5-mysql'
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libapache2-mod-php5 : Depends: php5-json
 php5-cli : Depends: php5-json
            Recommends: php5-readline but it is not going to be installed
 php5-fpm : Depends: php5-json
 pkg-php-tools : Depends: php5-json
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
The following NEW packages will be installed:
  php5-json{a} php5-readline{a} 
The following packages will be REMOVED:
  libt1-5{u} 
The following packages will be upgraded:
  php-pear php5 php5-cli php5-common php5-fpm php5-gd php5-imagick php5-mcrypt php5-mysql 
9 packages upgraded, 2 newly installed, 1 to remove and 112 not upgraded.
Need to get 14.0 kB/6836 kB of archives. After unpacking 1293 kB will be used.
Do you want to continue? [Y/n/?] y
Get: 1 http://ppa.launchpad.net/ondrej/php5/ubuntu/ precise/main php5-readline amd64 5.5.26+dfsg-1+deb.sury.org~precise+1 [14.0 kB]
Fetched 14.0 kB in 0s (357 kB/s)        
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "tr_TR.UTF-8",
    LC_ADDRESS = "tr_TR.UTF-8",
    LC_MONETARY = "tr_TR.UTF-8",
    LC_NUMERIC = "tr_TR.UTF-8",
    LC_TELEPHONE = "tr_TR.UTF-8",
    LC_IDENTIFICATION = "tr_TR.UTF-8",
    LC_MEASUREMENT = "tr_TR.UTF-8",
    LC_TIME = "tr_TR.UTF-8",
    LC_NAME = "tr_TR.UTF-8",
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 38805 files and directories currently installed.)
Preparing to replace php5-mysql 5.3.10-1ubuntu3 (using .../php5-mysql_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Unpacking replacement php5-mysql ...
Preparing to replace php5-gd 5.3.10-1ubuntu3 (using .../php5-gd_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Unpacking replacement php5-gd ...
Preparing to replace php5-mcrypt 5.3.5-0ubuntu1 (using .../php5-mcrypt_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Unpacking replacement php5-mcrypt ...
Preparing to replace php5-imagick 3.1.0~rc1-1 (using .../php5-imagick_3.1.2-1+deb.sury.org~precise+2_amd64.deb) ...
Unpacking replacement php5-imagick ...
Preparing to replace php5-cli 5.3.10-1ubuntu3 (using .../php5-cli_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Unpacking replacement php5-cli ...
Preparing to replace php5-common 5.3.10-1ubuntu3 (using .../php5-common_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Unpacking replacement php5-common ...
dpkg: warning: unable to delete old directory '/etc/php5/conf.d': Directory not empty
Selecting previously unselected package php5-json.
Unpacking php5-json (from .../php5-json_1.3.6-1+deb.sury.org~precise+1_amd64.deb) ...
Processing triggers for libapache2-mod-php5 ...
Processing triggers for man-db ...
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 38844 files and directories currently installed.)
Removing libt1-5 ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Selecting previously unselected package php5-readline.
(Reading database ... 38833 files and directories currently installed.)
Unpacking php5-readline (from .../php5-readline_5.5.26+dfsg-1+deb.sury.org~precise+1_amd64.deb) ...
Preparing to replace php-pear 5.3.10-1ubuntu3 (using .../php-pear_5.5.26+dfsg-1+deb.sury.org~precise+1_all.deb) ...
Unpacking replacement php-pear ...
Preparing to replace php5 5.3.10-1ubuntu3 (using .../php5_5.5.26+dfsg-1+deb.sury.org~precise+1_all.deb) ...
Unpacking replacement php5 ...
Processing triggers for libapache2-mod-php5 ...
Setting up php5-common (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
Installing new version of config file /etc/cron.d/php5 ...
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
dpkg: dependency problems prevent configuration of php5-fpm:
 php5-fpm depends on php5-common (= 5.3.10-1ubuntu3); however:
  Version of php5-common on system is 5.5.26+dfsg-1+deb.sury.org~precise+1.
dpkg: error processing php5-fpm (--configure):
 dependency problems - leaving unconfigured
Processing triggers for libapache2-mod-php5 ...
No apport report written because MaxReports is reached already
                                                              Setting up php5 (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
Setting up php5-mysql (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up php5-gd (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up php5-mcrypt (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Setting up php5-imagick (3.1.2-1+deb.sury.org~precise+2) ...
Setting up php5-json (1.3.6-1+deb.sury.org~precise+1) ...
php5_invoke: Enable module json for apache2 SAPI
Setting up php5-cli (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Replacing config file /etc/php5/cli/php.ini with new version
Setting up php5-readline (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
locale: Cannot set LC_ALL to default locale: No such file or directory

Creating config file /etc/php5/mods-available/readline.ini with new version
php5_invoke: Enable module readline for apache2 SAPI
php5_invoke: Enable module readline for cli SAPI
Setting up php-pear (5.5.26+dfsg-1+deb.sury.org~precise+1) ...
Installing new version of config file /etc/pear/pear.conf ...
Processing triggers for libapache2-mod-php5 ...
Errors were encountered while processing:
 php5-fpm
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
dpkg: dependency problems prevent configuration of php5-fpm:
 php5-fpm depends on php5-common (= 5.3.10-1ubuntu3); however:
  Version of php5-common on system is 5.5.26+dfsg-1+deb.sury.org~precise+1.
dpkg: error processing php5-fpm (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 php5-fpm

Current status: 113 updates [-8].
Warning:  Something went wrong, packages may not have been reverted

对于命令“ppa-purge ppa:ondrej / php5”我得到了这个:

Updating packages lists
PPA to be removed: ondrej php5
comm: file 2 is not in sorted order
Package revert list generated:
 apache2/precise apache2-bin/precise apache2-data/precise apache2-utils/precise 
apache2.2-bin/precise apache2.2-common/precise dh-php5/precise 
libapache2-mod-php5/precise libapache2-mod-proxy-html/precise libapr1/precise 
libapr1-dev/precise libaprutil1/precise libaprutil1-dbd-sqlite3/precise 
libaprutil1-dev/precise libaprutil1-ldap/precise libbsd0/precise 
libedit2/precise libgd3/precise libjson-c2/precise php-pear/precise 
php5/precise php5-apcu/precise php5-cli/precise php5-common/precise 
php5-fpm/precise php5-gd/precise php5-imagick/precise php5-json/precise 
php5-mcrypt/precise php5-mysql/precise php5-readline/precise 
pkg-php-tools/precise

Disabling ondrej PPA from 
/etc/apt/sources.list.d/ondrej-php5-oldstable-precise.list
Disabling ondrej PPA from /etc/apt/sources.list.d/ondrej-php5-precise.list
Updating packages lists
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Release 'precise' for 'apache2-bin' was not found
E: Release 'precise' for 'apache2-data' was not found
E: Release 'precise' for 'dh-php5' was not found
E: Release 'precise' for 'libgd3' was not found
E: Release 'precise' for 'libjson-c2' was not found
E: Release 'precise' for 'php5-apcu' was not found
E: Release 'precise' for 'php5-json' was not found
E: Release 'precise' for 'php5-readline' was not found
Unable to find an archive "precise" for the package "apache2-bin"
Unable to find an archive "precise" for the package "apache2-data"
Unable to find an archive "precise" for the package "dh-php5"
Unable to find an archive "precise" for the package "libgd3"
Unable to find an archive "precise" for the package "libjson-c2"
Unable to find an archive "precise" for the package "php5-apcu"
Unable to find an archive "precise" for the package "php5-json"
Unable to find an archive "precise" for the package "php5-readline"
Unable to find an archive "precise" for the package "apache2-bin"
Unable to find an archive "precise" for the package "apache2-data"
Unable to find an archive "precise" for the package "dh-php5"
Unable to find an archive "precise" for the package "libgd3"
Unable to find an archive "precise" for the package "libjson-c2"
Unable to find an archive "precise" for the package "php5-apcu"
Unable to find an archive "precise" for the package "php5-json"
Unable to find an archive "precise" for the package "php5-readline"
The following packages will be DOWNGRADED:
  apache2{b} apache2-utils apache2.2-bin libapache2-mod-php5 libapache2-mod-proxy-html libapr1 libapr1-dev 
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-dev libaprutil1-ldap libbsd0 libedit2 php-pear php5 php5-cli 
  php5-common php5-gd php5-imagick php5-mcrypt php5-mysql pkg-php-tools 
The following NEW packages will be installed:
  apache2-mpm-prefork{ab} apache2.2-common libt1-5{a} php5-dev{ab} 
The following packages will be REMOVED:
  libonig2{u} libqdbm14{u} php5-json{u} php5-readline{u} 
The following partially installed packages will be configured:
  php5-fpm 
0 packages upgraded, 4 newly installed, 22 downgraded, 4 to remove and 112 not upgraded.
Need to get 3748 kB/11.4 MB of archives. After unpacking 4451 kB will be used.
The following packages have unmet dependencies:
 dh-php5 : Conflicts: php5-dev (< 5.5.9+dfsg-2~) but 5.3.10-1ubuntu3.18 is to be installed.
 apache2-mpm-prefork : Depends: apache2.2-common (= 2.2.22-1ubuntu1.9) but 2.2.22-1ubuntu1 is to be installed.
                       Depends: apache2.2-bin (= 2.2.22-1ubuntu1.9) but 2.2.22-1ubuntu1 is to be installed.
 apache2 : Depends: apache2-mpm-worker (= 2.2.22-1ubuntu1) but it is not going to be installed. or
                    apache2-mpm-prefork (= 2.2.22-1ubuntu1) but 2.2.22-1ubuntu1.9 is to be installed. or
                    apache2-mpm-event (= 2.2.22-1ubuntu1) but it is not going to be installed. or
                    apache2-mpm-itk (= 2.2.22-1ubuntu1) but it is not going to be installed.
 apache2-bin : Depends: libapr1 (>= 1.5.0) but 1.4.6-1 is to be installed.
               Depends: libaprutil1 (>= 1.5.0) but 1.3.12+dfsg-3 is to be installed.
               Conflicts: apache2.2-bin (< 2.3~) but 2.2.22-1ubuntu1 is to be installed.
               Conflicts: apache2.2-common (< 2.3~) but 2.2.22-1ubuntu1 is to be installed.
               Breaks: libapache2-mod-proxy-html (< 1:2.4.4-2~) but 3.0.1-1 is to be installed.
 apache2-data : Conflicts: apache2.2-common (< 2.3~) but 2.2.22-1ubuntu1 is to be installed.
 php5-dev : Depends: php5-common (>= 5.3.10-1ubuntu3.18) but 5.3.10-1ubuntu3 is to be installed.
The following actions will resolve these dependencies:

     Remove the following packages:                       
1)     apache2                                            
2)     apache2-bin                                        
3)     libapache2-mod-php5                                
4)     libapache2-mod-proxy-html                          

     Keep the following packages at their current version:
5)     apache2-mpm-prefork [Not Installed]                
6)     apache2.2-common [Not Installed]                   
7)     php5-dev [Not Installed]                           

     Leave the following dependencies unresolved:         
8)     php-pear recommends php5-dev                       
9)     phpmyadmin recommends apache2 | lighttpd | httpd   


Accept this solution? [Y/n/q/?] y
The following packages will be DOWNGRADED:
  apache2-utils apache2.2-bin libapr1 libapr1-dev libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-dev 
  libaprutil1-ldap libbsd0 libedit2 php-pear php5 php5-cli php5-common php5-gd php5-imagick php5-mcrypt php5-mysql 
  pkg-php-tools 
The following NEW packages will be installed:
  libt1-5{a} 
The following packages will be REMOVED:
  apache2{a} apache2-bin{a} libapache2-mod-php5{a} libapache2-mod-proxy-html{a} php5-json{u} php5-readline{u} 
The following partially installed packages will be configured:
  php5-fpm 
The following packages are RECOMMENDED but will NOT be installed:
  php5-dev 
0 packages upgraded, 1 newly installed, 19 downgraded, 6 to remove and 112 not upgraded.
Need to get 158 kB/7576 kB of archives. After unpacking 10.7 MB will be freed.
Do you want to continue? [Y/n/?] y
Get: 1 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu/ precise/main libt1-5 amd64 5.1.2-3.4ubuntu1 [158 kB]
Fetched 158 kB in 0s (3189 kB/s)
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "tr_TR.UTF-8",
    LC_ADDRESS = "tr_TR.UTF-8",
    LC_MONETARY = "tr_TR.UTF-8",
    LC_NUMERIC = "tr_TR.UTF-8",
    LC_TELEPHONE = "tr_TR.UTF-8",
    LC_IDENTIFICATION = "tr_TR.UTF-8",
    LC_MEASUREMENT = "tr_TR.UTF-8",
    LC_TIME = "tr_TR.UTF-8",
    LC_NAME = "tr_TR.UTF-8",
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 38843 files and directories currently installed.)
Removing php5-readline ...
php5_invoke prerm: Disable module readline for apache2 SAPI
php5_invoke prerm: Disable module readline for cli SAPI
Processing triggers for libapache2-mod-php5 ...
dpkg: warning: downgrading php5-cli from 5.5.26+dfsg-1+deb.sury.org~precise+1 to 5.3.10-1ubuntu3.
(Reading database ... 38836 files and directories currently installed.)
Preparing to replace php5-cli 5.5.26+dfsg-1+deb.sury.org~precise+1 (using .../php5-cli_5.3.10-1ubuntu3_amd64.deb) ...
Unpacking replacement php5-cli ...
dpkg: warning: downgrading php5-mysql from 5.5.26+dfsg-1+deb.sury.org~precise+1 to 5.3.10-1ubuntu3.
Preparing to replace php5-mysql 5.5.26+dfsg-1+deb.sury.org~precise+1 (using .../php5-mysql_5.3.10-1ubuntu3_amd64.deb) ...
Unpacking replacement php5-mysql ...
Processing triggers for man-db ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Processing triggers for libapache2-mod-php5 ...
dpkg: php5-json: dependency problems, but removing anyway as you requested:
 libapache2-mod-php5 depends on php5-json; however:
  Package php5-json is to be removed.
 pkg-php-tools depends on php5-json; however:
  Package php5-json is to be removed.
(Reading database ... 38827 files and directories currently installed.)
Removing php5-json ...
php5_invoke prerm: Disable module json for apache2 SAPI
dpkg: warning: downgrading php5-common from 5.5.26+dfsg-1+deb.sury.org~precise+1 to 5.3.10-1ubuntu3.
(Reading database ... 38820 files and directories currently installed.)
Preparing to replace php5-common 5.5.26+dfsg-1+deb.sury.org~precise+1 (using .../php5-common_5.3.10-1ubuntu3_amd64.deb) ...
Unpacking replacement php5-common ...
dpkg: warning: unable to delete old directory '/var/lib/php5/modules': Directory not empty
Processing triggers for libapache2-mod-php5 ...
Setting up php5-common (5.3.10-1ubuntu3) ...
Installing new version of config file /etc/cron.d/php5 ...
Setting up php5-fpm (5.3.10-1ubuntu3) ...
start: Job failed to start
invoke-rc.d: initscript php5-fpm, action "start" failed.
dpkg: error processing php5-fpm (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 php5-fpm
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up php5-fpm (5.3.10-1ubuntu3) ...
start: Job failed to start
invoke-rc.d: initscript php5-fpm, action "start" failed.
dpkg: error processing php5-fpm (--configure):
 subprocess installed post-installation script returned error exit status 1
Setting up php5-cli (5.3.10-1ubuntu3) ...
locale: Cannot set LC_ALL to default locale: No such file or directory
Replacing config file /etc/php5/cli/php.ini with new version
Setting up php5-mysql (5.3.10-1ubuntu3) ...
Errors were encountered while processing:
 php5-fpm

Current status: 6 broken [+5], 113 updates [+1], 64746 new [-2].
Warning:  Something went wrong, packages may not have been reverted

使用 ppa-purge 重新添加和删除 PPA 后,我得到了与“apt-get install php5”不同的输出,这次我没有从 php5.5 获得任何东西,但出现了有关 php5-imagick 的问题:

The following packages have unmet dependencies:
 php5 : Depends: libapache2-mod-php5 (>= 5.3.10-1ubuntu3.18) but it is not going to be installed or
                 libapache2-mod-php5filter (>= 5.3.10-1ubuntu3.18) but it is not going to be installed or
                 php5-cgi (>= 5.3.10-1ubuntu3.18) but it is not going to be installed or
                 php5-fpm (>= 5.3.10-1ubuntu3.18) but 5.3.10-1ubuntu3 is to be installed
        Depends: php5-common (>= 5.3.10-1ubuntu3.18) but 5.3.10-1ubuntu3 is to be installed
 php5-imagick : Depends: phpapi-20121212 but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

然后再执行“apt-get -f install”,得到如下结果:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages will be REMOVED:
  php5-imagick
0 upgraded, 0 newly installed, 1 to remove and 118 not upgraded.
2 not fully installed or removed.
After this operation, 554 kB disk space will be freed.
Do you want to continue [Y/n]? y
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_PAPER = "tr_TR.UTF-8",
    LC_ADDRESS = "tr_TR.UTF-8",
    LC_MONETARY = "tr_TR.UTF-8",
    LC_NUMERIC = "tr_TR.UTF-8",
    LC_TELEPHONE = "tr_TR.UTF-8",
    LC_IDENTIFICATION = "tr_TR.UTF-8",
    LC_MEASUREMENT = "tr_TR.UTF-8",
    LC_TIME = "tr_TR.UTF-8",
    LC_NAME = "tr_TR.UTF-8",
    LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_ALL to default locale: No such file or directory
(Reading database ... 37595 files and directories currently installed.)
Removing php5-imagick ...
/var/lib/dpkg/info/php5-imagick.prerm: line 13: php5dismod: command not found
dpkg: error processing php5-imagick (--remove):
 subprocess installed pre-removal script returned error exit status 127
/var/lib/dpkg/info/php5-imagick.postinst: line 11: php5enmod: command not found
dpkg: error while cleaning up:
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 php5-imagick
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

我首先要获得一个稳定的 PHP 5.5 系统:

sudo add-apt-repository ppa:ondrej/php5
sudo add-apt-repository ppa:ondrej/php5-oldstable
sudo apt-get update
sudo apt-get -f install

删除所有的东西,但注意删除的内容

sudo apt-get -s remove ^php.* dh-php5 libapache2-mod-php5

删除 PPA:

sudo add-apt-repository --remove ppa:ondrej/php5-oldstable
sudo add-apt-repository --remove ppa:ondrej/php5
sudo apt-get update

重新安装 LAMP:

sudo apt-get install lamp-server^

php5dismod是的,您似乎对和不存在有点困惑php5enmod。它们可能是较新的 PHP 的一部分,但考虑到您处于混合状态,它们在您的系统上不可用。

我正在尝试想出一种破坏性最小的方法来解决这个问题,我认为我们可以直接移动命令,这样它就可以执行某物并继续。

sudo install -b -m 755 /dev/stdin /usr/sbin/php5enmod << EOF
#!/bin/bash
echo "Fake command run: \$0"
EOF
sudo cp /usr/sbin/php5{en,dis}mod

然后运行修复程序,然后使用以下命令删除虚假文件:

sudo rm /usr/sbin/php5{en,dis}mod

您可能需要早点或晚点执行此操作(他们可能会阻止安装 PHP5.5)。
找出答案会很有趣。

相关内容