CentOS服务器上,很多人会遇到一个情况:想用的软件在yum源里找不到linux文本编辑器,或者版本太旧。这时候,tar.gz源码包就成了最直接的解决方案。我这些年维护过不少Linux服务器,对这个流程再熟悉不过,从解压到编译再到配置,每一步都有讲究。
解压之前先看清文件结构
拿到一个tar.gz文件,第一步当然是解压。命令很简单,tar -xzvf 软件包名.tar.gzlinux rar,x代表解压,z处理gzip压缩,v显示过程,f指定文件。但这里有个细节很多人会忽略:解压之前最好先看一眼压缩包里的目录结构。

用tar -tzvf 软件包名.tar.gz可以预览里面有哪些文件。有些软件包会自带一个顶层目录,解压后所有文件都放在这个目录里;有些则是一大堆文件直接散落在当前目录。如果是后者,最好先建个文件夹再解压,不然文件会撒得到处都是,以后想清理都找不到头绪。
解压完成后,进入解压出来的目录,先扫一眼有没有README或者INSTALL这样的文档。这些文档里通常写着编译安装的具体说明,比任何网上教程都靠谱。我曾经遇到过某个监控工具,它的安装步骤和常规流程完全不同,全靠README才搞定。
编译安装的核心三步走

大多数tar.gz软件包都遵循经典的编译三部曲:configure、make、make install。先运行./configure,这个脚本会检测系统环境,看看缺少哪些依赖库。如果报错说某个库找不到,那就得先用yum装上对应的开发包,比如yum install -y gcc gcc-c++之类的。
configure这一步可以加参数,比如指定安装路径--prefix=/usr/local/软件名。如果不指定,默认会分散到/usr/local/bin、/usr/local/lib等目录下,以后卸载会很麻烦。我习惯把每个软件都装到自己的目录里,这样想删除时直接删文件夹就行。
配置通过后,执行make开始编译。这个过程会消耗CPU资源,大一点的软件可能要几分钟。编译时密切关注终端输出,如果中途报错centos targz如何安装,通常是因为缺少某个开发库。这时候别慌,根据错误信息用yum搜索对应的-devel包装上,然后重新跑make。

编译完成就是make install,把编译好的二进制文件、配置文件、库文件复制到系统目录。这一步需要root权限,记得加sudo。
装完后别忘了配置环境变量
软件装好了,但直接在终端敲命令可能会提示找不到。这是因为系统不知道可执行文件放在哪里。如果是用默认路径安装,可执行文件通常在/usr/local/bin下,这个目录一般已经在PATH里了。但如果指定了自定义路径,就需要自己把bin目录加到PATH里。
编辑~/.bashrc或者/etc/profile,在末尾加上一行export PATH=/usr/local/软件名/bin:$PATH,然后执行source ~/.bashrc让配置生效。这样以后在任何目录都能直接运行这个软件了。
有些软件还会提供systemd服务文件,可以把它复制到/usr/lib/systemd/system/目录下centos targz如何安装,然后用systemctl enable 服务名设置开机自启。这一步虽然不是必须的,但对于需要长期运行的服务来说,能省下不少手动操作的麻烦。
卸载和版本管理要提前想好
用tar.gz安装的软件,卸载时没有yum那么省心。如果安装时指定了--prefix路径,直接删除整个安装目录就行,干净利落。如果没指定,文件分散在多个目录里,就得靠make uninstall来清理。前提是解压后的源码目录还在,并且有uninstall目标。
我建议把下载的tar.gz包和源码目录都保留在/opt/src这样的地方,配上日期和版本号命名。这样以后想升级或者换版本时,能清楚知道当前装的是哪个版本。有些依赖特定版本的软件,一旦升级出问题,还能快速回退。
版本管理上,可以用软链接来切换。比如装了两个版本的nginx,在/usr/local下分别建nginx-1.20和nginx-1.22,然后用ln -s做个软链接指向当前要用的版本。切换时只需要改一下软链接的指向,重启服务就行。
