无法使用 apt-get 安装 PHP 包,给出 "E: Unable to locate package"

Unable to install PHP packages with apt-get, gives "E: Unable to locate package"

我实际上正在设置我的 vagrant vm(trusty-64,Ubuntu distribution v14.04)并在安装所有 ppa 时遇到问题:ondrej/php 包。

我试过默认方式安装php...

$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt-get update
$ sudo apt-get install php7.3

但是还是有这个问题:

E: Unable to locate package php7.3
E: Couldn't find any package by regex 'php7.3'

他似乎忽略了添加的存储库(它未在 apt-get update 中列出)但命令似乎没问题:

gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK

其实我也不知道怎么回事。也许有人有想法并且可以解释一下?非常感谢。

更新:

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.6 LTS
Release:        14.04
Codename:       trusty

used ubuntu/trusty64 vagrant box

这是最常见的 vagrant box,几乎没有预定义的设置。

source.list

/etc/apt/sources.list.d/ondrej-php-trusty.list
/etc/apt/sources.list.d/ondrej-php-trusty.list.save

它在源列表中,但仍然被忽略。例如。 apt-cache search php7 总是没有结果而不是列表。

我也破坏了盒子并安装了一个新的..但仍然是同样的问题。

晚上,

你运行将其作为裸机系统还是 vagrant 容器?

根据 PPA Launchpad webiste

的说明

那你运行:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

还列出了一个警告:
WARNING: add-apt-repository is broken with non-UTF-8 locales,
see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround
# LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php

您 运行 正在使用 non-default 语言环境吗?

ASK Ubuntu and also Here 上还有一个 post,可能对您有用。

您还可以仔细检查 Ondřej Surý 的 PPA 是否在您的来源列表中。

尝试 locate sources.listlocate *.list 并尝试找到 repo。

here 上有一份指南可能也有帮助。

我查看了存储库,似乎不再支持 14.04。尽管 dist 包中列出了 trusty,但当我查看池时,ubuntu 14.04 没有任何内容。

看这里:

http://ppa.launchpad.net/ondrej/php/ubuntu/pool/main/p/php7.3/

这可能解释了为什么当您 运行

sudo apt-get update

估计服务器更新等不及了;)

php 包裹似乎不再适用于盒子 "ubuntu/trusty64"(更多详情 here)。 我通过在 Vagrantfile 中设置 config.vm.box = "ubuntu/xenial64" 来纠正这个问题。