1.添加一个新的 repo
vim /etc/yum.repos.d/city-fan.repo
[CityFanforCurl]
name=City Fan Repo
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/
enabled=0
gpgcheck=0
2.安装 epel
yum install epel-release -y
3.安装 libnghttp2
yum --enablerepo=epel install libnghttp2 -y
4.更新 curl
yum update curl --enablerepo=CityFanforCurl -y
以下方法已失效,rmp都是我临时找到更新的
# ~~安装编译环境:~~
```text
~~yum -y groupinstall "Development Tools"
yum -y install libev libev-devel zlib zlib-devel openssl openssl-devel git~~
```
~~安装 OpenSSL:~~
```text
~~mkdir /var/tmp
cd /var/tmp
wget https://openssl.org/source/openssl-1.0.2.tar.gz
tar -zxf openssl-1.0.2.tar.gz
cd openssl-1.0.2
mkdir /opt/openssl
./config --prefix=/opt/openssl
make
make test
make install~~
```
~~安装 nghttp2:~~
```text
~~git clone https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
autoreconf -i
automake
autoconf
./configure
make
make install
echo '/usr/local/lib' > /etc/ld.so.conf.d/custom-libs.conf
ldconfig
ldconfig -p| grep libnghttp2~~
```
~~安装 curl:~~
```text
~~cd /var/tmp
git clone https://github.com/bagder/curl.git
cd curl
./buildconf
./configure --with-ssl=/opt/openssl --with-nghttp2=/usr/local --disable-file --without-pic --disable-shared
make~~
```
~~验证:~~
```text
~~$ /var/tmp/curl/src/curl --version
curl 7.70.0-DEV (x86_64-unknown-linux-gnu) libcurl/7.70.0-DEV OpenSSL/1.0.2o nghttp2/1.41.0-DEV
Release-Date: [unreleased]
Protocols: dict ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTP2 HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets~~
```
~~**注意**~~~~:curl 从 7.52.0 版本开始也已经支持 TLS 1.3 了,curl 7.61.0 及以上在 TLS 握手过程中协商 TLS 版本时,curl 默认使用 TLS 1.3,但也取决于 curl 正在使用的 TLS 库及其版本,例如:要求 OpenSSL 1.1.1 版本以上。~~
~~安装新版 libcurl 的 yum 源:~~
```text
~~rpm -ivh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm~~
```
~~升级:~~
```text
~~yum upgrade libcurl~~
```
~~升级完成后可以卸载此 yum 源:~~
```text
~~rpm -e city-fan.org-release~~
```
```shell
~~语法格式:
curl [options] [URL...]
常用选项如下所示:
-A/--user-agent <string>: 设置用户代理发送给服务器 -e/--referer <URL>: 来源网址 --cacert <file>: CA 证书(SSL) -k/--insecure: 允许忽略证书进行 SSL 连接 --compressed: 要求返回是压缩的格式 -H/--header <line>: 自定义首部信息传递给服务器 -i: 显示页面内容,包括报文首部信息 -I/--head: 只显示响应报文首部信息 -D/--dump-header <file>: 将 URL 的 header 信息存放在指定文件中 --basic: 使用 HTTP 基本认证 -u/--user <user[:password]>: 设置服务器的用户和密码 -L: 如果有 3xx 响应码,重新发请求到新位置 -O: 使用 URL 中默认的文件名保存文件到本地 -o <file>: 将网络文件保存为指定的文件中 --limit-rate <rate>: 设置传输速度 -0/--http1.0: 数字 0,使用 HTTP 1.0 -v/--verbose: 更详细 -C: 选项可对文件使用断点续传功能 -c/--cookie-jar <file name>: 将 URL 中 Cookie 存放在指定文件中 -x/--proxy <proxyhost[:port]>: 指定代理服务器地址 -X/--request <command>: 向服务器发送指定请求方法 -U/--proxy-user <user:password>: 代理服务器用户和密码 -T: 选项可将指定的本地文件上传到 FTP 服务器上 --data/-d: 方式指定使用 POST 方式传递数据 -b name=data: 从服务器响应 set-cookie 得到值,返回给服务器~~
```
欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论。