Hướng dẫn nâng cấp curl lên phiên bản 8.18.0 trên CentOS 7

(1). Môi trường thực nghiệm Hệ thống 4 nhân 8GB CentOS 7.9.2009. Cấu hình nguồn yum và epel từ Alibaba Cloud, tắt firewall và SELinux. (2). Biên dịch và cài đặt curl 8.18.0 từ mã nguồn Phiên bản curl mặc định trên CentOS 7 khá cũ (7.29.0), vì vậy chúng ta cần biên dịch từ mã nguồn để cài đặt phiên bản mới hơn. Bạn có thể tải gói cài đặt tại: https://curl.se/download/. Lưu ý: Các phiên bản curl mới hơn yêu cầu phiên bản OpenSSL tương ứng. Hãy tham khảo hướng dẫn "CentOS7 nâng cấp OpenSSL3.5.4" để thực hiện nâng cấp OpenSSL trước. 1. Cài đặt các thư viện phụ thuộc

yum -y install libpsl libpsl-devel
2. Quá trình biên dịch và cài đặt

# Giải nén gói mã nguồn
tar -xvf curl-8.18.0.tar.xz

# Di chuyển vào thư mục mã nguồn
cd curl-8.18.0

# Cấu hình quá trình biên dịch
# Tham số --with-openssl được sử dụng để chỉ định đường dẫn đến thư viện OpenSSL.
# Lý do là curl tìm file cấu hình .pc bằng biến môi trường PKGCONFIG thay vì PKG_CONFIG_PATH thông thường.
./configure --with-openssl=/đường/dẫn/tới/openssl-3.5.4 --prefix=/usr/local/curl-8.18.0

# Kiểm tra trạng thái của lệnh configure
echo $?

# Bắt đầu biên dịch, sử dụng số lõi CPU tối đa để tăng tốc
make -j$(nproc)

# Kiểm tra trạng thái của lệnh make
echo $?

# Cài đặt curl đã biên dịch
make install

# Kiểm tra trạng thái của lệnh make install
echo $?
3. Cấu hình biến môi trường Vì yum phụ thuộc vào các thư viện .so cũ, chúng ta không nên thêm biến môi trường LD_LIBRARY_PATH. Thay vào đó, chúng ta sẽ thêm đường dẫn của curl mới vào biến PATH.

# Thêm đường dẫn curl mới vào biến PATH trong file /etc/profile
echo "export PATH=/usr/local/curl-8.18.0/bin:$PATH" >> /etc/profile

# Tải lại cấu hình để áp dụng thay đổi
source /etc/profile
4. Kiểm tra

# Kiểm tra phiên bản curl đã cài đặt
curl --version

# Gửi một yêu cầu HTTP để kiểm tra tính năng
curl -I http://www.baidu.com

# Kiểm tra thư viện libcurl được Python sử dụng (nếu có)
ldd /usr/lib64/python2.7/site-packages/pycurl.so | grep libcurl

# Kiểm tra phiên bản yum (để đảm bảo không bị ảnh hưởng)
yum --version

Thẻ: centos7 cURL openssl biên-dịch-mã-nguồn linux

Đăng vào ngày 30 tháng 6 lúc 14:02