У меня есть сервер под управлением Debian Stretch, на который мне нужно установить PHP 7.1, который недоступен в стандартных репозиториях Stretch, но в Testing aka 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% уверен, что в прошлом успешно выполнял правильное закрепление с точно такими же настройками. Кто-нибудь знает, что здесь происходит?
Попробуйте удалить пустую строку между Пакет: и Штырь::
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650