gnutls全称 GNU Transport Layer Security Library,即基于GNU版权协议的传输层安全协议,是wget支持https中的ssl协议的基础库。

开始 libgnutls 源码编译

在做一个开源项目时 需要 libgnutls >= 3.2.15 当前系统gnutls-2.12 所以选择源码编译升级

wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.19.tar.xz
tar -xvJf gnutls-3.5.19.tar.xz
cd  gnutls-3.5.19
./configure

提示找不到nettle-3.1

源码编译 nettle 3.1

wget http://ftp.gnu.org/gnu/nettle/nettle-3.1.tar.gz
tar -zxvf nettle-3.1.tar.gz
cd nettle-3.1
./configure
make
make install

在gnutls中./configure会报错 找不到nettle-3.1  其实是PKG_CONFIG_PATH路径没有找到这两个文件的原因

[root@localhost nettle-3.1]# find  ./  -name  "*.pc"
./hogweed.pc
./nettle.pc
[root@localhost nettle-3.1]#cp *.pc  /usr/lib64/pkgconfig/

再次在gnutls中./configure 报错gmp找不到 其实存在只是头文件不存在 yum install -y gmp-devel

再次./configure 报错 Libtasn1 4.9 was not found. To use the included one, use --with-included-libtasn1

源码编译 Libtasn1 4.9

查看系统当前版本:

[test@localhost lib]$ rpm -qa | grep libtasn1
libtasn1-devel-2.3-6.el6_5.x86_64
libtasn1-2.3-6.el6_5.x86_64

版本太低  下载 Libtasn1 4.9版本

wget http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.9.tar.gz
tar -zxvf libtasn1-4.9.tar.gz
cd libtasn1-4.9
./configure
make

解压编译出现错误  [-Wlogical-op] 是警告代码 可以在 https://blog.csdn.net/whatday/article/details/83780754 查询警告含义

ASN1.c:1192: error: logical '&&' with non-zero constant will always evaluate as true [-Wlogical-op]注释掉 libtasn1-4.9/lib/ASN1.c 中的1192行   // && !yytable_value_is_error (yytable[yyx + yyn])) 

继续make出现 一下错误

../gl/timespec.h:41: error: no previous prototype for 'make_timespec' [-Wmissing-prototypes]
../gl/timespec.h:78: error: no previous prototype for 'timespec_cmp' [-Wmissing-prototypes]
../gl/timespec.h:88: error: no previous prototype for 'timespec_sign' [-Wmissing-prototypes]
../gl/timespec.h:102: error: no previous prototype for 'timespectod' [-Wmissing-prototypes]

在libtasn1-4.9/gl/timespec.h 增加函数声明

// 增加函数声明 去除编译警告
_GL_TIMESPEC_INLINE struct timespec make_timespec (time_t s, long int ns);
_GL_TIMESPEC_INLINE int timespec_cmp (struct timespec a, struct timespec b);
_GL_TIMESPEC_INLINE int timespec_sign (struct timespec a);
_GL_TIMESPEC_INLINE double timespectod (struct timespec a);

然后编译成功 继续在gnutls中./configure 报错找不到libtasn1-4.9

[test@localhost libtasn1-4.9]$ find ./ -name "*.pc"
./lib/libtasn1.pc
[test@localhost libtasn1-4.9]$ sudo cp lib/libtasn1.pc /usr/lib64/pkgconfig/

继续 libgnutls 源码编译

继续在gnutls中./configure 报错如下

configure: error: ****** Libunistring was not found. To use the included one, use --with-included-unistring

sudo yum install -y libunistring libunistring-devel 解决

继续在gnutls中./configure 报错如下

configure: WARNING: *** LIBIDN2 was not found. You will not be able to use IDN2008 support
checking for LIBIDN... no
configure: WARNING:
***
*** libidn was not found. IDNA support will be disabled.
***
checking for nettle_secp_192r1 in -lhogweed... no
checking whether to build libdane... yes
checking for unbound library... no
configure: WARNING:
***
*** libunbound was not found. Libdane will not be built.
***
checking for P11_KIT... no
configure: error:
***
*** p11-kit >= 0.23.1 was not found. To disable PKCS #11 support
*** use --without-p11-kit, otherwise you may get p11-kit from
*** http://p11-glue.freedesktop.org/p11-kit.html
***

根据错误提示 缺少 LIBIDN2  libunbound  p11-kit >= 0.23.1

源码编译LIBIDN2

wget https://ftp.gnu.org/gnu/libidn/libidn2-2.0.5.tar.gz
tar -zxvf libidn2-2.0.5.tar.gz
cd libidn2-2.0.5
./configure
make
make install

yum安装libunbound

[test@localhost libidn2-2.0.5]$ yum list | grep unbound
unbound.x86_64                              1.4.20-23.el6_9.4           @base
unbound-devel.x86_64                        1.4.20-23.el6_9.4           @base
unbound-libs.x86_64                         1.4.20-23.el6_9.4           @base
pcp-pmda-unbound.x86_64                     3.10.9-9.el6                base
unbound-devel.i686                          1.4.20-23.el6_9.4           base
unbound-libs.i686                           1.4.20-23.el6_9.4           base
unbound-python.i686                         1.4.20-23.el6_9.4           base
unbound-python.x86_64                       1.4.20-23.el6_9.4           base
[test@localhost libidn2-2.0.5]$ sudo yum install -y unbound unbound-devel

源码编译p11-kit-0.23.14

wget https://github.com/p11-glue/p11-kit/releases/download/0.23.14/p11-kit-0.23.14.tar.gz
tar -zxvf p11-kit-0.23.14.tar.gz
cd p11-kit-0.23.14
./configure
make
make install
cp p11-kit/p11-kit-1.pc /usr/lib64/pkgconfig/

再次在gnutls中./configure通过 make make install 编译安装成功

覆盖原有的pc文件

cp ./lib/gnutls.pc /usr/lib64/pkgconfig/gnutls.pc

centos6.5下升级gnutls相关推荐

  1. Centos6.5下升级Python版本

    enos6.5升级Python2.6到2.7 1.下载源码包 wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz 2.进行解 ...

  2. Linux(CentOS6.5)下编译安装Nginx1.10.1

    原文出自:http://www.cnblogs.com/comexchan/p/5815753.html Linux(CentOS6.5)下编译安装Nginx1.10.1 首先在特权账号(root)下 ...

  3. centos6.5 离线升级openssh7.7

    centos6.5 离线升级openssh7.7 测试环境需要联网准备离线升级的安装包 使用环境:centos6.5 数据迁移到centos 9 openssh 版本太低导致6.5无法ssh到9上面. ...

  4. linux 升级python 3.5,Linux下升级Python到3.5.2版本

    本文主要介绍在Linux(CentOS)下将Python的版本升级为3.5.2的方法 众所周知,在2020年python官方将不再支持2.7版本的python,所以使用3.x版本的python是必要的 ...

  5. linux下怎么升级python版本,Linux下升级python版本

    转载自:http://lovebeyond.iteye.com/blog/1770476 CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的 ...

  6. linux下升级g 版本,linux下升级gcc版本(gcc-7)

    ubuntu16.04的自带gcc版本为gcc-5,因为安装pl-slam的需要升级到gcc-7,可以通过以下命令查看你的gcc版本 gcc --version 通过apt工具对gcc进行升级 sud ...

  7. linux下安装python3报错_Linux(Centos)——下升级python3.3

    CentOS下的Python版本一般都比较低,很多应用都需要升级python来完成.我装的centOS的默认的python版本是V2.4.3,但运行node.js需要的版本是2.5以上. 1.下载py ...

  8. wampserver下升级php7

    wampserver下升级php7 1.下载php7 http://windows.php.net/download#php-7.0 选择 VC14 x86 Thread Safe 64位选X64 3 ...

  9. CentOS6.5 下sciki-learn numpy scipy 的安装

    CentOS6.5 下sciki-learn numpy scipy 的安装 软件安装 CentOS Python 之前用的一直是CentOS 7, 后来觉的软件安装太麻烦就改到了Ubuntu, 这些 ...

最新文章

  1. 5 个刁钻的 String 面试题!
  2. 为什么excel图片会变成代码_莲藕为什么会变色?焯水就发黑,炖汤就变粉色,甚至会变成暗紫色...
  3. 提示You don't have permission to access /index.php on this server.
  4. l2-004 这是二叉搜索树吗?_LeetCode 例题精讲 | 11 二叉树转化为链表:二叉树遍历中的相邻结点...
  5. 额,看房没戴头盔,损失二十万 。。。
  6. 【Java面试题】34 List 、Map、Set 区别?
  7. HDU 5392 BC #51
  8. 3dmax体积雾渲染不出来_【扮家家云渲染效果图】3Dmax体积光制作丛林光束|干货教程...
  9. 错误:未启用当前数据库的SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker。...
  10. Counter 用法 from collections import Counter
  11. android 图片文字布局,Android自定义控件图片+文字布局
  12. 基于catia活塞的有限元分析_渐开线插齿刀自动化设计系统及有限元分析
  13. OPEN SQL中通配符的使用
  14. win10升级后ctrl+shift+f失效了(zend studio)问题解决
  15. 统计学基础知识之统计思维
  16. 笔记本计算机显示图标,笔记本电脑声音图标不见了?电脑声音图标显示红叉
  17. 电容电感充放电时间计算
  18. PS中放大图片不失真的方法
  19. 用C/C++打造数字时钟程序(附代码),竟然只要100行代码!
  20. 舒舍提醒你需要注意这些

热门文章

  1. STM32定时器的TRGO信号
  2. NR 5G 关于gNB-CU和gNB-DU
  3. 树上边分治-求任意两点路径的总和
  4. docker 异常:“fork/exec /proc/self/exe: no such file”
  5. 我的Android进阶之旅------gt;怎样在多个LinearLayout中加入分隔线
  6. 机器大神 Michael Jordan 教授主题演讲:机器学习——创新视角,直面挑战》
  7. python实践3:cursor() — 数据库连接操作
  8. jQuery 选择器中的空格问题
  9. Configure NFS Server On AIX 6.1
  10. 跨域资源共享的10种方式(转)