2

Я немного озадачен тем, как теперь работает getdeb.net . В прошлый раз, когда я получил посылку, было некоторое время назад; в этот момент процедура заключалась в том, что вы просто скачивали .deb для каждого пакета, который вы хотите установить / обновлять, а затем устанавливали его с помощью dpkg -i . Однако неумолимый марш прогресса предоставил свои трубы и этой системе, и установки getdeb теперь выполняются через их репозиторий, который зарегистрирован с помощью apt в /etc/apt/sources.list.d , после установки одного пакета, который вносит изменения в базу данных apt.

Я установил этот пакет и обнаружил, что aptitude dist-upgrade теперь хочет обновить множество пакетов в моей системе, которые не были готовы к обновлениям до установки пакета getdeb. Если я переименую файл /etc/apt/sources.list.d/getdeb.list во что-то с другим расширением, затем aptitude update && aptitude dist-upgrade , он перестанет хотеть обновлять пакеты.

Итак, я понял, что по умолчанию теперь обновляются все пакеты до версии, доступной на getdeb. Это не особенно уместно, поскольку эти пакеты не так хорошо протестированы, как официально выпущенные версии.

Есть ли где-нибудь параметр конфигурации, который будет препятствовать обновлению пакетов до версий из репозитория getdeb, если только это действие не выбрано специально? Я хотел бы иметь возможность выбирать, какие пакеты обновляются через getdeb.

Обновить

В соответствии с рекомендациями @ ~ joaopinto, я создал файл /etc/apt/preferences , содержащий следующее:

Package: *
Pin: release o=GetDeb
Pin-Priority: 50

В процессе изучения этого я обнаружил, что в apt есть ошибка, которая не позволяет искать каталог /etc/preferences.d . Так что ... не пытайтесь использовать этот каталог.

Если файл настроек настроен, как указано, aptitude dist-upgrade не будет пытаться обновить пакеты до их версий getdeb. Приоритет 50 в основном означает, что пакеты будут установлены из getdeb, только если они недоступны из других источников.

На данный момент я ищу удобный способ обновить пакет до версии getdeb или до самой последней версии (все в порядке) и обновить / установить зависимости, как требуется. Обычно я делаю это из командной строки, но я обнаружил, что мне нужно перейти к проклятой версии aptitude , чтобы обновить пакет до определенной версии. Это не означает, что нет способа сделать это из командной строки, но если он есть, его нельзя легко увидеть из быстрой документации aptitude.

В рамках aptitude мне пришлось выбрать нужную версию нужного пакета для обновления, а затем разобраться с «конфликтами», созданными из-за зависимостей версии этого пакета от более новых версий других пакетов. Это было достаточно легко решить - мне просто нужно было выбрать версии этих пакетов, созданные с помощью getdeb, - но это кажется ненужной проблемой. Есть ли более аккуратный способ сделать это?

обновить тоже

Как объясняет @Ryan Thompson, версии могут быть переданы в apt-get - или, как я обнаружил, в режиме командной строки aptitude - суффиксом =VERSION к имени пакета, где VERSION - это та же строка, что указана в aptitude или apt-cache show .

Таким образом, делая что-то вроде aptitude install rosegarden=1:10.04-1~getdeb1 установит этот пакет из репозитория getdeb, даже если пакеты GetDeb закреплены, как описано выше. Я сделал это и мне было предложено подтвердить обновление зависимого пакета rosegarden-data до версии, предоставленной getdeb.

4 ответа4

4

apt не предоставляет удобный для этого способ, вам нужно использовать apt pinning, проверьте следующий URL:http://jaqque.sbih.org/kplug/apt-pinning.html

Чтобы не допустить обновления любого пакета с помощью getdeb, вам нужно создать /etc /apt_preferences с: Package: * Pin: release o = GetDeb Pin-Priority: 50

1

это должно выглядеть так, но без звездочки после пустой строки. Не допускаются пустые строки между package, pin и pin-priority в /etc /apt /preferences. Не знаю почему, эта страница автоматически изменила макет.

Пакет: *

Пин: происхождение archive.getdeb.net
Приоритет пин-кода: -1

0

Вы ищете что-то под названием пиннинг. Я никогда не мог понять это сам, поэтому я позволю другим указать вам правильное направление.

-1

После нескольких часов попыток я наконец-то нашел решение:

Package: *
Pin: origin archive.getdeb.net       
Pin-Priority: -1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .