У меня есть Debian Jessie и я добавил backports (согласно этим инструкциям ):
echo "deb http://http.debian.net/debian jessie-backports main contrib non-free" | sudo tee /etc/apt/sources.list.d/backports.list
(Я сделал это, чтобы получить более новое ядро, как мне было нужно, для некоторого оборудования в моем ноутбуке.)
В инструкциях говорится, что ничего не должно произойти, если я не прошу явно портировать пакет. например apt-get -t jessie-backports install "package"
.
Однако теперь у меня, похоже, полная загрузка моей системы из бэкпортов, и один пакет деинсталлирован, потому что это зависит от точной версии чего-то, что было обновлено до бэк-портов.
Итак, мой вопрос:
- Как мне сначала это остановить, чтобы больше не устанавливалось бэкпортов?
- Как мне удалить существующие бэкпорты?
Примечание: это получает список установленных пакетов из бэкпортов (и в формате, который может быть передан apt-get install
, по какой-то причине вставка sudo apt-get install
вместо эха в конце конвейера не работает):
cat /var/log/dpkg.log.1 |grep -v linux | grep -v xserver | grep -v firmware | grep "status installed" | grep bpo | cut -d" " -f 5 | cut -d: -f 1 | xargs -i{} -n1 bash -c "dpkg-query -s {} >/dev/null && echo {}" | sed -r -e "s~.*~\0/jessie~" | xargs echo
Внимание:
Некоторые из пакетов устанавливаются автоматически, поэтому, если вы переустановите их все, эти автоматически установленные пакеты будут помечены как установленные вручную. Таким образом, не удаляется, когда не нужно.
У кого-нибудь есть идеи, как это решить?
apt-get
илиdpkg
. Пока вы не паникуете, вам не о чем беспокоиться. Большинство проблем с упаковочными системами вызвано тем, что люди паникуют и реагируют, не задумываясь ... принимайте это медленно и подумайте, прежде чем действовать.apt-get
не будет понижать версию уже установленного пакета, если вы явно не укажете его. И @richard сказал, что он хотел бы установитьjessie
пакеты по умолчанию, если он явно не указалjessie-backports
- я предполагаю, что желание относится и к пакетам ядра.stable
+,stable-backports
вероятно, больше заботятся о пиннинге, чем я, и приложили усилия, чтобы узнать больше об этом. Я имею тенденцию запускатьunstable
и регулярно синхронизировать мои системы с последним sid (со случайными дополнениями изexperimental
), поэтому мне не нужно прикалывать. Единственный раз, когда я интенсивно использовал его, были годы назад во время перехода на gnome3, когда я не хотел заменять свои пакеты gnome2 - я помню, что поддержание постоянно меняющегося списка пакетов для закрепления было PITA. С тех пор я переключился на xfce и очистил гнома.Похоже, вы не правильно настроили
/etc/apt/preferences
. Следующее будет препятствовать тому, чтобы что-либо устанавливалось из jessie-backports, ожидайте того, что говорят ему установить (например, ядро с портированием) У вас по-прежнему будут проблемы, если для указанных пакетов требуются другие пакеты из бэкпортов, которых нет в списке.Если вы хотите получить список установленных пакетов с обратным портированием, вы можете использовать следующий скрипт (или его части):
Если вы хотите понизить версию любого пакета, перечисленного вышеупомянутым сценарием, добавьте следующее к
/etc/apt/preferences
:Затем запустите:
источник
Проверьте свою конфигурацию закрепления для apt в / etc / apt / Предпочтения и /etc/apt/preferences.d/
Возможно ли, что вы добавили пользовательскую конфигурацию закрепления и забыли об этом? Это единственный способ, который я могу придумать, - это сделать предпочтение бэкпортам, как это кажется вам. В противном случае, это просто получение зависимостей - которые требуют указанные вами пакеты.
Официальные бэкпорты уже закреплены ниже (100), чем у Джесси в бэкпортированных пакетах. Файл релиза в репо бэкпортов. Вам не нужно делать какие-либо подходящие настройки, чтобы apt предпочел jessie, а не jessie-backports.
источник