Назад | Перейти на главную страницу

Debian: Как правильно обновить MONIT?

я сделал sudo apt-get install monit но он устанавливает только версию 5.9, а текущая версия - 5.17.1. Так я и сделал wget https://mmonit.com/monit/dist/binary/5.17.1/monit-5.17.1-linux-x64.tar.gz чтобы загрузить предварительно скомпилированные двоичные файлы, и теперь у меня есть эти файлы:

monit-5.17.1/bin/monit
monit-5.17.1/conf/monitrc
monit-5.17.1/man/man1/monit.1

Я проверил, где установлен MONIT с dpkg -S monit | sort:

monit: /etc/default/monit
monit: /etc/init.d/monit
monit: /etc/logrotate.d/monit
monit: /etc/monit
monit: /etc/monit/conf.d
monit: /etc/monit/monitrc
monit: /etc/monit/monitrc.d
monit: /etc/monit/monitrc.d/acpid
monit: /etc/monit/monitrc.d/apache2
monit: /etc/monit/monitrc.d/at
monit: /etc/monit/monitrc.d/cron
monit: /etc/monit/monitrc.d/mdadm
monit: /etc/monit/monitrc.d/memcached
monit: /etc/monit/monitrc.d/mysql
monit: /etc/monit/monitrc.d/nginx
monit: /etc/monit/monitrc.d/openntpd
monit: /etc/monit/monitrc.d/openssh-server
monit: /etc/monit/monitrc.d/pdns-recursor
monit: /etc/monit/monitrc.d/postfix
monit: /etc/monit/monitrc.d/rsyslog
monit: /etc/monit/monitrc.d/smartmontools
monit: /etc/monit/monitrc.d/snmpd
monit: /etc/monit/templates
monit: /etc/monit/templates/rootbin
monit: /etc/monit/templates/rootrc
monit: /etc/monit/templates/rootstrict
monit: /etc/pam.d/monit
monit: /usr/bin/monit
monit: /usr/share/bug/monit
monit: /usr/share/doc/monit
monit: /usr/share/doc/monit/changelog.Debian.gz
monit: /usr/share/doc/monit/CONTRIBUTORS
monit: /usr/share/doc/monit/copyright
monit: /usr/share/doc/monit/examples
monit: /usr/share/doc/monit/examples/monit.service
monit: /usr/share/doc/monit/examples/monit.upstart
monit: /usr/share/doc/monit/NEWS.Debian.gz
monit: /usr/share/doc/monit/README.Debian
monit: /usr/share/doc/monit/README.gz
monit: /usr/share/lintian/overrides/monit
monit: /usr/share/man/man1/monit.1.gz
monit: /var/lib/monit
monit: /var/lib/monit/events

Я знаю, как обращаться с conf-файлом monitrc но я не знаю, в каких путях мне нужно заменить файл monit (только в /usr/bin/monit или где-то еще?) и если это вообще правильный способ обновления.

Вы почти никогда не должны пытаться смешивать и сопоставлять пакет, установленный с помощью apt, с пакетами, которые вы устанавливаете вручную из tar.gz или какого-либо другого стороннего формата пакетов.

Debian в основном замораживает версию пакетов при выпуске и не выпускает никаких новых версий. Безопасность и критические ошибки будут перенесены по мере необходимости, но в основном версия пакета, который вы получаете при выпуске, стабильный и будет той же версией пакета на протяжении всего срока действия этого выпуска.

Если вы хотите использовать сторонний пакет, сначала вам следует удалить версию пакета Debian. Затем установите сторонний пакет. Затем вам нужно будет выяснить, как интегрировать его в сценарии запуска, ротацию журналов и т. Д. Практически ничего из этого не происходит автоматически для сторонних материалов. Вам также необходимо разработать план обновления, чтобы отслеживать проблемы безопасности в пакете.

Вы также можете попробовать и обратный перенос пакета, но это также большая работа, и вы должны самостоятельно поддерживать все обновления безопасности.

В любом случае, когда дело доходит до Debian в 99% случаев, вам следует избегать попыток использовать самую последнюю / лучшую версию и просто придерживаться выпущенной версии.

Я создал гибридную установку, так как мне очень нужна была новая версия. Тем не менее я попытался разделить две установки:

wget https://mmonit.com/monit/dist/binary/5.22.0/monit-5.22.0-linux-x64.tar.gz
tar zxvf monit-5.22.0-linux-x64.tar.gz
sudo cp -a monit-5.22.0 /usr/local/

cd /usr/bin/
sudo mv monit monit.bak
sudo ln -s /usr/local/monit-5.22.0/bin/monit

cd /usr/share/man/man1/
sudo mv monit.1 monit.1.bak
sudo mv monit.1.gz monit.1.gz.bak
sudo ln -s /usr/local/monit-5.22.0/man/man1/monit.1

В Ubuntu я обычно получаю файл .deb из более новой версии и устанавливаю его с помощью

dpkg -i updated-monit.deb

подобно http://packages.ubuntu.com/trusty/admin/monit или http://packages.ubuntu.com/xenial/admin/monit

Имейте в виду, что этот метод не обрабатывает зависимости, как это сделали бы apt / aptitude. Также в некоторых версиях monit зависимость от libssl был обновлен и не может работать с вашей текущей версией.