我在拉取BlissOS源代码时,总是遇到以下问题
而且搜遍了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.在该目录下你将得到以下文件:
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包
安装时注意,在sudo apt install ./*.deb前,把daemon开头的软件包内sysvinit字样的deb删掉,否则这么做会报错两个软件包冲突,由于Debian等都是用systemd进行系统加载控制,所以删掉它,删除后安装全部deb
8.最后设置HTTP缓存无限制即可:
git config --global http.postBuffer 1048576000
Git设置代理
curl设置代理
而你做的
git
和你的标题完全没有关系啊
我标题没写清楚,这个教程是面对系统全局代理时git clone或者repo sync遇到问题的解决办法(此时git不需要设置代理,所有应用都直接转发至系统代理)。
不过,我原标题也写了编译git
Popular Ranking
Popular Events
我在拉取BlissOS源代码时,总是遇到以下问题
而且搜遍了CSDN都没法解决,一样报错。我搜遍Bing后发现是GnuTLS的问题,只有编译时不使用GnuTLS,走的是OpenSSL的git才能避免这个问题,而国外的教程在现在使用又会遇到依赖缺失,dpkg打包报错没有签名等新的问题。
因此本教程就是用于Debian系(包括deepin v23)如何编译避开GnuTLS的git,以适应代理环境拉取源码
1.进入一个空文件夹
2.开启Linux源的deb-src功能,以Debian 12(bookworm,DEB822格式)为例:
将type后的deb再加个deb-src即可
3.更换后执行
4.在该目录下你将得到以下文件:
5.看到.dsc文件后,以图中为例,输入
执行后进行下一步
6.如图,看到git-2.39.2一类的源代码文件夹后,进入并构建deb,如图为
然后退出这个目录,你就会看到一堆deb包
安装时注意,在sudo apt install ./*.deb前,把daemon开头的软件包内sysvinit字样的deb删掉,否则这么做会报错两个软件包冲突,由于Debian等都是用systemd进行系统加载控制,所以删掉它,删除后安装全部deb
8.最后设置HTTP缓存无限制即可: