在我的用例中,我想在CentOS7中使用最新版本的GIT。但是我没有sudo权限来在框中安装git。
已安装的git版本为1.8.3.1
。但是我想使用2.4.11
,因为版本1.8.3
会出现类似
unrecognized argument: --author-date-order
我下载了最新的git并尝试使用它。我可以运行它而不会出现上述错误。我直接像bin/git
一样使用。
$git.Linux.x86_64/bin/git --version
git version 2.4.11
但是我不能在所有带有路径的地方更改代码。有没有办法设置最新的git PATH并在不安装的情况下使用它?
我真的很感谢在此方面的任何帮助。
答案 0 :(得分:1)
Digital Ocean有一个nice guide on building Git from source on CentOS 7。将生成的二进制文件放在CentOS 7系统上的/ usr / local / bin /中(默认情况下,该文件包含在$ PATH中),一切顺利。
当然,您更喜欢打包/使用仓库,但是,鉴于您的情况,我会毫不犹豫地自己构建它。
一般信息;在Git 2.3.0中引入了Push to Deploy。确保使用此版本或更高版本。
或
您可以使用Git官方网站上提供的IUS存储库(https://ius.io/):https://git-scm.com/download/linux
为此,请以root身份运行:
yum install epel-release
yum remove git
rpm -U https://centos7.iuscommunity.org/ius-release.rpm
yum install git2u
答案 1 :(得分:1)
我相信你不走运,但也许不是。
当某种东西(您的外壳,另一个程序,任何东西)试图调用Git时,操作系统会在PATH变量的每个文件夹中搜索名为Git的程序可执行文件。
因此,如果您想防止Git
与root用户安装的现有版本匹配,那么您很不幸,没有从PATH中删除一些非常重要的文件夹(不要这样做! )。但是,您可能可以弄清操作系统搜索PATH变量以找到Git可执行文件的顺序,并且可以在git bin文件夹之前或之后添加。这样,假设操作系统以可预测的方式进行搜索,它应该先找到您的Git,再找到系统范围内安装的Git。
然后,您可以将.bashrc更改为在用户登录时始终在git bin文件夹前添加/添加。
这有点骇人听闻,可能会导致不确定的行为,尽管如此,请用户当心。正确的方法是要求系统管理员更新Git或修复错误以允许您使用它。
编辑在Fedora上进行了快速测试(鉴于它是Red Hat发行版,其行为应与CentOS相似),它似乎从路径的开头(左侧)开始搜索,并在路径开始后停止第一场比赛。
编辑2 我也想警告您:这仅适用于在您的用户环境中调用Git。如果您以其他用户身份运行某些东西,或者没有相同的$ PATH变量运行某些东西,则将在系统范围内安装不同版本的git。再次提醒用户。