RHEL/CentOS 6 에서 curl 최신 버전 설치

필요성

  1. 솔루션 빌드시 confluence에 있는 매뉴얼을 PDF 로 자동으로 변환해서 packaging하려고 함(Scroll PDF 사용시 confluence 페이지를 PDF 로 변환할 수 있는 REST API 가 제공됨)

  2. 변환시 curl 을 이용하여 HTTP 로 request를 보내는데 curl은 기본적으로 저장시 URL 에서 파일 이름을 추출해서 저장

  3. 문서 이름을 제대로 저장하기 위해서는 Web Server가 Content-Disposition Header 에 담아주는 파일이름을 처리할 수 있는 curl 이 필요함.

    HTTP Header example
    Content-Disposition: attachment; filename*=UTF-8''Na%C3%AFve%20file.txt
  4. 해당 옵션은 curl 7.20.x 부터 추가(http://curl.haxx.se/changes.html)되어 있는데 RHEL/CentOS 에는 7.19.7 이 탑재되어 업그레이드 필요

    added -J/--remote-header-name for using server-provided filename with -O

현재 curl 은 Content-Disposition 내에 filename encoding 을 지원하지 않으므로 한글로 된 페이지는 encoding 된 값으로 저장됨.

 

컴파일로 설치

사전 준비

c-areslibidn and libssh2. 가 필요하므로 아래 패키지를 먼저 설치한다.

  1. 필요 라이브러리 다운로드 

    curl -O http://mirror.city-fan.org/ftp/contrib/libraries/c-ares-1.10.0-2.0.cf.rhel6.x86_64.rpm
    curl -O http://mirror.city-fan.org/ftp/contrib/libraries/libssh2-1.4.3-8.0.cf.rhel6.x86_64.rpm
    
  2. library 설치

    yum localinstall c-ares*.rpm libssh2*.rpm 

컴파일 & 설치

http://curl.haxx.se/download.html 에서 Linux - Redhat 를 찾은후에 사용하는 OS 버전 및 bit 에 맞는 바이너리를 다운받는다.

  1. 다운로드

    curl 패키지 다운로드
    curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/curl-7.34.0-1.0.cf.rhel6.x86_64.rpm
    curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-7.34.0-1.0.cf.rhel6.x86_64.rpm
    ## devel 용 library 가 필요하면 아래 패키지도 다운받는다.
    curl -O http://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring/libcurl-devel-7.34.0-1.0.cf.rhel6.x86_64.rpm
  2. package 설치

    yum localinstall libcurl*.rpm curl*.rpm

패키지로 설치

  1. http://www.city-fan.org/ 저장소 설치
    rpm -ivh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/repoview/city-fan.org-release.html

 

 

Ref