ubuntu 14.04的git 错误: gnutls_handshake() failed: Handshake failed

文章目录

    • 篇头
    • 错误提示
    • 错误原因
    • 解决方法

篇头

最近使用ubuntu14.04,搭配gitlab出现此gnutls_handshake() failed: Handshake failed问题,一直未能解决,直到找到本文的脚本,修正编译错误后,终于得以解决。记录一下,分享给大家。

错误提示

fatal: unable to access 'https://192.168.31.187/aw/android.git/': gnutls_handshake() failed: Handshake failed

错误原因

  • git工具默认使用gnutls包进行网络加密传输,但在特殊情况下(如使用了代理服务器)gnutls会出现奇怪的问题,我们可以使用更稳定的openssl包来代替gnutils的功能。
  • 只有在低版本Ubuntu 14.04上遇到此问题,其余版本20.04及以上未有遇到

解决方法

  • 如下,直接使用此脚本,已在原版上增加CFLAGS=-std=gnu99,亲测OK
#!/usr/bin/env bash
set -eu
# Gather command line options
SKIPTESTS=
BUILDDIR=
SKIPINSTALL=
for i in "$@"; do case $i in -skiptests|--skip-tests) # Skip tests portion of the buildSKIPTESTS=YESshift;;-d=*|--build-dir=*) # Specify the directory to use for the buildBUILDDIR="${i#*=}"shift;;-skipinstall|--skip-install) # Skip dpkg installSKIPINSTALL=YES;;*)#TODO Maybe define a help section?;;esac
done# Use the specified build directory, or create a unique temporary directory
set -x
BUILDDIR=${BUILDDIR:-$(mktemp -d)}
mkdir -p "${BUILDDIR}"
cd "${BUILDDIR}"# Download the source tarball from GitHub
sudo apt-get update
sudo apt-get install curl jq -y
git_tarball_url="$(curl --retry 5 "https://api.github.com/repos/git/git/tags" | jq -r '.[0].tarball_url')"
curl -L --retry 5 "${git_tarball_url}" --output "git-source.tar.gz"
tar -xf "git-source.tar.gz" --strip 1# Source dependencies
# Don't use gnutls, this is the problem package.
if sudo apt-get remove --purge libcurl4-gnutls-dev -y; then# Using apt-get for these commands, they're not supported with the apt alias on 14.04 (but they may be on later systems)sudo apt-get autoremove -ysudo apt-get autoclean
fi
# Meta-things for building on the end-user's machine
sudo apt-get install build-essential autoconf dh-autoreconf -y
# Things for the git itself
sudo apt-get install libcurl4-openssl-dev tcl-dev gettext asciidoc libexpat1-dev libz-dev -y# Build it!
make configure
# --prefix=/usr
#    Set the prefix based on this decision tree: https://i.stack.imgur.com/BlpRb.png
#    Not OS related, is software, not from package manager, has dependencies, and built from source => /usr
# --with-openssl
#    Running ripgrep on configure shows that --with-openssl is set by default. Since this could change in the
#    future we do it explicitly
./configure --prefix=/usr --with-openssl 
make CFLAGS=-std=gnu99
if [[ "${SKIPTESTS}" != "YES" ]]; thenmake test CFLAGS=-std=gnu99
fi# Install
if [[ "${SKIPINSTALL}" != "YES" ]]; then# If you have an apt managed version of git, remove itif sudo apt-get remove --purge git -y; thensudo apt-get autoremove -ysudo apt-get autocleanfi# Install the version we just builtsudo make install  CFLAGS=-std=gnu99 #install-doc install-html install-infoecho "Make sure to refresh your shell!"bash -c 'echo "$(which git) ($(git --version))"'
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/205804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chromium包含的内容(引擎)

Chromium包含了绘制引擎和JavaScript解释引擎。 绘制引擎是Chromium用于渲染网页内容的核心组件之一。Chromium使用的绘制引擎是Blink,它是一个高性能的、开源的Web渲染引擎。Blink继承自WebKit,但在2013年被Google分离出来,成为了Chromium项…

【EI会议征稿】第三届密码学、网络安全和通信技术国际会议(CNSCT 2024)

第三届密码学、网络安全和通信技术国际会议(CNSCT 2024) 2024 3rd International Conference on Cryptography, Network Security and Communication Technology 随着互联网和网络应用的不断发展,网络安全在计算机科学中的地位越来越重要&…

【Java】图论笔记

已含dfs和bfs,相关算法正在研究 代码 import java.util.*;public class Prim{public static void main(String[] args) {Graph graphnew Graph();graph.addVertex("A");graph.addVertex("B");graph.addVertex("C");graph.addVertex…

2分钟带你了解什么是Vsync

了解Vsync,首先我们需要认知如下问题 什么是GPUCPU在渲染之前起到什么作用什么是帧,帧率什么是画面撕裂 什么是GPU GPU为图形处理器,又称显示核心、视觉处理器、显示芯片。 是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑…

C++设计模式——Adapter(适配器)模式

一、Adapter模式是个啥? 适配器模式在软件开发的江湖里,可以说用途是非常广的。下面几个经典的场景来说明适配器模式的使用。 场景一 场景二 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格式的股票数据, 然后…

vscode 通过 ssh 远程开发解决 node.js 版本问题

vscode 通过官方提供的 Remote-ssh 插件,让我们可以直接通过 ssh 的连接方式,打开服务器上的代码库,远程进行开发。 我相信,“高端” vscode 玩家一定尝试过该玩法,简直好处多多。 但是用久了,难免会碰到…

软考2018下午第六题改编逻辑(状态模式)

在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象 package org.example.状态模式.软考航空;/*** author lst* date 2023年12月07日 15:37*/ class FrequentFlyer {CState state;double flyMiles;public FrequentFlyer() {…

【开源】基于JAVA语言的农家乐订餐系统

项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

深圳锐杰金融:用金融力量守护社区健康

深圳市锐杰金融投资有限公司,作为中国经济特区的中流砥柱,近年来以其杰出的金融成绩和坚定的社会责任立场引人注目。然而,这并非一个寻常的金融机构。锐杰金融正在用自己的方式诠释企业责任和慈善精神,通过一系列独特的慈善项目&a…

springboot(ssm高校失物招领平台 校园失物招领系统Java(codeLW)

springboot(ssm高校失物招领平台 校园失物招领系统Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&am…

Leetcode算法题笔记(1)

目录 哈希1. 两数之和1.1 解法11.1 解法2 2. 字母异位词分组2.1 解法12.2 解法2 3. 最长连续序列3.1 解法 小结 双指针4. 移动零4.1 解法14.2 解法2 5. 盛最多水的容器5.1 解法一5.2 解法二 6. 三数之和6.1 解法16.2 解法2 7. 接雨水7.1 解法1 小结 滑动窗口8. 无重复字符的最长…

自然语言处理基础知识 学习

参考:OpenBMB - 让大模型飞入千家万户 【清华NLP】刘知远团队大模型公开课全网首发|带你从入门到实战_哔哩哔哩_bilibili 图灵测试:imitation Game 模仿游戏 Part of speech tagging 词性标注 Named entity recognition : 命名…

【CMake入门】第三节——构建项目并调用或生成库

系列文章: 【CMake入门】第一节——CMake的安装与简单样例 【CMake入门】第二节——CMake常用指令介绍 构建单文件项目,调用第三方库 # CMake最低版本号要求 cmake_minimum_required(VERSION 2.8)# 项目名称 project(demo)# 设置编译方式 set( CMAKE_B…

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群

一. Kubernetes(K8S)简介 Kubernetes (K8S) 是一个为 容器化应用 提供 集群部署 和 管理 的开源工具,和docker swarm类似,由 Google 开发. Kubernetes 这个名字源于希腊语,意为 “ 舵手 ” 或 “ 飞行员 ” , k8s 这个缩写是因为 k 和 s 之间有八个字符的关系, Google…

Mac电脑统计分析绘图 GraphPad Prism 10 最新 for Mac

GraphPad Prism 10是一款强大的科学数据分析和可视化软件,提供了丰富的统计工具、数据可视化选项和报告生成功能。它使用户能够更轻松地分析和解释实验数据,以支持科学研究和决策。 数据导入和整理:GraphPad Prism 10支持从多种数据源导入数据…

GO设计模式——10、组合模式(结构型)

目录 组合模式(Composite Pattern) 优缺点 使用场景 代码实现 组合模式(Composite Pattern) 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一…

Mac M1芯片安装es,kibana

安装:brew search elasticsearch //查看版本 brew install elastic/tap/elasticsearch-full //安装这个full版本 。。。等待安装 启动:cd /opt/homebrew/bin ./elasticsearch 访问: http://localhost:9200/ 安装:brew sear…

flink源码分析之功能组件(六)-心跳组件

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics,future。 本文解释心跳组件,心跳组件监听组件间连接活性,超时触发重连,保证连接有效性;断连…

ChatGPT/GPT4科研实践篇: AI绘图+论文写作+编程

1、熟练掌握ChatGPT提示词技巧及各种应用方法,并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告,提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用,完成数据分析、编程以及深度学习等相关科研项目。 4、…

Kafka -- 初识

目录 kafka是什么 Topic Partition Broker Cousumer CousumerGroup Offset reblance broker 消息存储 Isr kafka是什么 Kafka 是一个分布式的消息引擎,能够发布和订阅消息流(类似于消息队列) 以容错的、持久的方式存储消息流 多分区…