Faster ‘vagrant up’ with apt/deb Package Proxy

Create virtual machines faster by caching deb packages.

Use squid-deb-proxy on host OS, then add an apt.conf.d/ config file to make guest OS apt-get use your proxy.

Following these notes requires fluency with command line, sudo, daemons and vagrant.

I have written these short notes from memory, and it’s not a complete tutorial.

Host OS: squid-deb-proxy

$ sudo apt-get update
$ sudo apt-get -y install squid-deb-proxy

I also added “” to /etc/squid-deb-proxy/mirror-dstdomain.acl and ‘sudo systemctl reload squid’, but I didn’t verify if this change is really necessary.


You must update your own host OS IP address to Vagrantfile.

# Copyright 2017 Tero Karvinen

$tscript = <<TSCRIPT
set -o verbose

echo -e 'Acquire::http::proxy "";\nAcquire::https::proxy "";' \
 > '/etc/apt/apt.conf.d/30proxy'
cat /etc/apt/apt.conf.d/30proxy

apt-get update
apt-get -y install puppet ipython3 tree curl wget bash-completion postgresql
echo "See you on"

Vagrant.configure(2) do |config| = "bento/ubuntu-16.04"
 config.vm.provision "shell", inline: $tscript

 config.vm.define "tero" do |tero|
 tero.vm.hostname = "tero" "forwarded_port", guest: 80, host: 12080

Provisioning the Guest

$ vagrant up
$ vagrant ssh

The first time the machine is provisioned the package download takes normal time. After that, packages are downloaded from the host OS proxy and provisioning is much faster.

$ vagrant destroy; time vagrant up && vagrant ssh

Solutions to Common Problems

Are my packages really cached?

$ sudo tail /var/log/squid-deb-proxy/access.log

Should contain lines with TCP_MEM_HIT/200, which means a file was served from Squid cache.

Apt complains: “Extra junk at end of file”?

Quotes and semicolons are required, for example:

$ cat /etc/apt/apt.conf.d/30proxy
Acquire::http::proxy "";
Acquire::https::proxy "";


The speed benefit would be especially large when installing a lot of packages on provisioning or automatically building and destroying vagrant guests multiple times (e.g automatic testing).


Update: removed the percentages and minutes, because the tests were not done very carefully.

Posted in Uncategorized | Tagged , , , , , , , | Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Recent Posts

  • Picks

  • Boxing Clock for AndroidOcton8 Diving T-ShirtsShaking Tower Panda Android GameLearn Chinese with Android
  • Student projects