![Yum- 升级正在运行的软件包](https://linux22.com/image/36251/Yum-%20%E5%8D%87%E7%BA%A7%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BD%AF%E4%BB%B6%E5%8C%85.png)
Yum 的设计方式(或者底层系统)是否允许您在运行时安全地升级二进制文件?例如,您有 MySQL 5.5,并且您运行yum -y install mysql56-server
升级到 MySQL 5.6,它通常不会抱怨。这是否意味着可以这样做?任何需要的库或二进制文件是否已经加载到进程的内存上下文中?
答案1
升级包将会改变当前的内容磁盘,但不会改变什么是在记忆中已经。您必须重新启动服务才能加载新版本的二进制文件。
是否可以取决于应用程序。它会在某个时刻尝试动态加载尚未加载的库吗?那个图书馆还会存在吗?图书馆是否会发生某种变化而不再运作?
如果它是你关心的东西(比如mysql),我想不出有什么理由不安全并在更新包之前停止它。由于更新不会影响正在运行的进程,直到重新启动为止,因此您并没有避免必须关闭服务。
答案2
一般来说,更新的工作方式是删除并重新安装文件的新版本。根据标准 UNIX/Linux,在关闭该文件的所有打开实例之前,不一定会删除已删除的文件。运行正在更新的二进制文件的事物(注意共享库)不应受到影响。
话虽如此......但是,如果您完全担心完整性,我会在升级之前停止相关的关键操作和程序。
如果您真的想做好准备,无论如何都要准备好备份。