是否会在升级时替换由存储库安装的程序上的手动安装程序?

我从apt-get安装了Eclipse,但是我需要Mars版本所以我遵循了这个指南 ,但我忘了先删除旧版本。 如果存储库中出现了新版本,它是否会恢复我在Unity / desktop中安装的Eclipse版本。 另外,如果我通过apt-get删除,它会删除我创建的链接吗? 依赖关系怎么样?

提前致谢。

一如既往,这取决于。 这是从源安装时潜在的问题之一,库和二进制文件的名称和位置可能在apt(apt-get)和sudo make install之间发生冲突

有两种通用解决方案:

首先 – 将源代码安装到/usr/local – 最小化与/usr系统文件的冲突

这就是我一般所做的

 ./configure --prefix=/usr/local make sudo make install 

第二 – 可能更好,使用check install

 sudo apt-get install checkinstall ./configure make sudo checkinstall 

这会从您的源代码中生成.deb,因此可以更好地使用apt 。 然后可以像安装任何其他.deb一样安装和删除软件包。

请参阅https://help.ubuntu.com/community/CompilingEasyHowTo

然后你会把包裹搁置

请参阅如何防止更新特定包?

然后更新软件包,手动下载源代码并重新编译(使用checkinstall)或将其关闭并使用ubuntu存储库(apt)。

注意:安装到/ usr / local的IMO最不可能导致系统文件出现问题,因为它更清晰(保持源文件和系统文件完全分离)。 checkinstall是非常可重用的,但是,如果存在冲突,您可以破坏系统。

存储库中的Eclipse版本很旧,做得很干净:

通过删除包

 sudo apt-get remove eclipse 

并在/opt删除您的安装。 之后,再次安装Eclipse Mars。 使用新的Eclipse安装程序 。