Как CFEngine может проверить, доступно ли обновление для пакета

Это вопрос cfengine2 и 3. Я пытаюсь получить предупреждение, если пакет установлен и его можно обновить. Есть ли способ сделать это?

Как в cfengine3 ниже.

classes:

    "pkginstalled"
         expression => fileexists("/pkgname");


reports:

     Hr05|Hr16.ubuntu.debian.redhat.pkginstalled::
         "Package needs to be upgraded."

Примерно так, но если пакет не может быть обновлен, не сообщайте ничего. Выше просто сообщает обо всем.

2 ответа

Документация CFEngine гласит:

"Версии определенного программного обеспечения описываются совершенно по-разному, вызывая много путаницы. Например, распространенной моделью является использование основного номера версии, дополнительного номера версии и номера выпуска исправления, например, 3.1.5. Однако многие сопровождающие берут свои собственные дополнения, такие как 3.1.5-2 или 3.1.5-2.el5. Поскольку эти модели зависят от операционной системы, программного обеспечения и выпуска, вы должны знать номера версий, используемые в ваших операционных системах, и обращаться к их правильно. CFEngine не может надежно угадать эти вещи для вас. " https://auth.cfengine.com/archive/manuals/st-packages

При этом вы можете запросить у apt и yum обновляемые пакеты, например:

  • apt-get -s upgrade
  • обновления списка ням

Это полезно только если вы используете менеджер пакетов, конечно. Это означает, что вы должны иметь возможность поместить результаты в слайд и вывести их в отчет. Если вы развертываете пакеты другим способом, все становится сложнее.

РЕДАКТИРОВАТЬ: Если вы хотите сделать это для определенных пакетов, вы можете сделать это, указав имя пакета после "upgrade" в команде apt, но я не знаю, как это сделать с помощью yum. Лучшее, что я могу придумать, - это использовать функцию cfengines returnzero с "обновлениями списка yum | grep $packagename" или similair. Это чувствует себя немного неуклюжим, хотя

В 3.6 есть обещание "package_latest", определенное в стандартной библиотеке. Что он делает, он пытается обновить пакет до максимально доступной версии. Имейте в виду, что для систем на основе Debian (или, скорее, на основе dpkg) существует ошибка, которую необходимо исправить.

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