[Share Experiences] 如何编译适用于系统全局代理环境下的git
Tofloor
poster avatar
mozixun
deepin
2024-07-06 15:04
Author

我在拉取BlissOS源代码时,总是遇到以下问题
qq_pic_merged_1720248284820.jpg

而且搜遍了CSDN都没法解决,一样报错。我搜遍Bing后发现是GnuTLS的问题,只有编译时不使用GnuTLS,走的是OpenSSL的git才能避免这个问题,而国外的教程在现在使用又会遇到依赖缺失,dpkg打包报错没有签名等新的问题。

因此本教程就是用于Debian系(包括deepin v23)如何编译避开GnuTLS的git,以适应代理环境拉取源码

1.进入一个空文件夹

2.开启Linux源的deb-src功能,以Debian 12(bookworm,DEB822格式)为例:

Types: deb deb-src
URIs: http://mirrors.ustc.edu.cn/debian
Suites: bookworm bookworm-updates
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb deb-src
URIs: http://mirrors.ustc.edu.cn/debian-security
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

将type后的deb再加个deb-src即可

3.更换后执行

sudo apt update
apt-get source git

4.在该目录下你将得到以下文件:
图片.png

5.看到.dsc文件后,以图中为例,输入

dpkg-source -x git_2.39.2-1.1.dsc --no-sign

执行后进行下一步

6.如图,看到git-2.39.2一类的源代码文件夹后,进入并构建deb,如图为

cd git-2.39.2 && sudo dpkg-buildpackage -rfakeroot -b -d

然后退出这个目录,你就会看到一堆deb包

图片.png

安装时注意,在sudo apt install ./*.deb前,把daemon开头的软件包内sysvinit字样的deb删掉,否则这么做会报错两个软件包冲突,由于Debian等都是用systemd进行系统加载控制,所以删掉它,删除后安装全部deb

8.最后设置HTTP缓存无限制即可:

git config --global http.postBuffer 1048576000

Reply Favorite View the author
All Replies
raspbian
deepin
2024-07-06 17:18
#1

Git设置代理

curl设置代理

而你做的

  1. 使用源码方式重新安装了一遍 git
  2. 把git缓存调整到1GB

和你的标题完全没有关系啊

Reply View the author
mozixun
deepin
2024-07-06 17:25
#2
raspbian

Git设置代理

curl设置代理

而你做的

  1. 使用源码方式重新安装了一遍 git
  2. 把git缓存调整到1GB

和你的标题完全没有关系啊

我标题没写清楚,这个教程是面对系统全局代理时git clone或者repo sync遇到问题的解决办法(此时git不需要设置代理,所有应用都直接转发至系统代理)。

不过,我原标题也写了编译git

Reply View the author