GCP apt-get 安装和更新停止正常工作

Sam*_*kov 0 debian google-compute-engine google-cloud-platform

我有 2 个计算引擎实例:

一个跑了半年左右,今天第一次得到:

Err:11 http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-stretch InRelease The following signatures couldn't be verified because the public key is not available:
Run Code Online (Sandbox Code Playgroud)

另一个我今天刚刚从一个干净的 Debian 9 映像设置,它不允许我 apt-get 安装任何东西:

E: Unable to locate package php7.2-fpm
E: Couldn't find any package by glob 'php7.2-fpm'
E: Couldn't find any package by regex 'php7.2-fpm'
Run Code Online (Sandbox Code Playgroud)

以前没有那个。

Gal*_*one 5

关于第二个问题,我相信你必须运行:

$ apt-get update
Run Code Online (Sandbox Code Playgroud)

apt-get update:用于从其来源重新同步包索引文件。可用包的索引是从 /etc/apt/sources.list 中指定的位置获取的。应该始终在升级或 dist-upgrade 之前执行更新。

有时您感兴趣的包不是标准的一部分,source.list您需要仔细添加源代码并仔细检查它们。

例如,php7.2-fpm您需要更新它们

sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg 
https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
sudo apt install php7.2 php7.2-common php7.2-cli php7.2-fpm
Run Code Online (Sandbox Code Playgroud)

关于第一个问题:这是谷歌计算引擎的一个临时问题,现在一切都应该恢复正常行为,但如果不是这种情况,您可以强制手动更新运行的旧密钥:

$ curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
Run Code Online (Sandbox Code Playgroud)