The cURL package contains a
utility and a library used for transferring files with URL syntax
to any of the following protocols: DICT, FILE, FTP, FTPS, GOPHER,
GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S,
RTSP, SMB, SMBS, SMTP, SMPTS, TELNET, and TFTP. Its ability to both
download and upload files can be incorporated into other programs
to support functions like streaming media.
Approximate build time:
0.2 SBU (add 4.5 SBU for tests (without
valgrind)
Required disk space:
49 MB (add 6 MB for tests)
cURL Dependencies
Recommended
Section 9.21, “libpsl-0.21.5”
Note
While there is an option to build the package without libpsl,
both the upstream developers and the BLFS editors alike highly
recommend not disabling support for libpsl due to severe security
implications.
Recommended (runtime)
Section 9.20, “make-ca-1.16.1”
9.24.1. Installation of cURL
Prepare cURL by running the
following commands:
./configure --prefix=/usr \
--disable-static \
--with-openssl \
--with-ca-path=/etc/ssl/certs
Compile the package:
make
To run the test suite, issue:
make test
Note
Some tests are flaky, so if some tests have failed it's possible
to run a test again with: (cd
tests; ./runtests.pl <test
ID>) (the ID of failed tests are
shown in the “These test cases
failed:” message). If you run the tests
after the package has been installed, some tests may fail because
the man pages were deleted by the 'find' command in the
installation instructions below.
Install the package:
make install
rm -rf docs/examples/.deps
find docs \( -name Makefile\* -o \
-name \*.1 -o \
-name \*.3 -o \
-name CMakeLists.txt \) -delete
cp -v -R docs -T /usr/share/doc/curl-8.18.0
To run some simple verification tests on the newly installed
curl, issue the
following commands: curl
--trace-ascii debugdump.txt
https://www.example.com/ and curl --trace-ascii d.txt --trace-time
https://example.com/. Inspect the locally created
trace files debugdump.txt and
d.txt, which contains version
information, downloaded files information, etc. One file has the
time for each action logged.
9.24.2. Command Explanations
--disable-static: This
switch prevents installation of static versions of the libraries.
--with-ca-path=/etc/ssl/certs: This
switch sets the location of the BLFS Certificate Authority store.
--with-openssl: This
parameter chooses OpenSSL as
SSL/TLS implementation. This option is not needed if --with-gnutls is selected instead.
--with-gssapi: This parameter adds
Kerberos 5 support to libcurl.
--with-gnutls: Use this switch to build
with GnuTLS support instead of
OpenSSL for SSL/TLS.
--with-ca-bundle=/etc/pki/tls/certs/ca-bundle.crt:
Use this switch instead of --with-ca-path if building with
GnuTLS support instead of
OpenSSL for SSL/TLS.
--with-libssh2: This parameter adds
SSH support to cURL. This is
disabled by default.
--enable-ares: This parameter adds
support for DNS resolution through the c-ares library.
find docs ... -exec rm {}
\;: This command removes Makefiles and man files from the documentation
directory that would otherwise be installed by the commands that
follow.
9.24.3. Contents
Installed Programs:
curl, curl-config, and wcurl
Installed Library:
libcurl.so
Installed Directories:
/usr/include/curl and
/usr/share/doc/curl-8.18.0
Short Descriptions
|
curl
|
is a command line tool for transferring files with URL
syntax
|
|
curl-config
|
prints information about the last compile, like libraries
linked to and prefix setting
|
|
wcurl
|
is a simple wrapper around curl to easily download files
|
|
libcurl.so
|
provides the API functions required by curl and other programs
|