如何更新从源代码编译的包?

可能重复:
我可以直接更新源代码安装的软件吗?

我即将安装Enlightenment桌面环境,这是一个非常漫长的过程。 我想知道一旦我安装它会自动更新还是我必须继续编译它来更新它。

从源代码安装时,没有任何内容(如dpkg)会为您跟踪新安装的文件(哪些文件及其放置位置)。 除非您明确使用工具。

如何知道文件的安装位置

我使用Git跟踪我的/ usr / local中的安装。 以下是它的外观:

cd /usr/local git init git add . git commit -m "Starting to track /usr/local" 

安装新软件( ./configure make install )。 然后:

 cd /usr/local git status git add . git commit -a -m "Installed open-magic-1.2.3" 

现在你打电话看看安装了什么文件以及何时:

 cd /usr/local git log --stat 

如果你熟练使用Git,你甚至可以使用一些git命令进行卸载 。 但要小心,因为Git不跟踪文件权限(我写了一个特殊的脚本,可以保存和恢复文件的所有权限和所有权)。 我只卸载了几次,即使我在/ usr / local中有334次提交(安装了ei)。

有些人将软件安装到专用目录中并创建符号链接或将bin目录添加到PATH。

我也开始这样做了。 我安装PREFIX设置为/opt/open-science-1.2.3 (例如)的源,然后在我的Git跟踪/usr/local/bin bin文件的符号链接。 真正好的是我可以预先创建非root所拥有的/opt/open-science-1.2.3目录,然后以非root身份运行make install 。 这向我certificate,安装脚本没有将系统中任何地方的文件连接到/opt/open-science-1.2.3

简单但凌乱的方式

可能最简单的升级方法是重新安装新的源代码。 只需完成安装程序,就好像这是第一次。 你最终可能会有一些孤立的旧文件。 该软件将正常运行,但孤立的文件占用空间会使您的设置变得混乱。

您需要为每次更新重新编译。 Git,SVN或bzr等源代码修订包将帮助您在源文件中查找和下载更新,但您需要重新编译。 源文件没有自动更新跟踪器/安装程序。

正如Aleksandr Levchuk正确指出的那样,您可以使用GIT或SVN跟踪可用更新的安装。 对于启蒙运动,有SVN – http://www.enlightenment.org/p.php?p=contribute&l=en

几个月前我问了一个类似的问题 – 我可以直接更新从源代码安装的软件 。 也有很好的答案。

Interesting Posts