使用非root用户帐户安装Git

时间:2010-10-28 02:57:21

标签: linux git ubuntu

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

但明天我将不得不在运行Ubuntu且具有有限权限(即没有sudo)的机器上工作。

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

7 个答案:

答案 0 :(得分:32)

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

答案 1 :(得分:15)

我不喜欢纯链接的答案,但我在Fedora机器上一步一步地跟踪this链接,它无需修改即可使用。非常非常容易。二进制文件最终出现在〜/ bin目录中。您下载了tarball,提取源代码,运行make并运行make install,就是这样。

正如作者所述,2个先决条件是gcc和ssh,如果你遇到这些git应该作为非root用户使用。

答案 2 :(得分:8)

相关答案为https://askubuntu.com/a/350

我可以使用第三种方法:

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

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

答案 3 :(得分:8)

要从源代码安装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

答案 4 :(得分:4)

这就是我最终要做的事情,主要技巧是制造标志:

wget -O git.tar.gz https://github.com/git/git/archive/v2.17.0.tar.gz
tar zxf git-2.17.0.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/

答案 5 :(得分:1)

矫枉过正的解决方法

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

优势

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

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

成功编译git后。

安装Anaconda的步骤,然后是git

  1. 读取指向 Anaconda installation manual download page'sshell script file
  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. 为您自己添加对文件的可执行权限
  5. 按照安装说明进行操作,您还可以指定要将 anaconda 安装到哪个文件夹中
  6. 安装后,选择以下其中一种可能,以便稍后成功调用 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,然后执行以下命令。
  7. 不要忘记通过例如使新路径设置生效如果您在第 5 点选择了方法 1. 或 2.,请关闭并再次打开终端。如果您选择了 1,您将看到类似 (base) myusername@servername 的内容,表明您正在使用基本 conda 环境。 7 现在您可以通过发出 conda install -c anaconda gitinstall git using conda

如果您告诉 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 <<<

答案 6 :(得分:0)

对于最新版本(我的意思是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或其他内容中,以更加方便。