Есть ли в инфраструктуре пакетов 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>
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
Это, вероятно, можно решить, добавив это в apt.conf [.d]:
Aptitude::Always-Use-Safe-Resolver "true";
И в site.pp в марионеточном:
Package { provider => 'aptitude' }
Haven 't проверял, что правильно, хотя.
Вам нужно «удержать» пакеты, чтобы 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
НЕ обновит его, но его все еще можно удалить.
dpkg
? Разве нет файла конфигурации для него? Кроме того, будет ли hold
предотвращать их обновление с помощью автоматических обновлений?
– Daniel C. Sobral
21 May 2012 в 20:09
dpkg
. Если вы хотите использовать графический интерфейс, вы также можете воспользоваться Synaptic и использовать щелчок правой кнопкой мыши и заблокировать этот пакет », но я видел некоторые сообщения о том, что блокировка не соблюдается.
– ish
21 May 2012 в 20:11
apt-get install held-package
переопределит его.
– ish
21 May 2012 в 22:54
HOLD
, поэтому я теперь подозрительно отношусь к этому методу. Кроме того, я хочу, чтобы они обновлялись, как обычно, просто не удалялись (особенно учитывая их чувствительность к проблемам безопасности).
– Daniel C. Sobral
22 May 2012 в 00:00
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 проверял, что правильно, хотя.