当前位置: 首页 > 科技观察

Linux下如何升级软件版本

时间:2023-03-12 11:39:32 科技观察

简介在使用Linux的时候,一般有几种软件安装方式:系统包管理器安装、源码编译、二进制包,以及广泛使用的Snap、AppImage、Flatpak等。桌面系统。升级由于软件存在一些漏洞,需要定期更新。这时候不同方式安装的软件升级是不一样的。1、安装了系统包管理器,可以直接使用包管理工具升级。比如在CentOS上可以直接使用yumupdatenginx进行升级。这个时候所有的依赖也会升级。优点:操作简单,一条命令即可升级稳定。系统自带的包一般都是验证后发布的,比较稳定。缺点:版本不易控制,通常会自动升级到最新版本。升级会导致依赖包再升级,可能会出现异常。2.源码安装,将新版本编译到新路径。编译安装源码时,一般可以指定安装路径,例如:./configure--prefix=/opt/nginx-1.18,先编译到新路径,再切换服务。优点:版本容易控制,可以根据需要快速回滚的版本编译安装。如果有问题,可以直接指向旧目录完成回滚。最终的稳定性需要自己验证,需要自己解决依赖包。3.二进制包安装完成后,解压到新路径。二进制包加上执行位就可以直接执行了。系统包管理器的安装包也是二进制的,只是安装系统的规范,并将文件放在相应的目录中。二进制包安装,比如jdk,可以直接使用编译好的tar包进行部署,只要解压就可以直接运行。优点:部署快,单独打包的二进制包一般对系统包的依赖较小,解压后可以直接运行缺点:需要官方二进制包,只支持指定的release版本6.AppImageAppImage将整个软件打包成一个AppImage文件包,一个该包包含所有功能,几乎可以在所有的linux发行版中使用。优点:部署速度快,直接加执行位即可执行可以在多个release中运行缺点:需要官方提供,也可以自己打包。打包后的文件还是比较大的。(不过没关系,非常适合桌面Linux)5.Snap、FlatpakSnap、Flatpak都是为了统一Linux上的包格式,让一个软件可以运行在各种Linux发行版和操作系统上。优点:部署速度快,有自己的应用市场,可以直接搜索安装可以在多个版本中运行缺点:开发比较晚,还有很多需要改进的地方二进制包部署,互不影响升级或回滚时。尽量不要使用系统组件,部署服务!刚遇到的坑!开发使用系统自带的Python,手动安装第三方包,然后运行服务;导致系统升级升级python相关的依赖包,导致服务异常up。