使用非root用户帐户安装Git

Bop*_*reH 46 linux git ubuntu

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

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

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

Sco*_*ott 34

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

  • 如果在sources目录中找不到`configure`,则可能必须事先运行`make configure`(我这样做).希望这可以帮助! (16认同)
  • 我不建议使用.git作为你安装的目录,这似乎是要求混淆(因为git使用名为.git的目录来存储非裸存储库的repo数据). (4认同)
  • 具有讽刺意味的是,默认情况下,Git将自己配置为安装到主目录中. (3认同)
  • INSTALL文本文件有许多有用的细节.我的远程非sudo机器没有libcurl4-dev所以我使用了"NO_CURL"选项. (2认同)

dem*_*lem 15

我不喜欢仅链接的答案,但这个链接我在Fedora机器上一步一步地进行,并且它没有修改.非常非常容易.二进制文件最终出现在〜/ bin目录中.你下载一个tarball,提取源代码,运行make和运行make install,就是这样.

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


lib*_*lib 8

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

我可以使用提出的第三种方法:

apt-get source git
cd git_vXXX
./configure --prefix=$HOME
make
make install
Run Code Online (Sandbox Code Playgroud)

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


79E*_*796 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
Run Code Online (Sandbox Code Playgroud)

  • 您能解释一下否决票吗?如果您使用的是没有 root 权限的锁定计算机并且未安装依赖项,它会在 5 分钟内为您提供 Git 的工作版本。 (2认同)
  • 不幸的是没有工作。git 步骤上的“make”说“zlib.h:没有这样的文件或目录” (2认同)

Dan*_*zes 8

矫枉过正的解决方法

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

优点

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

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

git编译成功后。

安装 Anaconda,然后安装 git 的步骤

  1. 阅读Anaconda 安装手册,该手册指向下载页面的 shell 脚本文件
  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您正在使用基础的信息康达环境。
  7. 现在您可以通过发出 来使用 conda 安装 gitconda install -c anaconda git

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

# 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 <<<

Run Code Online (Sandbox Code Playgroud)


bdo*_*bro 6

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

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
Run Code Online (Sandbox Code Playgroud)

学分:

  1. 上面的79E09796答案是一个很好的技巧,但不适用于我在Cloudways上的情况,也不需要编译curl和expat。

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

  • 请注意,您应该删除“-O git.tar.gz”或更新以下命令以使用此名称而不是带有版本的名称 (3认同)