我有一台运行 Debian Stretch 的服务器,需要在上面安装 PHP 7.1,但 Stretch 的默认存储库中没有 PHP 7.1,测试版(又名 Buster)中却有。我尝试使用 apt pinning 添加优先级较低的 Buster 存储库,因此只有我指定 Buster 中的软件包时才会安装它们。
我添加了以下内容(其他内容不变)/etc/apt/sources.list
:
# buster to get php 7.1 for nextcloud
deb http://ftp.de.debian.org/debian/ testing main
deb-src http://ftp.de.debian.org/debian/ testing main
deb http://security.debian.org/debian-security testing/updates main
deb-src http://security.debian.org/debian-security testing/updates main
我01-buster
在(空的)/etc/apt/preferences.d
目录中创建了一个名为的文件,其内容如下:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
现在,当我运行时apt update
,我得到以下输出:
Hit:1 http://security.debian.org/debian-security stretch/updates InRelease
Ign:2 http://ftp.de.debian.org/debian stretch InRelease
Hit:3 http://security.debian.org/debian-security testing/updates InRelease
Hit:4 http://ftp.de.debian.org/debian testing InRelease
Hit:5 http://ftp.de.debian.org/debian stretch-updates InRelease
Hit:6 http://ftp.de.debian.org/debian stretch Release
Reading package lists... Done
E: Invalid record in the preferences file /etc/apt/preferences.d/01-buster, no Package header
其他命令,例如apt search php
或apt policy
返回相同的错误。
我 95% 确信我过去曾使用完全相同的设置成功完成过 apt 固定。有人知道这里发生了什么吗?
答案1
尝试删除之间的空白行包裹:和别针::
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650