How to yum update curl 7.29 to 7.61 - CentOS 7.X

## References

 https://www.rootlinks.net/2017/09/21/update-curl-7-29-to-7-55-on-centos-7-with-city-fan-repo/

## How to yum update cURL

- enable city-fan.org repo

```
# rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm

Retrieving http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm
warning: /var/tmp/rpm-tmp.ttjkC5: Header V4 DSA/SHA1 Signature, key ID b56a8bac: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:city-fan.org-release-2-1.rhel7   ################################# [100%]
```


- enable city-fan.org repo

```
# cat /etc/yum.repos.d/city-fan.org.repo
[city-fan.org]
name=city-fan.org repository for Red Hat Enterprise Linux (and clones) $releasever ($basearch)
#baseurl=http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel$releasever/$basearch
mirrorlist=http://mirror.city-fan.org/ftp/contrib/yum-repo/mirrorlist-rhel$releasever
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org

[city-fan.org-debuginfo]
name=city-fan.org debuginfo repository for Red Hat Enterprise Linux (and clones) $releasever ($basearch)
#baseurl=http://www.city-fan.org/ftp/contrib-debug/rhel$releasever/$basearch
mirrorlist=http://www.city-fan.org/ftp/contrib-debug/mirrorlist-rhel$releasever
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org

[city-fan.org-source]
name=city-fan.org source repository for Red Hat Enterprise Linux (and clones) $releasever
#baseurl=http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel$releasever/source
mirrorlist=http://mirror.city-fan.org/ftp/contrib/yum-repo/source-mirrorlist-rhel$releasever
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org
```

- yum update curl

```
# yum info curl
Loaded plugins: langpacks, ulninfo
city-fan.org                                                                                                           | 2.9 kB  00:00:00     
city-fan.org/7Server/primary_db                                                                                        | 475 kB  00:00:03     
Installed Packages
Name        : curl
Arch        : x86_64
Version     : 7.29.0
Release     : 46.el7
Size        : 528 k
Repo        : installed
From repo   : ol7_latest
Summary     : A utility for getting files from remote servers (FTP, HTTP, and others)
URL         : http://curl.haxx.se/
License     : MIT
Description : curl is a command line tool for transferring data with URL syntax, supporting
            : FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP,
            : SMTP, POP3 and RTSP.  curl supports SSL certificates, HTTP POST, HTTP PUT, FTP
            : uploading, HTTP form based upload, proxies, cookies, user+password
            : authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer
            : resume, proxy tunneling and a busload of other useful tricks.

Available Packages
Name        : curl
Arch        : x86_64
Version     : 7.61.0
Release     : 7.0.cf.rhel7
Size        : 529 k
Repo        : city-fan.org/7Server
Summary     : Utility for getting files from remote servers (FTP, HTTP, and others)
URL         : https://curl.haxx.se/
License     : MIT
Description : curl is a command line tool for transferring data with URL syntax, supporting
            : FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE, IMAP,
            : SMTP, POP3 and RTSP.  curl supports SSL certificates, HTTP POST, HTTP PUT, FTP
            : uploading, HTTP form based upload, proxies, cookies, user+password
            : authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer
            : resume, proxy tunneling and a busload of other useful tricks.
```


```
# yum update curl
Loaded plugins: langpacks, ulninfo
Resolving Dependencies
--> Running transaction check
---> Package curl.x86_64 0:7.29.0-46.el7 will be updated
---> Package curl.x86_64 0:7.61.0-7.0.cf.rhel7 will be an update
--> Processing Dependency: libcurl(x86-64) >= 7.61.0-7.0.cf.rhel7 for package: curl-7.61.0-7.0.cf.rhel7.x86_64
--> Processing Dependency: libmetalink.so.3()(64bit) for package: curl-7.61.0-7.0.cf.rhel7.x86_64
--> Running transaction check
---> Package libcurl.x86_64 0:7.29.0-46.el7 will be updated
--> Processing Dependency: libcurl = 7.29.0-46.el7 for package: libcurl-devel-7.29.0-46.el7.x86_64
---> Package libcurl.x86_64 0:7.61.0-7.0.cf.rhel7 will be an update
--> Processing Dependency: libssh2(x86-64) >= 1.8.0 for package: libcurl-7.61.0-7.0.cf.rhel7.x86_64
--> Processing Dependency: libpsl.so.0()(64bit) for package: libcurl-7.61.0-7.0.cf.rhel7.x86_64
--> Processing Dependency: libnghttp2.so.14()(64bit) for package: libcurl-7.61.0-7.0.cf.rhel7.x86_64
---> Package libmetalink.x86_64 0:0.1.3-7.rhel7 will be installed
--> Running transaction check
---> Package libcurl-devel.x86_64 0:7.29.0-46.el7 will be updated
---> Package libcurl-devel.x86_64 0:7.61.0-7.0.cf.rhel7 will be an update
https://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora-projects/epel/7/x86_64/repodata/daa1a27254ac4cb9aed659bf5937c4d2f2cb3915a4cb72bdff69cf573258ae5d-filelists.xml.gz: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
epel/x86_64/filelists                                                                                                  |  10 MB  00:00:00     
city-fan.org/7Server/filelists_db                                                                                      | 328 kB  00:00:01     
--> Processing Dependency: libssh2-devel for package: libcurl-devel-7.61.0-7.0.cf.rhel7.x86_64
---> Package libnghttp2.x86_64 0:1.31.1-1.el7 will be installed
---> Package libpsl.x86_64 0:0.7.0-1.el7 will be installed
---> Package libssh2.x86_64 0:1.4.3-10.el7_2.1 will be updated
---> Package libssh2.x86_64 0:1.8.0-8.0.cf.rhel7 will be an update
--> Running transaction check
---> Package libssh2-devel.x86_64 0:1.8.0-8.0.cf.rhel7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                           Arch                       Version                                  Repository                        Size
==============================================================================================================================================
Updating:
 curl                              x86_64                     7.61.0-7.0.cf.rhel7                      city-fan.org                     529 k
Installing for dependencies:
 libmetalink                       x86_64                     0.1.3-7.rhel7                            city-fan.org                      26 k
 libnghttp2                        x86_64                     1.31.1-1.el7                             epel                              66 k
 libpsl                            x86_64                     0.7.0-1.el7                              city-fan.org                      45 k
 libssh2-devel                     x86_64                     1.8.0-8.0.cf.rhel7                       city-fan.org                      73 k
Updating for dependencies:
 libcurl                           x86_64                     7.61.0-7.0.cf.rhel7                      city-fan.org                     470 k
 libcurl-devel                     x86_64                     7.61.0-7.0.cf.rhel7                      city-fan.org                     1.0 M
 libssh2                           x86_64                     1.8.0-8.0.cf.rhel7                       city-fan.org                     103 k

Transaction Summary
==============================================================================================================================================
Install             ( 4 Dependent packages)
Upgrade  1 Package  (+3 Dependent packages)

Total download size: 2.3 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for city-fan.org
(1/8): libnghttp2-1.31.1-1.el7.x86_64.rpm                                                                              |  66 kB  00:00:00     
warning: /var/cache/yum/x86_64/7Server/city-fan.org/packages/libmetalink-0.1.3-7.rhel7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID b56a8bac: NOKEY
Public key for libmetalink-0.1.3-7.rhel7.x86_64.rpm is not installed
(2/8): libmetalink-0.1.3-7.rhel7.x86_64.rpm                                                                            |  26 kB  00:00:01     
(3/8): libcurl-devel-7.61.0-7.0.cf.rhel7.x86_64.rpm                                                                    | 1.0 MB  00:00:01     
(4/8): libssh2-devel-1.8.0-8.0.cf.rhel7.x86_64.rpm                                                                     |  73 kB  00:00:00     
(5/8): libssh2-1.8.0-8.0.cf.rhel7.x86_64.rpm                                                                           | 103 kB  00:00:00     
(6/8): curl-7.61.0-7.0.cf.rhel7.x86_64.rpm                                                                             | 529 kB  00:00:02     
libpsl-0.7.0-1.el7.x86_64.rpm  FAILED                                          
http://nervion.us.es/city-fan/yum-repo/rhel7/x86_64/libpsl-0.7.0-1.el7.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found 1.4 MB  00:00:02 ETA 
Trying other mirror.
(7/8): libpsl-0.7.0-1.el7.x86_64.rpm                                                                                   |  45 kB  00:00:00     
libcurl-7.61.0-7.0.cf.rhel7.x8 FAILED                                          
http://nervion.us.es/city-fan/yum-repo/rhel7/x86_64/libcurl-7.61.0-7.0.cf.rhel7.x86_64.rpm: [Errno 14] HTTP Error 404 - Not Found00:00:02 ETA 
Trying other mirror.
(8/8): libcurl-7.61.0-7.0.cf.rhel7.x86_64.rpm                                                                          | 470 kB  00:00:00     
----------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                         675 kB/s | 2.3 MB  00:00:03     
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org
Importing GPG key 0xB56A8BAC:
 Userid     : "city-fan.org software librarian <software@city-fan.org>"
 Fingerprint: 2f04 deae a32c 0963 b696 9a95 e0be 69c9 b56a 8bac
 Package    : city-fan.org-release-2-1.rhel7.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Updating   : libssh2-1.8.0-8.0.cf.rhel7.x86_64                                                                                         1/12 
  Installing : libssh2-devel-1.8.0-8.0.cf.rhel7.x86_64                                                                                   2/12 
  Installing : libpsl-0.7.0-1.el7.x86_64                                                                                                 3/12 
  Installing : libmetalink-0.1.3-7.rhel7.x86_64                                                                                          4/12 
  Installing : libnghttp2-1.31.1-1.el7.x86_64                                                                                            5/12 
  Updating   : libcurl-7.61.0-7.0.cf.rhel7.x86_64                                                                                        6/12 
  Updating   : libcurl-devel-7.61.0-7.0.cf.rhel7.x86_64                                                                                  7/12 
  Updating   : curl-7.61.0-7.0.cf.rhel7.x86_64                                                                                           8/12 
  Cleanup    : libcurl-devel-7.29.0-46.el7.x86_64                                                                                        9/12 
  Cleanup    : curl-7.29.0-46.el7.x86_64                                                                                                10/12 
  Cleanup    : libcurl-7.29.0-46.el7.x86_64                                                                                             11/12 
  Cleanup    : libssh2-1.4.3-10.el7_2.1.x86_64                                                                                          12/12 
  Verifying  : libssh2-1.8.0-8.0.cf.rhel7.x86_64                                                                                         1/12 
  Verifying  : libnghttp2-1.31.1-1.el7.x86_64                                                                                            2/12 
  Verifying  : libmetalink-0.1.3-7.rhel7.x86_64                                                                                          3/12 
  Verifying  : libssh2-devel-1.8.0-8.0.cf.rhel7.x86_64                                                                                   4/12 
  Verifying  : libpsl-0.7.0-1.el7.x86_64                                                                                                 5/12 
  Verifying  : libcurl-7.61.0-7.0.cf.rhel7.x86_64                                                                                        6/12 
  Verifying  : libcurl-devel-7.61.0-7.0.cf.rhel7.x86_64                                                                                  7/12 
  Verifying  : curl-7.61.0-7.0.cf.rhel7.x86_64                                                                                           8/12 
  Verifying  : curl-7.29.0-46.el7.x86_64                                                                                                 9/12 
  Verifying  : libcurl-devel-7.29.0-46.el7.x86_64                                                                                       10/12 
  Verifying  : libssh2-1.4.3-10.el7_2.1.x86_64                                                                                          11/12 
  Verifying  : libcurl-7.29.0-46.el7.x86_64                                                                                             12/12 

Dependency Installed:
  libmetalink.x86_64 0:0.1.3-7.rhel7 libnghttp2.x86_64 0:1.31.1-1.el7 libpsl.x86_64 0:0.7.0-1.el7 libssh2-devel.x86_64 0:1.8.0-8.0.cf.rhel7

Updated:
  curl.x86_64 0:7.61.0-7.0.cf.rhel7                                                                                                           

Dependency Updated:
  libcurl.x86_64 0:7.61.0-7.0.cf.rhel7         libcurl-devel.x86_64 0:7.61.0-7.0.cf.rhel7         libssh2.x86_64 0:1.8.0-8.0.cf.rhel7        

Complete!
```

- cf. How to revert

```
 wget http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/curl-7.29.0-46.el7.x86_64.rpm
 wget http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/libcurl-7.29.0-46.el7.x86_64.rpm
 wget http://mirror.centos.org/centos/7.5.1804/os/x86_64/Packages/libcurl-devel-7.29.0-46.el7.x86_64.rpm
 
 rpm -Uvh --oldpackage *.rpm
```

:smile: