Mac OS X: Install wget Network Downloader Utility

by on December 9, 2013 · 9 comments· LAST UPDATED March 23, 2014

in , , ,

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?

Tutorial details
DifficultyIntermediate (rss)
Root privilegesYes
RequirementsXcode
Estimated completion time10m
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:

Prerequisite

You need to instal 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

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:

GNU Wget 1.15 built on darwin13.1.0.
 
+digest +https +ipv6 -iri +large-file -nls +ntlm +opie +ssl/openssl
 
Wgetrc:
    /usr/local/etc/wgetrc (system)
Compile:
    gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc"
    -DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib -O2
    -Wall
Link:
    gcc -O2 -Wall -liconv -lssl -lcrypto -ldl -lz ftp-opie.o openssl.o
    http-ntlm.o ../lib/libgnu.a
 
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
Originally written by Hrvoje Niksic <hniksic@xemacs.org>.
Please send bug reports and questions to <bug-wget@gnu.org>.

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.

## Note: wget v1.16 is not released yet! This is a demo for future version ;) ###
$ cd /tmp
$ VERSION="1.16"
$ wget http://ftp.gnu.org/gnu/wget/wget-${VERSION}.tar.gz
$ tar xvf wget-${VERSION}.tar.gz
$ cd wget-${VERSION}
$ ./configure --with-ssl=openssl && make
$ sudo make install
$ wget --version

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.

TwitterFacebookGoogle+PDF versionFound an error/typo on this page? Help us!

{ 9 comments… read them below or add one }

1 Johan December 10, 2013 at 7:01 am

Worked like magic on my OSX 10.6.8 ! More PLZ!

Reply

2 wakou December 10, 2013 at 2:53 pm

I don’t use a MAC but would like to thank and congratulate the poster on his excellent and comprehensive reply.. Great work!

Reply

3 Johan December 11, 2013 at 7:39 am

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.

Reply

4 Johan December 11, 2013 at 7:39 am

This also on OSX 10.6.8 of course.

Reply

5 Deep Sukhwani February 21, 2014 at 5:12 pm

Awesome, thanks so much for helping!…

Reply

6 Jason February 27, 2014 at 6:57 pm

Alternatively, one could have Macports (https://www.macports.org/) installed and simply install wget via the CLI:

sudo port install wget

Then create a link to wget, and use it from the CLI like on any other posix box:

sudo ln -s /opt/local/bin/wget /usr/bin/wget

Reply

7 john February 28, 2014 at 2:46 am

curl can also resume a partially downloaded file, even on mac os x. I see why you need wget for this…

just do:
$ curl -C –

Reply

8 Sheharyar March 21, 2014 at 11:34 am

A better way would be to install Homebrew and then install wget through it.

$ brew install wget

Reply

9 Jason March 22, 2014 at 8:08 pm

Why is this way better than any of the others suggested?

Reply

Leave a Comment

Tagged as: , , , ,

Previous Faq:

Next Faq: