繁体   English   中英

使用非 root 用户帐户安装 Git

[英]Installing Git with non-root user account

我已经在 GitHub 上设置了一个 Git 存储库,并在我的 Windows 机器上提交了一些更改。

但是明天我将不得不从一台运行 Ubuntu 且权限有限(即没有 sudo)的机器上在这个存储库中工作。

是否有适用于 Linux 的可移植 Git 版本? 或者某些允许我仅为当前用户编译和安装 Git 的源代码?

您可以下载 git 源代码并执行./configure --prefix=/home/user/myroot && make && make install将 git 安装到您的主目录,前提是您拥有构建工具。 如果您没有安装 build-essential 软件包( dpkg --list|grep build-essential ),您还需要将它们安装到您的主目录中。

我不喜欢仅链接的答案,但是我在 Fedora 机器上一步一步地遵循了 这个链接,它无需修改就可以工作。 非常非常容易。 二进制文件最终位于您的 ~/bin 目录中。 你下载一个 tarball,提取源代码,运行make并运行make install ,就是这样。

正如作者所说,两个先决条件是 gcc 和 ssh,如果你满足这些条件,作为非 root 用户,git 应该适合你。

一个相关的答案是https://askubuntu.com/a/350

我可以使用建议的第三种方法使其工作:

apt-get source git
cd git_vXXX
./configure --prefix=$HOME
make
make install

我不知道为什么,但是当我尝试从 github 上的源下载安装时,我遇到了很多缺少依赖项的问题

要从源安装 git 和依赖项,以下内容可能有用。

替换为您安装非 root 应用程序的位置,并考虑检查源代码的最新版本。

wget https://curl.haxx.se/download/curl-7.47.1.tar.gz
tar -xf curl-7.47.1.tar.gz
mkdir <local_curl_dir>
cd curl-7.47.1
./configure --prefix=<local_curl_dir>
make
make install

wget http://downloads.sourceforge.net/expat/expat-2.1.0.tar.gz
tar -xf expat-2.1.0.tar.gz
mkdir <local_expat_dir>
cd expat-2.1.0
./configure --prefix=<local_expat_dir>
make
make install

wget https://github.com/git/git/archive/v2.6.4.tar.gz
tar -xf v2.6.4
mkdir <local_git_dir>
cd git-2.6.4
make configure
./configure --prefix=<local_git_dir>/git --with-curl=<local_curl_dir>/curl --with-expat=<local_expat_dir>/expat
make
make install

这就是我最终要做的,主要技巧是 make 标志:

wget -O git.tar.gz https://github.com/git/git/archive/v2.17.0.tar.gz
tar zxf git.tar.gz
mv git-2.17.0 git
cd git
make configure
./configure --prefix=`pwd` --with-curl --with-expat
# ./configure --prefix=`pwd`
# Make flags from https://public-inbox.org/git/CAP8UFD2gKTourXUdB_9_FZ3AEECTDc1Fx1NFKzeaTZDWHC3jxA@mail.gmail.com/
make NO_GETTEXT=Nope NO_TCLTK=Nope
make install NO_GETTEXT=Nope NO_TCLTK=Nope

学分:

  1. 上面 79E09796 的回答是一个很好的提示,但不适用于我在 Cloudways 上的情况,并且不需要编译 curl 和 expat。

  2. 我在互联网上发现的随机电子邮件记录: https : //public-inbox.org/git/CAP8UFD2gKTourXUdB_9_FZ3AEECTDc1Fx1NFKzeaTZDWHC3jxA@mail.gmail.com/

矫枉过正的解决方法

以用户身份安装 Anaconda 并使用 conda 安装 git。

优势

Anaconda 可以作为用户安装,并且可以创建一个 conda 环境来帮助您安装其他软件包。 这样你就不需要从源代码编译git,也不需要安装libcurl和perl,所以你不会得到错误

git: 'remote-https' is not a git command. See 'git --help'

成功编译git后。

安装Anaconda的步骤,然后是git

  1. 阅读指向下载页面的shell 脚本文件Anaconda 安装手册
  2. 下载脚本文件:
    • 复制到您的本地机器,然后使用 scp(例如winscp )复制到 Linux 机器或
    • 在 Linux 机器上使用终端并发出wget https://repo.anaconda.com/archive/Anaconda3-2020.11-Linux-x86_64.sh
  3. 通过发出chmod +x Anaconda3-2020.11-Linux-x86_64.sh为自己添加对文件的可执行权限
  4. 按照安装说明进行操作,您还可以指定要将 anaconda 安装到哪个文件夹中
  5. 安装后,选择以下其中一种可能,以便稍后成功调用 git:
    1. 你要么激活一个 conda 环境,这很有用,例如,如果你需要创建不同的 conda 环境(如果你使用 python,这很常见)。 要激活环境,您需要要求安装程序(在安装结束时)将 conda 初始化代码添加到您的~/.bashrc文件中 [见下文]。 使用这种方法,您的路径不会被污染,您将看到与 conda 相关的二进制文件是否也在您当前的路径中。 或者你可以
    2. 将已安装的 bin 文件夹添加到您的路径中,例如,如果您将 anaconda 安装到/home/myusername/anaconda3 ,它将位于/home/myusername/anaconda3/bin 您的新可执行文件conda也将在那里,它将帮助您安装诸如 git、python 或 pandoc 之类的软件包,或者
    3. cd 进入anaconda的二进制文件夹,例如cd /home/myusername/anaconda3/bin ,执行以下命令。
  6. 不要忘记通过以下方式使新路径设置生效,例如,如果您在第 5 点选择了方法 1. 或 2.,则关闭并再次打开终端。如果您选择了 1,您将看到类似(base) myusername@servername表明您正在使用基本 conda 环境。 7 现在您可以通过发出conda install -c anaconda git来使用conda install -c anaconda git

如果您告诉 Anaconda 安装程序为您初始化 conda,您的.bashrc将包含这样的内容:

# content of your .bashrc in your home dir
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/myusername/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/myusername/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/myusername/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/myusername/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

对于最新版本(我的意思是 git-2.25.0-rc1 或更高版本),您需要

wget https://github.com/git/git/releases/tag/v2.25.0-rc1 -O git.zip 
unzip git.zip 
cd git-2.25.0-rc1 
export PATH=`pwd`:$PATH

当然,为了更方便,您可以将最后一行添加到 .bashrc 或 .zshrc 或其他内容中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM