apt-cacher-ng не удается импортировать из нового распределения, т.е. бионических 18.04

я выполняю apt-cacher-ng (успешно справляющийся) на сервере человечности 16.04 (рабочий стол) с медленным сетевым соединением. я имею 18,04 ноутбуков и использовал быстрое соединение для загрузки всех установленных пакетов и rsync'd их к _import для получения очка одним ударом. я затем указываю на ноутбук, склонный использовать порт сервера 3142 в качестве прокси (и проверил, что он на самом деле используется). это должно заполнить успешно справляющиеся индексные файлы. однако, когда я инициировал импорт с сервера (http://localhost:3142/acng-report.html), ни один из бионических файлов не импортируется. далее, кажется, что индексные файлы (Package.xz) никогда не хранятся в успешно справляющемся dir (они появляются для более старых дистрибутивов, но не для бионического),

какие потребности быть сделанным для импорта 18,04 пакетов на 16,04 получении очка одним ударом? как индексные файлы воссоздают на ноутбуке, не обнаруживаясь в успешно справляющемся кэше?

# on laptop
echo 'Acquire::http { Proxy "http://desktop:3142"; };' | sudo tee /etc/apt/apt.conf.d/01proxy
sudo rm /var/cache/apt/*.bin
sudo rm /var/lib/apt/lists/*
sudo apt-get update

никакие хиты не найдены во время импорта, и внизу он говорит:

4 908 файлов (2,1 гибибайта) оставлены позади

0
задан 22 January 2019 в 16:28

1 ответ

я закончил тем, что выяснил, как сделать это. apt-cacher-ng может в пакетах импорта теории, помещенных в _import, но современная Кв., кажется, не загружает индексные файлы способом, что получение очка одним ударом (по крайней мере, 0.9.1 версий в человечности 16.04) распознает настолько успешно справляющийся, не может определить импорт и ничего не делает

обходное решение должно явно запросить индексные файлы и затем инициировать импорт с помощью веб-приложения

# for bionic, with myhost as the acng host:

base="http://us.archive.ubuntu.com/ubuntu/dists"
for kk in bionic{,-updates,-backports}; do
  for jj in amd64 i386; do
    for ii in main multiverse restricted universe; do
      url="$base/$kk/$ii/binary-$jj/Packages.xz";
      echo $url;
      curl -x myhost:3142 $url > /dev/null;
    done;
  done;
done

# then trigger the import

в этой точке, все импортированное успешно. я отследил это вниз использование множества инструментов, которые могли бы быть полезными, при попытке импортировать из другого репозитория:

sudo strace -s 222 -v -y -yy -o ~/apt.log apt-get update
sudo ngrep -d any -vv -w byline outbound and not dst myhost or dst port 3142 > ~/apt2.log 2>&1

# strace output at the point of printing the package file

read(7<pipe:[341008]>, "200 URI Start...\nURI: http://us.archive.ubuntu.com/ubuntu/dists/bionic/universe/binary-amd64/by-hash/SHA256/39ec12bac1f788ae649d32c138898d49fdec15eee020a9c72ae92a622fb662a0\nSize:"..., 64000) = 232
write(1</dev/pts/4>, "Get:8 http://us.archive.ubuntu.com/ubuntu bionic/universe amd64 Packages [8,570 kB]\n", 84) = 84
stat("/var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_bionic_universe_binary-amd64_Packages.xz", ...) = 0

# the ngrep output showed the same hash

таким образом вместо того, чтобы загрузить Package.xz зарегистрируйте непосредственно, apt использует хеш (и по-видимому acng не делает теперь об этом). захват для этого хеша:

sudo grep -r 39ec12ba... /var/cache/apt* /var/lib/apt*

/var/lib/apt/lists/us.archive.ubuntu.com_ubuntu_dists_bionic_InRelease
39ec12ba...          8569560 universe/binary-amd64/Packages.xz

который является как apt знает для использования хеша вместо Packages.xz URL

0
ответ дан 26 October 2019 в 11:57

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

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