Как установить один пакет из теста Debian или нестабильно на стабильном?

Я хочу установить единый пакет (и его зависимости, но только в той степени, в какой они не выполняются в Wheezy) от Debian Jessie на моей системе Wheezy, не обновляя «все и кухонную раковину» до версий Jessie. В частности, я хотел бы установить kpcli , который доступен в Jessie, но не в Wheezy.

Все, что я нашел, указывает на то, что я должен добавить репозитории Jessie в список моих источников, установить пиннинг, чтобы все было в хриплом, и только взять один пакет от jessie, и он почти полностью встанет на свои места. Однако для меня это не входит. Если я создам файл /etc/apt.d/sources.list.d/jessie.list со следующим содержимым:

deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main

, а затем создайте /etc/apt/preferences.d/jessie с помощью:

Package: *
Pin: release a=wheezy
Pin-Priority: 1001

Package: kpcli
Pin: release a=jessie
Pin-Priority: 450

и запустите apt-get -u update, а затем apt-get -u install kpcli/jessie, то я ожидаю, что apt-get возьмет kpcli и возможно небольшую часть других пакетов от Jessie и оставит остальную часть моей установленной системы нетронутой. (Моя система - это полностью обновленная установка Wheezy.) Альтернативно, если бы я получил приоритет выводов слишком низкий, я бы ожидал, что он ничего не сделает. Скорее, в моей системе apt-get хочет обновить несколько сотен пакетов.

Что нужно, точно, необходимо установить только этот один пакет версии Jessie, оставив остальную часть моей системы Wheezy нетронутой?

Обратите внимание, что в этом конкретном случае программное обеспечение фактически написано на Perl, поэтому нет компиляции для двоичного кода или чего-то подобного; однако существует несколько зависимостей модуля Perl. Следовательно, одной из возможных альтернатив было бы установить .deb (загружаемый вручную), используя то, что только (1) позволяет указать один локальный .deb-архив, который должен быть установлен, например dpkg -i и (2) управляет зависимостями разумным способом, который обычный dpkg -i не делает , Тем не менее, для всех поисковых запросов, которые я делал несколько раз, и не смог найти простого руководства для того, как это сделать, универсальное решение (которое работает для двоичных, скомпилированных пакетов) .

34 голоса | спросил Michael Kjörling 3 Jpm1000000pmFri, 03 Jan 2014 18:23:18 +040014 2014, 18:23:18

1 ответ


20

На самом деле есть способ сделать это, не используя приписывание /приоритеты вообще. Вместо этого вы можете указать, какую версию по умолчанию вы будете устанавливать, из которой будет использоваться, если не указано иное, с использованием целевого параметра release. Это работает так же, если вы хотите только установить выбранные пакеты, например. Backports.

Я покажу это для установки пакетов из Stretch в Jessie, поскольку они являются текущими стабильными /тестирования, но он работает так же, как для установки пакетов Jessie в Wheezy, как это было изначально спрошено.

Сначала добавьте стрейч в качестве репозитория, например. в /etc/apt/sources.list.d/stretch.list:

deb http://ftp.debian.org/debian stretch main

Затем, чтобы установить выпуск по умолчанию, создайте файл, например /etc/apt/apt.conf.d/default-release, содержащий:

APT::Default-Release "jessie";

(В Wheezy я думаю, что apt.conf.d не существует, и вам нужно будет поместить этот фрагмент в /etc/apt/apt.conf)

Затем установка пакета из теста так же проста, как aptitude -t stretch install kpcli, если вам не нужно беспокоиться о приостановке приоритетов.

Примечание: @amc указал в комментариях, что если вы используете apt вместо aptitude, вы должны использовать "stable" как Default-Release вместо "jessie". Спасибо! (Конечно, вы можете использовать aptitude с этим параметром.)

ответил Florian Jacob 7 Jpm1000000pmThu, 07 Jan 2016 16:36:18 +030016 2016, 16:36:18

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132