I want to set up a LAN server which will cache all the downloaded packages and supply them to other machines in the LAN when they may need them.

I came across various tools for the purpose like 'apt-proxy','apt-cacher','approx' and 'apt-cacher-ng'.

What are the relative merits and demerits of each tool and which tool is the best of the lot?