Installing cURL from the standard Ubuntu repositories provides the command-line client used for HTTP requests, API checks, downloads, and scripted transfers. Keeping it under apt means security fixes and package updates follow the normal operating system maintenance path.
On current Ubuntu releases, installing the curl package places the binary at /usr/bin/curl and pulls in the runtime pieces it needs, including the packaged libcurl library and certificate bundle. That keeps TLS trust, protocol support, and future fixes aligned with the distro build instead of introducing a second installation method.
Commands below assume an Ubuntu host with working repositories and an account that can run sudo. If curl is already present, apt reports that the newest package is already installed; if the final HTTPS request fails, the package is present but outbound DNS, proxy policy, or certificate trust still needs attention.
Related: How to save cURL output to a file
Related: How to debug HTTP requests with cURL
$ sudo apt update Get:1 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB] ##### snipped ##### Reading package lists... Done
apt update refreshes repository metadata so the install step can select the current curl package from the configured Ubuntu sources.
$ sudo apt install curl Reading package lists... Done Building dependency tree... Done Reading state information... Done The following NEW packages will be installed: curl ##### snipped ##### Setting up curl (8.5.0-2ubuntu10.8) ...
The omitted package lines cover dependencies such as the packaged libcurl runtime and certificate bundle. When curl is already installed, the same command reports that the newest package is already present instead of reinstalling it.
$ dpkg -s curl Package: curl Status: install ok installed Version: 8.5.0-2ubuntu10.8 Architecture: arm64
The exact version and architecture vary by Ubuntu release and hardware, but the installed status and package version confirm that apt registered the package correctly.
$ curl --silent --show-error --head https://example.com/ HTTP/2 200 date: Tue, 21 Apr 2026 23:12:42 GMT content-type: text/html server: cloudflare last-modified: Sat, 18 Apr 2026 00:51:00 GMT allow: GET, HEAD accept-ranges: bytes
--silent keeps the header check readable and --show-error still prints a failure reason if the request cannot complete. If this request fails, the package installation completed but outbound DNS, HTTPS inspection, proxy policy, or CA trust still needs correction before automation can rely on curl.