Как мне кэшировать пакеты для чистой сборки Snapcraft?

snapcraft cleanbuild должен позволять мне создавать снимки в чистых помещениях. Соответственно он начинается с минимального LXD-образа и устанавливает необходимые пакеты. Однако, похоже, что используется базовое зеркало archive.ubuntu.com, которое мучительно медленно. Как мне кэшировать загружаемые пакеты?

Я мог бы настроить apt-cacher-ng или другой кеширующий прокси-сервер, но все еще остается проблема использования комбинации snap / LXD. Было бы лучше, если бы у него был внутренний кеш, как у pbuilder, но если нет, то как мне убедить его использовать другое зеркало или прокси для зеркала?

7
задан 20 February 2018 в 04:22

1 ответ

Основные принципы, как обрисовано в общих чертах в работе предложения popey:

  1. Настройте кэширующийся прокси на хосте (или в другом месте, в зависимости от Ваших предпочтений, я приму хост): apt-cacher-ng, squid-deb-proxy или сам сквид.
  2. Получите IP-адрес хоста (как замечено контейнером):

    export LXD_ADDRESS=$(ip -4 -o address show dev lxdbr0 | awk -F'[ /]*' '{print $4}')
    
  3. Используйте его для установки настроек прокси профиля по умолчанию:

    printf '%s\n' '#cloud-config' 'apt:' " proxy: http://$LXD_ADDRESS:8000" |
      lxc profile set default user.user-data -
    
  4. Успех!

Однако существует несколько протестов.

snapcraft cleanbuild загрузки много пакетов некоторым другим механизмом, чем обычное apt-get, который не затронут этой конфигурацией. Это безумие замечено в этой части вывода:

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"

И так же для HTTPS, так как некоторые другие загрузки в контейнере использовали HTTPS. Я обычно предпочитаю apt-cacher-ng, но он не поддерживает ПОДКЛЮЧЕНИЕ HTTPS, таким образом, я переключился на сквид.

0
ответ дан 20 February 2018 в 14:22
  • 1
    Тогда получите кэдди SSD 20$ и чистую установку Десять через ее провод USB. Никакая потребность играть с Личинкой. – Mikemecanic 19 February 2019 в 07:43

Другие вопросы по тегам:

Похожие вопросы: