我安装了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
还是在其他地方?)以及这是否是正确的升级方法。
答案1
您几乎永远不应该尝试将通过 apt 安装的软件包与您手动安装的从 tar.gz 或其他第三方软件包格式的软件包混合和搭配。
Debian 在发布时基本上会冻结其软件包版本,并且不会发布任何新版本。安全性和关键错误将根据需要进行反向移植,但发布时获得的软件包版本大多是稳定的并且在该发布的整个生命周期内将是同一版本的软件包。
如果您想使用第三方软件包,首先您应该卸载该软件包的 Debian 版本。然后安装第三方软件包。然后您必须弄清楚如何将其集成到启动脚本、日志轮换等方面。对于第三方产品,这些几乎都不会自动发生。您还需要制定升级计划来监控软件包的安全问题。
你也可以尝试反向移植软件包,但这也需要大量工作,并且您必须自己维护任何安全更新。
无论如何,当谈到 Debian 时,99% 的时间里,您都会希望避免尝试使用最新/最好的版本,而只需坚持使用已发布的版本。
答案2
由于我确实需要新版本,因此我确实创建了混合安装。我仍然尝试将两个安装分开:
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
答案3
在 Ubuntu 上,我通常会从较新的版本中获取 .deb 文件,然后使用以下命令进行安装
dpkg -i updated-monit.deb
喜欢http://packages.ubuntu.com/trusty/admin/monit或者http://packages.ubuntu.com/xenial/admin/monit
请注意,此方法不像 apt/aptitude 那样处理依赖项。此外,在某些版本的 monit 中,依赖项库已更新,无法与您当前的版本兼容。