Как предотвратить обновление apt от установки вручную установленной библиотеки
360
Angelo Fuchs
У меня есть библиотека, которую я собрал из исходников в версии, которая еще не доступна в архивах 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 ответа на вопрос
1
Angelo Fuchs
Вы должны использовать, apt-get upgradeчтобы предотвратить установку новых пакетов.
apt upgrade ведет себя как поведение, которое вы описали.
Обновление используется для установки новейших версий всех пакетов, установленных в настоящее время [...], ни при каких обстоятельствах пакеты [...], еще не установленные, извлекаются и устанавливаются.
обновление используется для установки новейших версий всех пакетов, установленных в настоящее время [...]. Новые пакеты будут установлены, но существующие пакеты никогда не будут удалены.
1
grawity
Вы можете временно хранить определенные пакеты:
apt-mark hold libsane
это сработало. Не могли бы вы уточнить, что это делает и когда «временно» заканчивается?
Angelo Fuchs 7 лет назад
0
0
styrofoam fly
Два самых простых варианта:
используйте 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=команды.
не станет ли второй вариант спорным после следующего обновления?
Angelo Fuchs 7 лет назад
0
@AngeloFuchs нет, не будет. Но повторная установка этого пакета может изменить его запись в файле состояния.
styrofoam fly 7 лет назад
0
Второй вариант у меня не работает. Я удалил «libsane» из зависимостей «xsane», но «apt upgrade» хочет обновить «xsane» и установить «libsane».
Angelo Fuchs 7 лет назад
0
Как я уже сказал, повторная установка этого пакета может изменить его запись в файле состояния. Установите новую версию `xsane` с помощью` apt-get download` и `dpkg --ignore-deps ...`, а затем удалите ее зависимости из файла `status`. `apt upgrade` будет работать нормально.
styrofoam fly 7 лет назад
0