2017-07-06 105 views
2

我正在使用shippable来构建我的项目,并且它的一部分需要PHP。在Ubuntu 14.04上安装PHP 7现在失败,因为无法解决libssl依赖项?

构建脚本是这样的:

apt-get update 
apt-get install -y software-properties-common python-software-properties language-pack-en-base 
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php 
apt-get update 
apt-get install -y php7.0 php7.0-bcmath 

今天,当出现以下错误安装PHP构建失败:

apt-get install -y php7.0 php7.0-bcmath 

Reading package lists... 
Building dependency tree... 
Reading state information... 
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: 
php7.0 : Depends: libapache2-mod-php7.0 but it is not going to be installed or 
        php7.0-fpm but it is not going to be installed or 
        php7.0-cgi but it is not going to be installed 
      Depends: php7.0-common but it is not going to be installed 
php7.0-bcmath : Depends: php7.0-common but it is not going to be installed 
E: Unable to correct problems, you have held broken packages. 

所以我就开始了一个当地码头工人的容器,看看什么奇怪的是使用以下命令发生:

docker run -i -t ubuntu:14.04 /bin/bash 

并跑了上面列出的5条构建线,并且我得到相同的错误。我做的下一件事就是安装​​,看看我是否能得到一个更好的错误,并运行此aptitude install -y php7.0 php7.0-bcmath - 这是天赋输出:

aptitude install -y php7.0 php7.0-bcmath 
The following NEW packages will be installed: 
    apache2{a} apache2-bin{a} apache2-data{a} libapache2-mod-php7.0{ab} 
    libapr1{a} libaprutil1{a} libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a} 
    libedit2{a} php-common{a} php7.0 php7.0-bcmath php7.0-cli{ab} 
    php7.0-common{ab} php7.0-json{a} php7.0-opcache{a} php7.0-readline{a} 
    psmisc{a} ssl-cert{a} 
0 packages upgraded, 19 newly installed, 0 to remove and 7 not upgraded. 
Need to get 4950 kB of archives. After unpacking 20.2 MB will be used. 
The following packages have unmet dependencies: 
php7.0-cli : Depends: libssl1.1 (>= 1.1.0) which is a virtual package. 
php7.0-common : Depends: libssl1.1 (>= 1.1.0) which is a virtual package. 
libapache2-mod-php7.0 : Depends: libssl1.1 (>= 1.1.0) which is a virtual package. 
The following actions will resolve these dependencies: 

    Keep the following packages at their current version: 
1)  libapache2-mod-php7.0 [Not Installed]    
2)  php7.0 [Not Installed]        
3)  php7.0-bcmath [Not Installed]      
4)  php7.0-cli [Not Installed]       
5)  php7.0-common [Not Installed]      
6)  php7.0-json [Not Installed]       
7)  php7.0-opcache [Not Installed]      
8)  php7.0-readline [Not Installed]      



The following NEW packages will be installed: 
    psmisc{a} 
0 packages upgraded, 1 newly installed, 0 to remove and 7 not upgraded. 
Need to get 53.2 kB of archives. After unpacking 229 kB will be used. 
Get: 1 http://archive.ubuntu.com/ubuntu/ trusty/main psmisc amd64 22.20-1ubuntu2 [53.2 kB] 
Fetched 53.2 kB in 0s (911 kB/s) 
Selecting previously unselected package psmisc. 
(Reading database ... 14894 files and directories currently installed.) 
Preparing to unpack .../psmisc_22.20-1ubuntu2_amd64.deb ... 
Unpacking psmisc (22.20-1ubuntu2) ... 
Setting up psmisc (22.20-1ubuntu2) ... 

我有几个问题:

1)我该如何解决?我已经做了一些寻找,但不能解决如何更新libssl

2)为什么突然间发生这种情况,这对于PHP7.0来说从来不是问题?

一些额外的信息:

openssl version -a 
OpenSSL 1.0.1f 6 Jan 2014 
built on: Mon Jan 30 20:38:38 UTC 2017 
platform: debian-amd64 
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM 
OPENSSLDIR: "/usr/lib/ssl" 

uname -a 
Linux b5cbe94d7da8 4.9.13-moby #1 SMP Sat Mar 25 02:48:44 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux 
+0

这是同样的问题吗? https://askubuntu.com/questions/462094/unable-to-install-libssl1-0-0i386-due-to-unmet-dependencies –

+0

我认为这是在StackOverflow的offtopic。这属于Ask Ubuntu或其他东西。 –

+0

@TahaPaksu作为一名Ubuntu管理员我可以说:“不,但它是一个类似的问题,它是由程序员/用户指定的存储库,而不是用于构建事物的脚本,并最终无法通过最终用户或创建软件包的人员。“它需要由运行该存储库的人员解决/ PPA –

回答

3

的PPA维护者 '固定' 这个,according to a GitHub issue

回答您的问题:

1) How do i fix this? I have done some looking but can't work out how to update libssl

的PPA已经确定了,但下一次,请在适当的地方填写的问题 - 例如, issue tracker

2) Why has this happened all of a sudden, this was never a problem for PHP7.0 before?

ppa:ondrej/php的软件包完整构建依赖于ppa:ondrej/apache2最近已更新到1.1.0的OpenSSL库,以及那些被PHP的最新版本回升。必须使用OpenSSL 1.1.0库更新ppa:ondrej/php以及此举的结果。

偶尔会发生一个或两个错误,只要臭虫在适当的位置填满,它就会被修复。

即使在相同的二进制文件中混合使用更多版本的OpenSSL也是完全安全的OpenSSL使用合适的SONAME s,并且共享库中的所有符号都是versioned