Mac OS X Sierra Install wget Network Downloader Utility

Posted on in Categories , , , last updated April 1, 2017

I recently learned that “wget” can continue getting a partially-downloaded (resume download) file. I am unable to find wget command on Mac OS X. How do I install install wget on Mac OS X (Mountain Lion/ Mavericks / Snow Leopard)? How can I install wget in Mac OS X without 3rd-party repo such as Homebrew or MacPorts?

You can install the latest version of GNU/wget and many other open source software without using Homebrew or MacPorts. The steps are as follows to install wget on macOS Sierra using either Homebrew or source code:

  1. Easy method #1: Install Homebrew and type command ‘brew install wget‘ on macOS Sierra.
  2. Source code method #2:
    1. Download, compile and install OpenSSL
    2. Download, compile and install wget on macOS Sierra

Let use see both methods in detailed.

Method #1: Install wget using brew (recommended method)

Trust me this is the best and easy method to install wget using Homebrew:

Install Homebrew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install wget

$ brew install wget
Sample outputs:

Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/wget-1.19.1.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring wget-1.19.1.sierra.bottle.tar.gz
?  /usr/local/Cellar/wget/1.19.1: 10 files, 1.6MB

Use wget

$ /usr/local/bin/wget url
$ /usr/local/bin/wget url/file.tar.gz
$ /usr/local/bin/wget https://www.cyberciti.biz/

That is all, and you need to stop reading the rest. Please note that the rest of the following tutorial covers wget command installation using the source code method.

Method #2: Install wget using source code (recommended for advanced users only)

You need to install a free app called Xcode. It includes command line development tools such as gnu/gcc and friends. See how to install GCC Compiler with Xcode for more information.

Fig.01: Install gcc compiler on Mac OS X
Fig.01: Install gcc compiler on Mac OS X

I installed command line tools using the following command:
$ xcode-select --install

Step #1: Download gnu/wget source code

Use curl command as follows to download the latest gnu/wget from the official project site. Open the Terminal and than type the following commands:
$ cd /tmp
$ curl -O http://ftp.gnu.org/gnu/wget/wget-1.15.tar.gz
$ ls -l

Sample outputs:

Fig.02: Downloading wget source code with the curl utility
Fig.02: Downloading wget source code with the curl utility

Step #2: Extract files

Use the tar command to extract files on OS X as follows:
$ tar xvf wget-1.15.tar.gz
Sample outputs:

x wget-1.15/
x wget-1.15/doc/
x wget-1.15/doc/stamp-vti
x wget-1.15/doc/texi2pod.pl
x wget-1.15/doc/Makefile.in
....
..
...
x wget-1.15/NEWS
x wget-1.15/configure
x wget-1.15/ChangeLog
x wget-1.15/MAILING-LIST

Step #3: Configure, Compile and Install GNU/wget on OS X

First, cd to the wget-1.15 directory using cd command:
$ cd wget-1.15
To configure wget, enter:
$ ./configure --with-ssl=openssl
Sample outputs:

Configure: configuring for GNU Wget 1.15
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
....
..
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating doc/Makefile
config.status: creating util/Makefile
config.status: creating po/Makefile.in
config.status: creating tests/Makefile
config.status: creating tests/WgetTest.pm
config.status: creating lib/Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

To compile wget on OS X, enter:
$ make
Sample outputs:

/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in lib
rm -f alloca.h-t alloca.h && \
	{ echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
	  cat ./alloca.in.h; \
	} > alloca.h-t && \
	mv -f alloca.h-t alloca.h
....
..
...
gcc  -O2 -Wall   -o wget cmpt.o connect.o convert.o cookies.o ftp.o css_.o css-url.o ftp-basic.o ftp-ls.o hash.o host.o html-parse.o html-url.o http.o init.o log.o main.o netrc.o progress.o ptimer.o recur.o res.o retr.o spider.o url.o warc.o utils.o exits.o build_info.o  version.o ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a -liconv  -lssl -lcrypto -lz -ldl -lz -lz  
Making all in doc
./texi2pod.pl -D VERSION="1.15" ./wget.texi wget.pod
/usr/bin/pod2man --center="GNU Wget" --release="GNU Wget 1.14" wget.pod > wget.1
Making all in po
Making all in tests
make[2]: Nothing to be done for `all'.
Making all in util
make[2]: Nothing to be done for `all'.
make[2]: Nothing to be done for `all-am'.

To install wget, enter:
$ sudo make install

Find out wget location on OS X

By default wget will be installed at the /usr/local/bin/wget. You can use the whereis utility (or type -a) to check the wget location, enter:
$ whereis wget
OR
$ type -a wget
If you do not see output, edit $HOME/.bash_profile or $HOME/.bashrc and add/edit/append PATH as follows:
export PATH=${PATH}:/usr/local/bin
Save and close the file.

How do I use wget command?

The basic syntax is:
wget url
wget http://www.cyberciti.biz/
wget ftp://url/

To see wget version, type:
$ wget --version
Sample outputs:

Installed wget on macOS Sierra
Installed wget on macOS Sierra

How do I update installed gnu/wget on OS X?

Warning: The following method only works if you installed gnu/wget earlier using source code based method as described above. Do not use the following method if you installed wget using Homebrew or MacPorts.

A note about installing wget on macOS Sierra using source code

You need to first install the latest version of openssl:
### Step #1: Grab and install latest openssl version 1.19.1 using source code ###
$ cd /tmp/
$ curl -O https://www.openssl.org/source/openssl-1.1.0e.tar.gz
$ tar -zxvf openssl-1.1.0e.tar.gz
$ cd openssl-1.1.0e
$ ./config
$ make
$ sudo make install

Finally install wget using the following method:
### Step #2: Grab and install wget version 1.19.1 using source code ###
$ cd /tmp
$ curl -O http://ftp.gnu.org/gnu/wget/wget-1.19.1.tar.gz
$ tar -zxvf wget-1.19.1.tar.gz
$ cd wget-1.19.1
$ export OPENSSL_CFLAGS="-I/usr/local/include"
$ export OPENSSL_LIBS="-L/usr/local/lib -lssl -lcrypto -lz"
$ ./configure --with-ssl=openssl
$ make
$ sudo make install
$ /usr/local/bin/wget url

See also

I recommend the following resources for usage and examples on both wget and curl commands:

And there you have it, gnu/wget installed from directly source code without using 3rd party repos.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

14 comment

  1. I was inspired so i looked up something else – today successfully compiled Nmap from source. ( link – nmap.org/download.html#source )
    I also tried mtr, but that failed. May look into it later.

      1. It only take 2 minutes provided that you *trust Homebrew devs* not to install backdoor in GNU wget. Having said that I used the ‘brew install wget’ method. As it was very easy and I am lazy af. I trust Homebrew devs :) YMMV.

  2. configure: error: in `/Users/blue/wget-1.16.3′:
    configure: error: The pkg-config script could not be found or is too old. Make sure it
    is in your PATH or set the PKG_CONFIG environment variable to the full
    path to pkg-config.

    Alternatively, you may set the environment variables OPENSSL_CFLAGS
    and OPENSSL_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.

    To get pkg-config, see .
    See `config.log’ for more details
    blue:wget-1.16.3 blue$ make
    There seems to be no Makefile in this directory.
    You must run ./configure before running ‘make’.
    make: *** [abort-due-to-no-makefile] Error 1

    I can’t use make… I even used just ./configure but same result, please help…

Leave a Comment