通过存储库安装的程序上手动安装的程序在升级时会被替换掉吗?

通过存储库安装的程序上手动安装的程序在升级时会被替换掉吗?

我已经通过 apt-get 安装了 Eclipse,但我需要 Mars 版本,所以我按照本指南,但我忘了先删除旧版本。如果存储库中出现新版本,它会恢复我在 Unity/桌面中安装的 Eclipse 版本吗?或者,如果我通过 apt-get 删除,它会删除我创建的链接吗?依赖项怎么办?

提前致谢。

答案1

一如既往,这取决于具体情况。这是从源代码安装时的潜在问题之一,apt(apt-get)和sudo make install

通用解决方案有2种:

第一的- 安装源代码到/usr/local- 尽量减少与系统文件的冲突/usr

这是我通常的做法

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

第二- 可能更好,使用检查安装

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

这将从您的源代码生成一个 .deb 文件,以便更好地与 配合使用apt。然后可以像任何其他 .deb 文件一样安装和删除该软件包。

https://help.ubuntu.com/community/CompilingEasyHowTo

然后你可以暂停包裹

如何阻止特定包的更新?

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

注意:在我看来,安装到 /usr/local 最不可能导致系统文件出现问题,因为它更干净(将源文件和系统文件完全分开)。checkinstall 非常可靠,但是,如果发生冲突,则可能会破坏系统。

答案2

存储库中的 Eclipse 版本较旧,请进行清理:

通过以下方式删除包

sudo apt-get remove eclipse

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

相关内容