Я немного озадачен тем, как теперь работает 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.