如何更新从源代码编译的包?
可能重复:
我可以直接更新源代码安装的软件吗?
我即将安装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
几个月前我问了一个类似的问题 – 我可以直接更新从源代码安装的软件 。 也有很好的答案。