dpkg: local cache for .deb files
With this patch, /var/cache/apt/archives directory content is preserved. The directory is actually a bind mount of the ~/.cache/image-create/apt/$DISTRO_NAME directory, much like what we do for ccache. You can use DIB_APT_LOCAL_CACHE=0 to disable this behavior. This trivial change improve performance A LOT (>30%), even if a local HTTP proxy because: - there is no need to copy again and again the same files - we avoid network latency The patch has been tested with Debian and Ubuntu with every elements from the tripleo-image-elements repository, the final size of the cache directory is about 700MB per distribution subdirectory. Change-Id: I4fab499493f734c7c546d4d23b1a98f0e7523a39
This commit is contained in:
parent
343f70cd23
commit
eca59b2e97
@ -7,6 +7,13 @@ can be used by any dpkg based element.
|
|||||||
|
|
||||||
The dpkg specific version of install-packages is also kept here.
|
The dpkg specific version of install-packages is also kept here.
|
||||||
|
|
||||||
If an extra or updated apt key is needed then define DIB\_ADD\_APT\_KEYS with
|
### Environment Variables ###
|
||||||
the path to a folder. Any key files inside will be added to the key ring before
|
|
||||||
any apt-get commands take place.
|
* DIB\_ADD\_APT\_KEYS: If an extra or updated apt key is needed then define
|
||||||
|
DIB\_ADD\_APT\_KEYS with the path to a folder. Any key files inside will be
|
||||||
|
added to the key ring before any apt-get commands take place.
|
||||||
|
* DIB\_APT\_LOCAL\_CACHE: You can use this variable to disable the internal cache
|
||||||
|
of the /var/cache/apt/archives directory by setting it to 0. The default is to bind
|
||||||
|
mount the ~/.cache/image-create/apt/$DISTRO_NAME directory in
|
||||||
|
/var/cache/apt/archives, this to cache the .deb files downloaded during the image
|
||||||
|
creation.
|
||||||
|
@ -4,4 +4,6 @@
|
|||||||
set -eu
|
set -eu
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
if ! mount | grep /var/cache/apt/archives; then
|
||||||
apt-get clean
|
apt-get clean
|
||||||
|
fi
|
||||||
|
16
elements/dpkg/root.d/99-shared_apt_cache
Executable file
16
elements/dpkg/root.d/99-shared_apt_cache
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
DIB_APT_LOCAL_CACHE=${DIB_APT_LOCAL_CACHE:-1}
|
||||||
|
|
||||||
|
if [ $DIB_APT_LOCAL_CACHE = "0" ]; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt_cache_dir=$HOME/.cache/image-create/apt/$DISTRO_NAME
|
||||||
|
if [ ! -d $apt_cache_dir ]; then
|
||||||
|
mkdir -p $apt_cache_dir
|
||||||
|
fi
|
||||||
|
sudo mount --bind $apt_cache_dir $TARGET_ROOT/var/cache/apt/archives
|
Loading…
Reference in New Issue
Block a user