如何在没有 root 权限的情况下在 CentOS5 上安装 git?

如何在没有 root 权限的情况下在 CentOS5 上安装 git?

我正在尝试将 git 功能添加到没有开发工具的生产 CentOS 5.5 系统(因为它是一个生产系统)。所以我无权访问 make/gcc/etc。我基本上想安装 Git 以便能够轻松快速地将网站目录与我的 Git 存储库同步,这样我就不需要编译任何源文件了。

我没有 root 访问权限,并且由于显而易见的原因,root 不想在生产系统上安装 Git,但如果我可以在本地设置它以供自己使用,那就没问题。

我尝试下载并解压 git-core.rpm 到我的主目录中,尽管我能够运行 git 的某些功能,但是 git 的依赖项都不在它期望的位置,因此失败。

我的结构如下所示:

~/git
~/git/usr
~/git/usr/bin
~/git/usr/share
~/git/usr/share/doc
~/git/usr/share/git-core
~/git/usr/share/locale
~/git/usr/share/man

当我运行类似 的命令时git help clone,我收到错误消息No manual entry for git-clone。 (/usr/share/man) 确认了这一点git --man-path。其他命令也同样失败。

如何在不重新编译的情况下告诉 git 用作~/git根目录而不是/用作所有 git 依赖项的根目录?我似乎找不到可以设置的任何环境变量或 git 变量。

有一个类似的问题发布在所以在这里,但不幸的是提供的两种解决方案都不可行 - 即:重新编译 git(我没有任何 make 工具)或解压 rpm(已经尝试过但如所示,git 会查找预定义的路径)。

根据建议这里我曾尝试设置 GIT_EXEC_PATH,但收效甚微:

[eric ~]$ export GIT_EXEC_PATH=~/git/usr/bin/git
[eric ~]$ git --man-path
/usr/share/man
[eric ~]$ git help clone
No manual entry for git-clone
[eric ~]$ git --exec-path
/home/eric/git/usr/bin/git

答案1

除非 RPM 已针对重定位进行设置(绝大多数 RPM 未进行设置),否则您无法通过这种方式进行重定位。最好的办法是正式安装内容,这样它将与系统的其余部分一起进行跟踪/更新。

如果无法做到这一点,你可以做类似的事情:

  1. 获取最新源代码
  2. 使用例如“configure prefix=$HOME ...”进行配置
  3. 构建并安装,例如“make install”
  4. 找出来自 git 的内容,至少是 ~/bin/、~/share/man/、~/libexec/ 中的内容,将其打包并传输到受害机器
  5. 在受害者上解压并尝试。将 ~/bin 放在结尾你的 PATH

但是,在没有首先得到当权者同意的情况下,请不要这么做。

相关内容