Готовый конфиг для Pacoloco: кэширование официальных репозиториев, ALHP и Chaotic-AUR с автозагрузкой обновлений.
Этот репозиторий содержит мой конфиг для Pacoloco и краткую инструкцию по настройке.
Если у тебя дома или в офисе несколько машин с Arch Linux, Pacoloco кеширует пакет и раздаёт его остальным по локальной сети. Это сильно экономит трафик и ускоряет установку и обновление софта. Для моих 6 машин и мобильного интернета, как в моём случае - это просто рай.
- Prefetch - сервер автоматически проверяет и кэширует новые версии пакетов в 3:00 ночи по времени настроенному, где лежит pacoloco.
- Поддержка трёх типов репозиториев:
- Официальные
core/extra/multilibArch Linux - Chaotic-AUR
- ALHP (
x86-64-v3и другие)
- Официальные
- Установи Pacoloco:
sudo pacman -S pacoloco
- Замени конфиг по умолчанию на мой:
sudo cp pacoloco.yaml /etc/pacoloco.yaml
- Запусти и включи службу:
sudo systemctl enable --now pacoloco
- Создай Докер-контейнер с именем
pacoloco:
docker run -d --name pacoloco \
-p 9129:9129 \
-v $(pwd)/pacoloco.yaml:/etc/pacoloco.yaml \
-v /var/cache/pacoloco:/var/cache/pacoloco \
--restart unless-stopped \
ghcr.io/anatol/pacoloco
- Замени конфиг по умолчанию на мой:
sudo cp pacoloco.yaml /etc/pacoloco.yaml
- Перезапусти контейнер
sudo docker restart pacoloco
Заметочка Убедись, что директория
/var/cache/pacolocoили которую ты установишь в конфиге - существует и доступна на запись.
На каждом клиенте (другом компьютере с Arch) замени секции репозиториев в /etc/pacman.conf.
Было:
[core-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
[extra-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
[multilib-x86-64-v3]
Include = /etc/pacman.d/alhp-mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
Стало:
[core]
Server = http://pacoloco.home.arpa:9129/repo/archlinux/$repo/os/$arch
[extra]
Server = http://pacoloco.home.arpa:9129/repo/archlinux/$repo/os/$arch
[multilib]
Server = http://pacoloco.home.arpa:9129/repo/archlinux/$repo/os/$arch
[core-x86-64-v3]
Server = http://pacoloco.home.arpa:9129/repo/alhp/$repo/os/$arch
[extra-x86-64-v3]
Server = http://pacoloco.home.arpa:9129/repo/alhp/$repo/os/$arch
[multilib-x86-64-v3]
Server = http://pacoloco.home.arpa:9129/repo/alhp/$repo/os/$arch
[chaotic-aur]
Server = http://pacoloco.home.arpa:9129/repo/chaotic-aur/$repo/$arch
Важно: замени
pacoloco.home.arpaна реальный IP-адрес твоего сервера (например,192.168.1.100) или настравь локальный DNS/mDNS (Avahi), чтобы имя разрешалось. Важно: если используетсяx86-64-v4илиx86-64-v2, то замени строго на своё. Pacoloco автоматически подтягивать будет нужный репозиторий
port: 9129
cache_dir: /var/cache/pacoloco
user_agent: Pacoloco/1.7
download_timeout: 3600port- HTTP-порт, по которому клиенты обращаются к прокси.cache_dir- директория для хранения пакетов. Должна быть доступна на запись пользователюpacoloco.user_agent- обязательно указывай, иначе ALHP и некоторые зеркала могут отклонить запрос.download_timeout- макс. время скачивания одного пакета (1 час).
Зеркала выбраны с учётом стабильности и скорости (см. Arch Mirror Status):
urls:
- http://ftp.halifax.rwth-aachen.de/archlinux
- https://berlin.mirror.pkgbuild.com
- https://mirror.yandex.ru/archlinux
urls:
- https://geo-mirror.chaotic.cx # автоматически редиректит на ближайшее зеркало
Поддержка ALHP для x86-64-v2/v3/v4:
urls:
- https://mirror.sunred.org/alhp
- https://alhp.dev
- https://mirrors.shanghaitech.edu.cn/alhp
Все три зеркала проверены и актуальны. Если одно недоступно - Pacoloco автоматически переключится на другое.
prefetch:
cron: "0 0 3 * * *" # ежедневно в 3:00
ttl_unaccessed_in_days: 90 # не трогать пакеты, не запрашивавшиеся 90+ дней
ttl_unupdated_in_days: 90 # не трогать пакеты, не обновлявшиеся 90+ дней
Это гарантирует, что обновления "горячих" пакетов уже будут в кэше к утру.
Некоторые CDN и зарубежные зеркала (особенно ALHP) могут быть недоступны из-за блокировок на уровне ТСПУ (подробнее).
Что делать:
-
Используй доступные зеркала из РФ/СНГ, например для официальной ветки:
https://mirror.yandex.ru/archlinux/https://mirror.truenetwork.ru/archlinux/
-
Для неофицальных веток смотри зеракала в
cat /etc/pacman.d/alhp-mirrorlistcat /etc/pacman.d/chaotic-mirrorlist
-
Или настрой HTTP-прокси в
pacoloco.yaml:
http_proxy: http://your-proxy:port
# На клиенте
sudo pacman -Syu
# На сервере — посмотри лог
journalctl -u pacoloco -fЕсли видишь строки вида downloader.go:111: downloading, то всё оки-доки
С доп вопросами в issues