答案1
当您从源代码安装时,没有任何东西(如 dpkg)可以为您跟踪新安装的文件(哪些文件以及它们放在哪里)。除非您明确使用工具。
如何知道文件的安装位置
我用Git跟踪我的 /usr/local 中的安装。它如下所示:
cd /usr/local
git init
git add .
git commit -m "Starting to track /usr/local"
安装新软件(./configure
、make
、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 跟踪的 bin 文件的符号链接/usr/local/bin
。这样做的好处是,我可以预先创建/opt/open-science-1.2.3
非 root 拥有的目录,然后make install
以非 root 身份运行。这向我证明了安装脚本没有将文件连接到系统中的任何地方,除了/opt/open-science-1.2.3
。
简单但混乱的方法
最简单的升级方法可能就是重新安装新源。只需像第一次一样重新执行安装程序即可。最终可能会有一些孤立的旧文件闲置。软件将正常运行,但孤立的文件会占用空间,使设置变得混乱。
答案2
每次更新时您都需要重新编译。Git、SVN 或 bzr 等源修订包将帮助您查找和下载源文件中的更新,但您需要重新编译。没有针对源文件的自动更新跟踪器/安装程序。
答案3
正如 Aleksandr Levchuk 正确指出的那样,您可以使用 GIT 或 SVN 跟踪安装以获取可用的更新。对于 Enlightenment,有 SVN -http://www.enlightenment.org/p.php?p=contribute&l=en
几个月前我曾问过类似的问题 -我可以直接更新从源代码安装的软件吗。也得到了很好的答案。