snapcraft cleanbuild
应该让我在干净的环境中构建snaps。因此,它从一个最小的LXD镜像开始,并安装必要的软件包。然而,它似乎使用了极其缓慢的archive.ubuntu.com
镜像。我该如何缓存它下载的软件包?
我可以设置apt-cacher-ng
或其他缓存代理,但仍然存在将snap/LXD组合使用它的问题。最好是它有一个像pbuilder那样的内部缓存,但如果没有,那么我该如何说服它使用不同的镜像或代理来获取镜像?
获取主机 IP 地址(容器可见):
export LXD_ADDRESS=$(ip -4 -o address show dev lxdbr0 | awk -F'[ /]*' '{print $4}')
使用它来设置默认配置文件的代理设置:
printf '%s\n' '#cloud-config' 'apt:' " proxy: http://$LXD_ADDRESS:8000" |
lxc profile set default user.user-data -
Preparing to pull glue
Pulling glue
Preparing to pull cassandra
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
...
Get:46 http://archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [3004 B]
Fetched 26.0 MB in 6s (4237 kB/s)
Get:1 ca-certificates-java_20160321_all.deb [12.9 kB]
Fetched 12.9 kB in 0s (0 B/s)
Get:1 libxdmcp6_1.1.2-1.1_amd64.deb [11.0 kB]
Fetched 11.0 kB in 0s (0 B/s)
Get:1 init-system-helpers_1.29ubuntu4_all.deb [32.3 kB]
Fetched 32.3 kB in 0s (0 B/s)
Get:1 default-jre-headless_1.8-56ubuntu2_amd64.deb [4380 B]
Fetched 4380 B in 0s (0 B/s)
Get:1 default-jdk_1.8-56ubuntu2_amd64.deb [968 B]
Fetched 968 B in 0s (0 B/s)
Get:1 libkrb5-3_1.13.2+dfsg-5ubuntu2_amd64.deb [273 kB]
http_proxy
:lxc profile set default environment.http_proxy "http://$LXD_ADDRESS:3128"
snapcraft cleanbuild
时并没有使用它(apt-cacher-ng在日志或缓存目录中没有任何更改)。 - muruenvironment.http_proxy
而不是user.user-data/apt
,并且使用了更通用的squid/apt-cacher-ng代理而不是squid-deb-proxy,但核心思想是一样的。 - muru