CentOS手工升级curl记

笔者一台服务器装有 CentOS 7.9 系统,运行 curl -V 查询 curl 的版本是 7.29,这个老版本的 curl 不支持 HTTP/2 协议。为了使 curl 能连接HTTP/2,curl 必须升级到至少7.46.0版本以上。查询 curl的官网得知当前最新版本是 8.8.0,然而再仔细看,适用于 CentOS 系统的却是7.76.1版,
在这里插入图片描述

经过一番摸索,CentOS 是可以安装 8.8.0的,需要手动编译才成功,下面记录一下我手工升级的过程:

1. 安装依赖:

sudo yum groupinstall -y 'Development Tools'
sudo yum install -y libnghttp2 libnghttp2-devel openssl-devel

2. 下载并安装最新版本的curl:

wget https://curl.se/download/curl-8.8.0.zip
unzip curl-8.8.0.zip
cd curl-8.8.0
./configure

运行 ./configure 而不带参数的话,大概率会报错,如:
在这里插入图片描述
于是按提示,把这些 --with 开头的参数都加到 ./configure,尝试运行:

./configure  --with-amissl  --with-bearssl  --with-gnutls  --with-mbedtls  --with-nss  --with-openssl  --with-rustls  --with-schannel  --with-secure-transport  --with-wolfssl

嗯,报了另一个错:NSS use must be confirmed using --with-nss-deprecated. NSS support will be dropped from curl in August 2022. See docs/DEPRECATE.md
在这里插入图片描述

NSS是一个提供网络安全相关服务的库,系统检测到正在尝试使用NSS(Network Security Services)库,而 curl
计划不再支持 NSS 。因此,如确实要使用NSS,就必须通过–with-nss-deprecated 参数显式指定这一点。

好吧,调整一下configure参数:

./configure  --with-amissl  --with-bearssl  --with-gnutls  --with-mbedtls  --with-nss  --with-nss-deprecated --with-openssl  --with-rustls  --with-schannel  --with-secure-transport  --with-wolfssl

在这里插入图片描述
又来报错:–with-wolfssl but wolfSSL was not found or doesn’t work
暂时不用 wolfSSL 的话,就去掉这个参数,再尝试运行:

./configure  --with-amissl  --with-bearssl  --with-gnutls  --with-mbedtls  --with-nss  --with-nss-deprecated --with-openssl  --with-rustls  --with-schannel  --with-secure-transport

在这里插入图片描述
又是报错:error: --with-rustls was specified but could not find rustls.
再尝试去掉 --with-rustls 参数:

./configure  --with-amissl  --with-bearssl  --with-gnutls  --with-mbedtls  --with-nss  --with-nss-deprecated --with-openssl  --with-schannel  --with-secure-transport

这样,编译过程开始有了进展,不再报错。

在这里插入图片描述

编译成功了,但是从上面截图的编译结果看来,倒数第6行显示:HTTP2: No (–with-nghttp2, --with-hyper),如果要启用 HTTP/2,必须要再加多 --with-nghttp2, --with-hyper 参数,再次编译。

./configure  --with-amissl  --with-bearssl  --with-gnutls  --with-mbedtls  --with-nss  --with-nss-deprecated --with-openssl  --with-schannel  --with-secure-transport  --with-nghttp2  --with-hyper

编译如果没有报错,就应该出现下图的样子,HTTP2已经是 enabled 的状态。
在这里插入图片描述

3. 收尾工作

make
make install
sudo ldconfig

4. 确认curl版本和HTTP/2支持:

curl -V

输出应包括类似以下内容:
在这里插入图片描述

恭喜贺喜,CentOS 可以破格用上最新版 curl 了。。

### CentOS 7 环境配置和使用 #### 系统更新 为了确保系统的稳定性和安全性,在进行任何其他配置前,建议先执行系统更新。可以通过以下命令完成此操作: ```bash sudo yum update ``` 这一步会将所有的软件包以及操作系统的核心组件升级到最新版本[^1]。 #### 解决 YUM 下载错误 如果在运行 `yum` 命令时遇到类似于 `could not resolve host mirrorlist.centos.org; unknown error` 的问题,则可能是由于网络原因或者镜像源不可用引起的。此时可以手动替换默认的 `CentOS-Base.repo` 配置文件为国内可用的镜像源,例如阿里云或清华大学开源镜像站。具体方法如下: 1. 备份原始配置文件: ```bash sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup ``` 2. 使用 wget 或 curl 获取新的 repo 文件并保存到 `/etc/yum.repos.d/` 目录下: ```bash sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo ``` 3. 清除缓存并重新生成: ```bash sudo yum clean all && sudo yum makecache ``` 这样即可解决无法解析主机名的问题[^2]。 #### Java 环境配置 对于需要部署 Java 应用程序的情况,可以在 CentOS 上安装 JDK 并设置环境变量。以下是具体的步骤: 1. 安装 OpenJDK(也可以选择 Oracle JDK): ```bash sudo yum install java-1.8.0-openjdk-devel.x86_64 ``` 2. 编辑 `.bashrc` 文件以添加 JAVA_HOME 和 PATH 变量: ```bash echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` 验证安装成功与否可通过以下命令检查版本号: ```bash java -version javac -version ``` #### MySQL 数据库配置 当需要在服务器上搭建数据库服务时,通常会选择 MySQL 或 MariaDB。这里介绍如何将 MySQL 添加到环境变量以便全局调用其工具集。 假设已经完成了 MySQL 的编译安装过程,并将其放置于自定义路径 `/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/` 中,那么按照下面的方式修改用户的 shell profile 即可实现目标。 编辑个人用户下的 bashrc 文件来追加 mysql client binaries 路径: ```bash vim ~/.bashrc # 在最后加入一行 export PATH=$PATH:/usr/local/mysql/mysql-5.7.38-linux-glibc2.12-x86_64/bin source ~/.bashrc ``` 之后就可以直接通过终端输入诸如 mysqldump 这样的指令而无需指定全限定名称了[^3]。 #### 开机自动挂载磁盘分区 为了让某些外部存储介质能够在每次重启后仍然保持挂载状态而不必每次都手工处理,应该编辑 `/etc/fstab` 文件来进行持久化设定。比如要让光驱始终关联至 `/mnt` 文件夹的话,就需要遵循这样的格式写入录: ```plaintext /dev/sr0 /mnt iso9660 defaults 0 0 ``` 每条规则由六个字段组成分别代表设备位置、挂载点地址、文件系统类别以及其他选项等等[^4]。 以上就是关于 CentOS 7 环境的一些基本配置指导信息,希望对你有所帮助! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值