Не удалить флаг на Apt?

Есть ли в инфраструктуре пакетов Debian / Ubuntu какой-то способ маркировки пакетов, чтобы они никогда не удалялись, независимо от того, закреплены ли другие пакеты?

Моя проблема в том, что иногда пакеты устанавливаются Puppet ( исходя из нестандартных репозиториев, конечно) заставляют другие пакеты удаляться - в частности, openssh- {server, client}.

Как это происходит, пакет A и B зависит от разных версий пакета C. Если A установлен и один запрашивает установку B, то изменяется версия C. Новая версия C несовместима с A, поэтому A удаляется.

Самое смешное в том, что процесс затем отменяется, так как при следующем запуске Puppet замечает, что A не установлен и пытается установите его.

Итак, в основном, я хочу убедиться, что A never удаляется, что предотвратит установку B. Это будет сообщено как ошибка, из-за чего я знаю об этой проблеме.

Если кто-то заботится, Puppet использует следующую команду для установки пакетов:

/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install <package>
3
задан 23 May 2012 в 19:45

14 ответов

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 25 July 2018 в 18:49

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 25 July 2018 в 18:49

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 2 August 2018 в 00:58

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 2 August 2018 в 00:58

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 4 August 2018 в 16:29

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 4 August 2018 в 16:29

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 6 August 2018 в 01:09

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 6 August 2018 в 01:09

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 7 August 2018 в 18:35

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 7 August 2018 в 18:35

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 10 August 2018 в 07:15

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 10 August 2018 в 07:15

Вам нужно «удержать» пакеты, чтобы apt-get upgrade никогда удалял их как часть обновления до более новой версии.

echo "package-name hold" | sudo dpkg --set-selections

Однако обратите внимание, что явно выполнение apt-get install package-name WILL отменяет трюм, а apt-get remove package-name удаляет его.

Если вы привяжете его к определенной версии с приоритетом 1001 или выше, apt-get install НЕ обновит его, но его все еще можно удалить.

3
ответ дан 15 August 2018 в 19:15
  • 1
    Мне нужно пройти через dpkg? Разве нет файла конфигурации для него? Кроме того, будет ли hold предотвращать их обновление с помощью автоматических обновлений? – Daniel C. Sobral 21 May 2012 в 20:09
  • 2
    Настоятельно рекомендуется, чтобы вы не работали с файлами конфигурации dpkg. Если вы хотите использовать графический интерфейс, вы также можете воспользоваться Synaptic и использовать щелчок правой кнопкой мыши и заблокировать этот пакет », но я видел некоторые сообщения о том, что блокировка не соблюдается. – ish 21 May 2012 в 20:11
  • 3
    Удержание должно помешать их модернизации. Только явный apt-get install held-package переопределит его. – ish 21 May 2012 в 22:54
  • 4
    На самом деле, я хочу, чтобы текстовые файлы обновлялись через Puppet. GUI - самая дальняя вещь из того, что я хочу. Тем не менее, я увидел, что пакеты, которые были случайно удалены, похоже, уже были в HOLD, поэтому я теперь подозрительно отношусь к этому методу. Кроме того, я хочу, чтобы они обновлялись, как обычно, просто не удалялись (особенно учитывая их чувствительность к проблемам безопасности). – Daniel C. Sobral 22 May 2012 в 00:00
  • 5
    Вы должны объяснить свой сценарий обновления и / или предоставить более подробную информацию. Пакеты не удаляются, если они не обновлены или конфликт не существует; вы должны apt-get autoremove их. – ish 23 May 2012 в 11:52

Это, вероятно, можно решить, добавив это в apt.conf [.d]:

Aptitude::Always-Use-Safe-Resolver "true";

И в site.pp в марионеточном:

Package { provider => 'aptitude' }

Haven 't проверял, что правильно, хотя.

1
ответ дан 15 August 2018 в 19:15
  • 1
    На самом деле, просто заметил, что APT :: Get :: Remove опция apt-get, также должна ее решить. Командная строка --no-remove. – user67212 30 May 2012 в 20:59
  • 2
    Это общий флаг, не так ли? Я хочу отметить определенные пакеты. – Daniel C. Sobral 30 May 2012 в 22:42

Другие вопросы по тегам:

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