14.04 LTS (desktop) Linux: Squid-Deb-Proxy Server

This is how I install a Squid-Deb-Proxy Server on an Ubuntu 14.04 LTS based Workstation, using a separate LVM Volume. That by using a separate data Volume for the .deb file cache and log files, I am able to retain the already downloaded .deb proxy files when it becomes necessary to reload my Workstation.

At my Home Office, my Web Development Workstation is the the one “Production” system that I constantly depend upon . So it had better be the most infrequently reloaded system I have. That– together with how having a local Squid-Deb-Proxy server really makes a noticeable difference when working with Linux systems– is why I installed this on my Workstation PC. This includes that VirtualBox and any Linux Containers can easily make use of the squid-deb-proxy server– when they are running on the same system.

Please Note: This document uses both the Command Shell and the Root Command Shell. That is why when Terminal Commands are given below, the command prompt that is expected (ending either in $ or #) is at the beginning of each line − so do not copy & paste that 1st character.

Create and Configure Squid-Deb-Proxy Data Volume

For Ubuntu 14.04 LTS based Linux, I use lts14 as the LVM Volume Group, with the following Volumes:
/dev/mapper/lts14-root … / ← the file system root directory
/dev/mapper/lts14-home … /home ← the user home directories
/dev/mapper/lts14-swap … swap area

Additional LVM Volume(s) created in this document assume lts14 has the necessary free or unused space to do that.

If the Linux OS was installed with /var on its own LVM Volume:

Terminal Commands ← to put the Squid Deb Proxy data on it's own LVM volume

  • create & configure squid-deb-proxy Logical Volume and Directories from the root command shell
    $ sudo -i

First Time (only) … creation of squid-deb-proxy data volume:

# lvcreate -L 50G -n debproxy lts14
# mkfs -t ext4 /dev/mapper/lts14-debproxy

  • Install what is needed to use the squid-deb-proxy Logical Volume
    # mkdir /mnt/squid-deb-proxy
    # chown proxy:proxy /mnt/squid-deb-proxy
    # nano /etc/fstab    # add the following line to this file
    /dev/mapper/lts14-debproxy    /mnt/squid-deb-proxy   ext4   defaults   0       2
    # exit

RESTART SYSTEM

  • again, create & configure squid-deb-proxy Directories from the root command shell
    $ sudo -i

First Time (only) … creation of squid-deb-proxy data directories:

# mkdir /mnt/squid-deb-proxy/log
# mkdir /mnt/squid-deb-proxy/cache

  • Finish configuring the LVM volume for the squid-deb-proxy install
    # ln -s /mnt/squid-deb-proxy/log /var/log/squid-deb-proxy
    # ln -s /mnt/squid-deb-proxy/cache /var/cache/squid-deb-proxy
    # exit

Install and Configure Squid-Deb-Proxy Server

$ sudo apt-get install squid-deb-proxy
$ cd /etc/squid-deb-proxy/mirror-dstdomain.acl.d
$ sudo mv 10-default 10-default.old
$ sudo nano 10-default    # copy & paste the following into this empty file
10-default
# /etc/squid-deb-proxy/mirror-dstdomain.acl.d/10-default
#
# network destinations that are allowed by this cache
 
# linux distro archives
.linuxmint.com
uberstudent.net
archive.ubuntustudio.org
repo.linuxliteos.com
packages.medibuntu.org
# Medibuntu repository no longer exits ... permit Internet DNS error
 
# launchpad personal package archives
ppa.launchpad.net
 
# system & development package archives
.mate-desktop.org
download.bitdefender.com
download.virtualbox.org
dlc-cdn.sun.com
download.opensuse.org
nginx.org
dl.hhvm.com
 
# additional mirror domains
mega.nz
mega.co.nz
linux.dropbox.com
deb.torproject.org
dl.google.com
deb.opera.com
 
repo.steampowered.com
archive.getdeb.net
mirrors.dotsrc.org