Centos 7.9如何使用源码编译安装curl最新版本

文章目录

    • 1、前言
    • 2、curl源代码下载
    • 3、openssl安装
    • 4、编译curl
      • 4.1、配置编译环境
      • 4.2、编译输出二进制curl程序
      • 4.3、安装编译后的curl
      • 4.4、编译完成检查
      • 4.5、验证安装

1、前言

Centos 7.9,由于系统为2017年发行,且以稳定性为主,部分工具版本较低,无法支持一些新的功能。如curl就相对较旧,默认为7.29版本,且无法从其他额外的镜像源获取到更新的版本,这就导致新的功能如–-connect-to参数(在7.49版本后开始支持)无法正常使用,此参数可以用来指定请求的地址。

image-20240509201553309

image-20240509201520485

2、curl源代码下载

打开官方下载页面:https://curl.se/download.html

找到最新的版本:

image-20240509201845834

也可以下拉到package栏选择其他版本:

image-20240509201945187

鼠标右键复制链接地址:

image-20240509202129804

传输到Linux设备本地:

wget /usr/local/src/curl https://curl.se/download/curl-8.7.1.tar.gz

image-20240509202349215

image-20240509203108149

下载完成之后,对其进行解压:

tar -zxvf curl-8.7.1.tar.gz

解压之后移动到对应路径:

image-20240509203158256

3、openssl安装

为了使curl能支持ssl功能,需要提前安装openssl,执行下列指令进行安装:

yum install -y openssl

4、编译curl

4.1、配置编译环境

在安装完成openssl之后,进入到对应curl源码目录下:

cd /usr/local/src/curl/curl-8.7.1

执行下列指令配置编译环境:

# 配置编译参数:/usr/local为指定的安装路径,--with-ssl表示需要支持ssl
./configure --prefix=/usr/local --with-ssl

image-20240509204059753

编译配置完毕执行如下:

image-20240510001825113

**注:**一定要提前安装openssl,否则在配置的过程中会出现无法找到openssl的错误。

configure: error: --with-openssl was given but OpenSSL could not be detected

image-20240510002204338

4.2、编译输出二进制curl程序

执行下列指令编译输出执行程序:

make

在完成编译环境配置后,编译执行完成后结果如下:

image-20240510002331180

在这一步已经有可执行的文件或库文件,但是还未安装到系统环境中,并且不是所有的文件都需要,因此需要额外的进行安装。

4.3、安装编译后的curl

执行下列指令,将编译生成的程序和文件安装到指定的位置,这里指定的位置即为./configure --prefix=/usr/local --with-ssl中的--prefix参数指定的位置:

sudo make install

安装完成如下:

image-20240510003031269

4.4、编译完成检查

检查编译完成的路径内容/usr/local,是否存在更新:有三项更新

  • 库文件在对应的lib路径,头文件在include路径,执行文件在bin路径

image-20240510003206371

进入到bin路径下查看:含更新后的可执行程序

image-20240510003253786

4.5、验证安装

最后,在系统的任意位置,执行curl --version检查当前的版本是否为我们编译安装的最新版:

image-20240510003520445

看到这里,明显成功安装了,可以正常使用最新版本的curl工具了,nice。

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

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

相关文章

吴恩达机器学习笔记:第 9 周-17大规模机器学习(Large Scale Machine Learning)17.3-17.4

目录 第 9 周 17、 大规模机器学习(Large Scale Machine Learning)17.3 小批量梯度下降17.4 随机梯度下降收敛 第 9 周 17、 大规模机器学习(Large Scale Machine Learning) 17.3 小批量梯度下降 小批量梯度下降算法是介于批量梯度下降算法和随机梯度下降算法之间的算法&…

Docker Desktop 修改容器的自启动设置

Docker Desktop 允许用户控制容器的自启动行为。如果你不希望某个容器在 Docker 启动时自动启动,你可以通过以下步骤来更改设置: 1. 打开 Docker Desktop 应用。 2. 点击右上角的设置(Settings)按钮,或者使用快捷键 Cm…

2024数维杯数学建模A题B题C题思路+模型+代码(开赛后第一时间更新)

2024数维杯数学建模A题B题C题思路模型代码(开赛后第一时间更新) https://mbd.pub/o/bread/ZpWakpdq https://mbd.pub/o/bread/ZpWakpdq 2024年第九届数维杯大学生数学建模挑战赛参赛规则 竞赛要求及论文提交方式; ①本次参赛作品统一在线提交到竞赛…

如何进行资产梳理(信息收集)

前言 渗透测试流程 线路一:渗透测试人员 1.域名收集--(备案收集) 1.1在线收集子域名 1.1.1 站长之家 1.1.2 IP138网站 1.1.3 查子域 1.1.4 RapidDNS 1.1.5 聚名 1.1.6 Crt.sh 1.1.7 googleHack 1.2工具和资产测绘收集子域名 1.2.1 oneforall(最好用,最全面) 1.2.…

内网安全-隧道技术SSHDNSICMPSMB上线通讯LinuxMac 简单总结

第126天:内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac_内网安全-隧道技术_ssh_dns_icmp_smb_上线通讯linux_mac-CSDN博客 内网渗透—隧道技术_隧道技术csdn-CSDN博客 #SMB 隧道&通讯&上线 判断:445 通讯 上…

Spark云计算平台Databricks使用,创建workspace和Compute计算集群(Spark集群)

Databricks,是属于 Spark 的商业化公司,由美国加州大学伯克利 AMP 实验室的 Spark 大数据处理系统多位创始人联合创立。Databricks 致力于提供基于 Spark 的云服务,可用于数据集成,数据管道等任务。 1 创建workspace 点击创建wor…

YOLOv9改进策略 :一种新颖的通用倒瓶颈(UIB)搜索块助力检测| 轻量化之王MobileNetV4

💡💡💡创新点:轻量化之王MobileNetV4 开源 | Top-1 精度 87%,手机推理速度 3.8ms,原地起飞! 最主要创新:引入了通用倒瓶颈(UIB)搜索块,这是一个统一且灵活的结构,它融合了倒瓶颈(IB)、ConvNext、前馈网络(FFN)以及一种新颖的额外深度可分(ExtraDW)变体技…

【JavaWeb】网上蛋糕商城后台-客户管理

概念 上文中已讲解和实现了后台管理系统中的订单管理功能,本文讲解客户信息管理功能。 客户信息列表 在后台管理系统的head.jsp头部页面中点击“客户管理”向服务器发送请求 在servlet包中创建AdminUserListServlet类接收浏览器的请求 package servlet;import m…

totoriseSVN 常见问题

1. SVN 无法 clean up 上传时没有关闭 Excel,导致传入了一些临时文件(文件名以$开头),关闭文件后临时文件自动删除,导致 SVN 版本错乱,使用 CleanUp 功能无效 更新时提示【Previous operation has not fin…

算法随想录第二天打卡|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

977.有序数组的平方 Python #最后反转列表 class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:left,right0,len(nums)-1new_nums[]while left<right:num1nums[left]**2num2nums[right]**2if num1<num2:new_nums.append(num2)right-1else:new_n…

【Java探索之旅】super 子类构造 掌握

文章目录 &#x1f4d1;前言一、继承1.1 super1.2 子类的构造方法1.3 super与this的区别 &#x1f324;️全篇总结 &#x1f4d1;前言 继承作为面向对象编程中的重要概念&#xff0c;为我们提供了一种强大的代码复用和扩展机制。在Java中&#xff0c;通过继承可以实现子类对父类…

android 手机和平板如何适配

在Android开发中&#xff0c;为了确保应用既能在手机上良好运行&#xff0c;也能在平板等大屏幕设备上提供优质的用户体验&#xff0c;需要进行一系列的适配措施。以下是一些关键的适配策略&#xff1a; 1. 使用Density Independent Pixels (dp/dip) 应用应使用密度无关像素(…

钩子函数onMounted定义了太多访问MySQL的操作 导致数据库异常

先放几种后端遇到的异常&#xff0c;多数和数据库有关 pymysql.err.InternalError: Packet sequence number wrong - got 102 expected 1 127.0.0.1 - - [09/May/2024 17:49:37] "GET /monitorLastTenList HTTP/1.1" 500 AttributeError: NoneType object has no at…

大数据毕业设计Python+Django地铁客流量预测 时间序列 深度学习 机器学习 人工智能 Python爬虫 计算机毕业设计

​ 博主介绍&#xff1a;全网粉丝100W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业感兴趣的可以先收藏起来&#xff0c;点赞、关注不迷路 西安工程大学本科毕业设计&#xff…

【编程向导】Docker-常用命令

常用命令 管理命令 管理命令说明builder管理构建config管理配置container管理容器context管理上下文engine管理引擎image管理镜像network管理网络node管理 Swarm 节点plugin管理插件secret管理 Docker secretsservice管理服务stack管理 Docker stacksswarm管理 Swarm 集群sys…

C++中的std::bind深入剖析

目录 1.概要 2.原理 3.源码分析 3.1._Binder分析 3.2._CALL_BINDER的实现 4.总结 1.概要 std::bind是C11 中的一个函数模板&#xff0c;用于创建一个可调用对象&#xff08;函数对象或者函数指针&#xff09;的绑定副本&#xff0c;其中一部分参数被固定为指定值&#xf…

KPL2024春季季后赛有感 | 辉煌永远是过去式

首先说明我是一个普通的观众&#xff08;不是专业的&#xff09;&#xff0c;不是谁的粉丝&#xff08;本人是慕强批&#xff0c;只是比较喜欢武汉estarpro&#xff09;。 在玩这个游戏之前&#xff0c;就听说过武汉estarPro很牛&#xff0c;只要他们上场&#xff0c;冠军就一定…

深入理解Spring中的@Autowired注解

在Spring框架中&#xff0c;Autowired注解是一个非常强大且常用的注解之一。它的主要作用是实现自动装配&#xff0c;即将一个Bean注入到另一个Bean中&#xff0c;从而简化了代码的编写。本文将深入探讨Autowired注解的原理、用法和一些注意事项。 1. Autowired注解的原理 Au…

RPA的安全性和可靠性

RPA&#xff08;Robotic Process Automation&#xff09;的安全性和可靠性是企业在引入这一技术时最为关注的两个方面。随着RPA技术的广泛应用&#xff0c;其在提高业务流程效率、降低成本方面的优势日益凸显&#xff0c;但与此同时&#xff0c;如何确保RPA系统的安全性和可靠性…

为什么 IP 地址通常以 192.168 开头?

在网络配置中&#xff0c;我们经常会遇到以 192.168 开头的 IP 地址&#xff0c;例如 192.168.0.1 或者 192.168.1.100。 这些地址通常用于局域网中&#xff0c;但为什么要选择以 192.168 开头呢&#xff1f; 本文将深入探讨这个问题&#xff0c;并解释其背后的原因和历史渊源…