我在 Ubuntu 上使用 Vagrant box(实际上是 Homestead)。当我使用 PHP 5.6 box 进行
php -v
我越来越:
PHP 5.6.13-1+deb.sury.org~trusty+3 (cli)
所以很明显这是 PHP 5.6.13。
但是当我使用 PHP 7 运行 box 时,我得到了:
PHP 7.0.0-2+deb.sury.org~trusty+1 (cli) ( NTS )
我真的不确定它是 PHP 7.0 还是 PHP 7.0.2(我不明白-2
这里的 PHP 版本是什么)。
我Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)
在这个盒子里奔跑
当我跑步时:
dpkg --get-selections | grep php
我越来越:
php-common install
php-curl install
php-gd install
php-imap install
php-mysql install
php-pgsql install
php-sqlite3 install
php7.0-cli install
php7.0-common install
php7.0-curl install
php7.0-dev install
php7.0-fpm install
php7.0-gd install
php7.0-imap install
php7.0-json install
php7.0-mysql install
php7.0-opcache install
php7.0-pgsql install
php7.0-sqlite3 install
当我跑步时:
sudo apt-get upgrade php-common
我现在得到的信息是:
php-common is already the newest version.
php-common set to manually installed.
所以问题是 - 如果是 PHP 7.0 而不是 7.0.2,我该如何轻松更新到最新的 7.0.2,或者它是否尚未作为 Ubuntu 的软件包提供?
编辑
根据建议我已经运行:
sudo apt-get update
和
sudo apt-get upgrade
有关于安装 PHP 7.0.2 的信息,但是当我运行时php -v
仍然收到:
PHP 7.0.0-2+deb.sury.org~trusty+1 (cli)
现在当我跑步的时候
sudo apt-get upgrade
我越来越:
vagrant@homestead:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
libssl-dev nfs-common openssl php7.0-cli php7.0-dev php7.0-fpm
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.
当我跑步时:
apt-cache policy php7.0-cli
我越来越:
vagrant@homestead:~$ apt-cache policy php7.0-cli
php7.0-cli:
Installed: 7.0.0-2+deb.sury.org~trusty+1
Candidate: 7.0.2-4+deb.sury.org~trusty+1
Version table:
7.0.2-4+deb.sury.org~trusty+1 0
500 http://ppa.launchpad.net/ondrej/php-7.0/ubuntu/ trusty/main amd64 Packages
*** 7.0.0-2+deb.sury.org~trusty+1 0
100 /var/lib/dpkg/status
答案1
第一部分,安装了什么。
这一切都回到了软件包版本控制方案,以及为什么你会感到困惑。所以,让我们把它分解成各个部分。假设它符合典型的 Debian 版本控制等,那么...
以 php7 为例:
PHP 7.0.0-2+deb.sury.org~trusty+1
该字符串解析如下:
PHP
= 软件名称7.0.0
= 该软件的版本(来自 PHP 自己的版本控制方案)-2
= 软件包修订号 - 即已进行了多少个不同的软件包更改 - 这将是“第二个软件包”,这意味着他们quilt
在第二个版本中对软件包进行了更改或应用了补丁。+deb.sury.org
表示存储库源 - 它来自deb.sury.org
repos,实际上是在 Launchpad 上运行的 PPA,其中包含由运行网站的人制作的软件包deb.sury.org
。~trusty+1
- 这表示对存储库完成了特定于版本的其他更改 - 这是一个 Ubuntu Trusty 软件包,并且很可能是该软件包的第一个或第二个修订版(取决于是否曾经有过+0
),特定于 Trusty。
总结:这是一个 PHP 7.0.0 包,但自最初的 PHP 7.0.0 包以来已经经历了几次修订。
第二部分,如何获取 PHP 7.0.2。
您正在使用的存储库是 PPA - 很可能这个。
我被告知 7.0.2 可用,您需要运行apt-get update && apt-get upgrade
。这应该会为您带来正确的版本。如果没有,请尝试使用,apt-get dist-upgrade
因为可能需要添加其他依赖项,因此升级被阻止。