当从源代码编译新的二进制文件时,旧的二进制文件会发生什么?

当从源代码编译新的二进制文件时,旧的二进制文件会发生什么?

在通过包管理器安装了存储库中的 git 之后,我已经从源代码编译了 git。

在此过程中,“来自源代码”的 git 取代了“主系统 git”的位置。

user@jeanny:~$ git --version
git version 1.8.3.2

有没有办法将存储库中的 git 设置为“主系统 git”?

答案1

您可以通过执行以下操作来确认这一点:

$ /usr/bin/git --version

$ /usr/local/bin/git --version

您现在可能已经git安装了 2 个版本,这完全没问题,只要它们保存在单独的目录中即可。

新编译的版本git很可能就是目录中的版本/usr/local/bin

您可以使用$PATH环境变量来控制git使用哪些内容,方法是控制事物在$PATH.

例如:

  • 系统版本git为默认

    PATH=/usr/bin:/usr/local/bin
    
  • 新编译的版本git是默认的

    PATH=/usr/local/bin:/usr/bin
    

那么替代方案呢?

OP 在评论中提出了以下后续问题:

更新替代方案适合这张图片的什么位置?

替代方案是一种机制它允许您的系统合并未安装的工具,通过在目录中放置链接/usr/bin来访问该工具,然后由软件管理。一个例子最能说明问题。在我的系统上,Java 作为替代应用程序进行管理:/usr/bin/usr/bin

$ ls -l /usr/bin/java
lrwxrwxrwx. 1 root root 22 Dec 26  2010 /usr/bin/java -> /etc/alternatives/java

您可以通过上面的链接来判断/usr/bin。鉴于这是由替代方案管理的链接,并不会改变该链接仍在目录下的事实/usr/bin。因此,当我们$PATH按照上述方式进行操作时,替代方案就不是问题了。

相关内容