![Linux 新手问题——如何更新从源代码构建的程序?](https://linux22.com/image/512785/Linux%20%E6%96%B0%E6%89%8B%E9%97%AE%E9%A2%98%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E6%9B%B4%E6%96%B0%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA%E7%9A%84%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
当我从源代码(CentOS)构建程序时,如何将其更新为新版本?我可以使用相同的配置选项再次运行 make && make install 吗?
答案1
当您获得新源代码时,请检查 README 或 INSTALL 文件。通常会有一个关于升级的部分。如果没有,执行 make && make install 应该可以。
答案2
99% 的时间,只需下载新版本(或补丁)的源代码,构建并安装。
答案3
这就是 GNU Stow 有用的地方。多年来我一直使用这个工具来保持我的操作系统干净。这是一个从源代码安装的程序的包管理器。它的工作原理是这样的。首先,我有一个单独的目录,我将所有这些程序保存在其中。/usr/local/stow
在里面,每个程序都有目录。当我从源代码编译程序时,我使用选项--prefix=/usr/local/stow/program-name
。make install
完成后,可执行文件安装在下/usr/local/stow/program-name/bin
,库位于中/usr/local/stow/program-name/lib
,等等。然后我运行cd /usr/local/stow
和sudo stow program-name
。最后一个命令创建从/usr/local/stow/program-name/bin
到/usr/local/bin/
、从 lib 到的链接/usr/local/lib
,等等。因此,属于一个程序的所有文件都位于一个目录中。
当我想删除或更新程序时,我会运行sudo stow -D program-name
删除链接并移除目录。现在,系统干净了,我可以安装新版本了。