问题描述
我已经在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
),则也需要将其安装到主目录中。
次佳办法
我不喜欢link-only的答案,但是this链接是我在Fedora机器上跟随step-by-step进行的,它无需修改即可工作。非常非常容易这些二进制文件最终位于您的〜/bin目录中。您下载了一个压缩包,提取了源,运行make
并运行make install
就是这样。
正如作者所指出的,这两个先决条件是gcc和ssh,如果满足这些git,则应该以非root用户的身份工作。
第三种办法
一个相关的答案是https://askubuntu.com/a/350。
我可以将其与建议的第三个方法一起使用:
apt-get source git
cd git_vXXX
./configure --prefix=$HOME
make
make install
我不知道为什么,但是当我尝试从github下载源代码安装时,我遇到了很多缺少依赖项的问题
第四种办法
要从源代码安装git和依赖项,以下内容可能有用。
替换为您要安装非根应用程序的位置,并考虑检查源代码的最新版本。
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-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
学分:
-
上面的79E09796答案是一个很好的技巧,但不适用于我在Cloudways上的情况,也不需要编译curl和expat。
-
我在互联网上发现的随机电子邮件记录:https://public-inbox.org/git/CAP8UFD2gKTourXUdB_9_FZ3AEECTDc1Fx1NFKzeaTZDWHC3jxA@mail.gmail.com/