У меня есть библиотека, которую я собрал из исходников в версии, которая еще не доступна в архивах Debian. Другой пакет требует этого, и apt upgrade хочет установить более старую версию. Как я могу предотвратить это?

Подробности: у меня проблема с Sane, которая была исправлена в его последней версии (libsane: 1.0.27). В Debian самая последняя доступная версия - 1.0.26.

Я попытался закрепить это так:

Package: libsane
Pin: version 1.0.27
Pin-Priority: 900

но это не изменило попытки установить libsane при запуске apt upgrade.

3 ответа3

1

Вы должны использовать apt-get upgrade чтобы apt не устанавливал новые пакеты.

apt upgrade ведет себя как поведение, которое вы описали.

Из справочных страниц:

man apt-get upgrade раздела

Обновление используется для установки новейших версий всех пакетов, установленных в настоящее время [...], ни при каких обстоятельствах [...] пакеты, которые еще не установлены, извлекаются и устанавливаются.

man apt upgrade раздела

обновление используется для установки новейших версий всех пакетов, установленных в настоящее время [...]. Новые пакеты будут установлены, но существующие пакеты никогда не будут удалены.

1

Вы можете временно хранить определенные пакеты:

apt-mark hold libsane
0

Два самых простых варианта:

  • используйте пакет « equivs для создания фиктивного пакета. Расширенный учебник здесь.

  • измените файл /var/lib/dpkg/status удалив там нежелательную зависимость. Просто найдите пакет , о котором зависимости apt кляч и удалять соответствующие элементы из зависимостей линии. Например, отредактируйте строку Depends: libco (>= 2.14), libefivar (>= 30), libssl1.0.0 (>= 1.0.0) в Depends: libefivar (>= 30) если вы хотите выбросить libco и libssl1.0.0 требование.

Второй вариант требует, чтобы у вас был установлен этот пакет. Однако вы можете легко установить пакет с помощью команд apt-get download packagename и dpkg --ignore-deps= .

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