- apt-mirror on Linux Mint 21 «Vanessa»
- 2. Uninstall / Remove apt-mirror package
- 3. Details of apt-mirror package
- 4. References on Linux Mint 21 «Vanessa»
- 5. The same packages on other Linux Distributions
- apt-mirror on Linux Mint 20.3 «Una»
- 2. Uninstall / Remove apt-mirror package
- 3. Details of apt-mirror package
- 4. References on Linux Mint 20.3 «Una»
- 5. The same packages on other Linux Distributions
- Sysadminium
- Введение
- Создание зеркала репозиториев
- Настройка apt-mirror
- Публикация своего репозитория
- Прописываем репозиторий на наши сервера
apt-mirror on Linux Mint 21 «Vanessa»
Please follow the step by step instructions below to install apt-mirror package:
2. Uninstall / Remove apt-mirror package
This tutorial shows how to uninstall apt-mirror package:
3. Details of apt-mirror package
Package: apt-mirror
Architecture: all
Version: 0.5.4-1
Priority: optional
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers
Original-Maintainer: Brandon Holtsclaw
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 65
Depends: adduser, wget, perl:any
Filename: pool/universe/a/apt-mirror/apt-mirror_0.5.4-1_all.deb
Size: 14258
MD5sum: ab6cd016bf1fcff2d7307068234d3856
SHA1: 49a6b710a5405b4f963c28ad13dde75bcf669ca9
SHA256: 59c6eb763ab915c08264eb893ff09c6464c4d0a0f2948bb3f2e65c9ea82b953a
SHA512: 6fde3e67f48a80c5aa27cdd53a9cda8f5afee18f083735a00d09dcdc3ad3d73fd2855716bb9e3fae4e3024e5b2292359c92f424ff681695eb876656b6bc35bb9
Homepage: http://apt-mirror.github.com/
Description: APT sources mirroring tool
Description-md5: cf7ee1d4e4f7c65e0e14c5bc8da53c06
4. References on Linux Mint 21 «Vanessa»
5. The same packages on other Linux Distributions
apt-mirror (0.5.4-1) Ubuntu 18.04 LTS (Bionic Beaver)
apt-mirror (0.5.1-1ubuntu1) Ubuntu 16.04 LTS (Xenial Xerus)
apt-mirror (0.5.4-1) Ubuntu 21.04 (Hirsute Hippo)
apt-mirror (0.5.4-1) Ubuntu 20.10 (Groovy Gorilla)
apt-mirror (0.5.4-1) Ubuntu 21.10 (Impish Indri)
apt-mirror (0.5.4-1) Ubuntu 22.04 LTS (Jammy Jellyfish)
apt-mirror (0.5.4-1) Debian 10 (Buster)
apt-mirror on Linux Mint 20.3 «Una»
Please follow the step by step instructions below to install apt-mirror package:
2. Uninstall / Remove apt-mirror package
This tutorial shows how to uninstall apt-mirror package:
3. Details of apt-mirror package
Package: apt-mirror
Architecture: all
Version: 0.5.4-1
Priority: optional
Section: universe/net
Origin: Ubuntu
Maintainer: Ubuntu Developers
Original-Maintainer: Brandon Holtsclaw
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 65
Depends: adduser, wget, perl:any
Filename: pool/universe/a/apt-mirror/apt-mirror_0.5.4-1_all.deb
Size: 14258
MD5sum: ab6cd016bf1fcff2d7307068234d3856
SHA1: 49a6b710a5405b4f963c28ad13dde75bcf669ca9
SHA256: 59c6eb763ab915c08264eb893ff09c6464c4d0a0f2948bb3f2e65c9ea82b953a
Homepage: http://apt-mirror.github.com/
Description: APT sources mirroring tool
Description-md5: cf7ee1d4e4f7c65e0e14c5bc8da53c06
4. References on Linux Mint 20.3 «Una»
5. The same packages on other Linux Distributions
apt-mirror (0.5.4-1) Ubuntu 18.04 LTS (Bionic Beaver)
apt-mirror (0.5.1-1ubuntu1) Ubuntu 16.04 LTS (Xenial Xerus)
apt-mirror (0.5.4-1) Ubuntu 21.04 (Hirsute Hippo)
apt-mirror (0.5.4-1) Ubuntu 20.10 (Groovy Gorilla)
apt-mirror (0.5.4-1) Ubuntu 21.10 (Impish Indri)
apt-mirror (0.5.4-1) Ubuntu 22.04 LTS (Jammy Jellyfish)
apt-mirror (0.5.4-1) Debian 10 (Buster)
Sysadminium
В этой статье я расскажу как создать своё локальное зеркало репозиториев для Linux, с использованием инструмента — apt-mirror.
Введение
Иногда бывает полезно сделать своё зеркало различных Linux репозиториев. Оно будет синхронизироваться с официальными репозиториями, а уже локальные сервера будут получать обновления с нашего сервера.
Например, это можно сделать, если у этих серверов нет возможности выйти в интернет, а обновлять их нужно.
Создание зеркала репозиториев
Устанавливаем пакет apt-mirror:
Apt-mirror написан на языке программирования perl. Посмотреть расположение самого скрипта можно с помощью следующей команды:
# which apt-mirror /bin/apt-mirror
Так как проект давно заброшен, то в скрипте есть недоработки, например Файлы переводов (i18n/Translation) раньше в репозиториях хранились в виде архива bz2, а сейчас хранятся в виде архива xz. Ещё одна проблема в том, что начиная с Ubuntu Focal (20.04), клиент APT ожидает, что репозиторий предоставят файлы метаданных (command-not-found — cnf). Про эти файлы apt-mirror тоже ничего не знает. Но есть один разработчик, который поддерживает проект apt-mirror, и вы можете использовать его версию скрипта. Найти его скрипт можно здесь. Просто сделайте резервную копию файла /bin/apt-mirror и в оригинал поместите версию скрипта от Stifler6996.
Настройка apt-mirror
После исправления скрипта нужно произвести настройки apt-mirror. Для этого используется конфиг /etc/apt/mirror.list. В конфиг нужно добавить те репозитории, для которым мы делаем зеркало. Вы также можете изменить пути сохранения файлов, но я оставляю их по умолчанию (/var/spool/apt-mirror):
# nano /etc/apt/mirror.list ############# config ################## ### тут ничего не правлю ############# end config ############## # Репозитории для ProxMox 6 (на 7 я ещё не перешёл) deb [arch=amd64] http://download.proxmox.com/debian/pve buster pve-no-subscription deb http://download.proxmox.com/debian/pbs buster pbs-no-subscription # Репозитории для Debian 11 (указываю архитектуру, чтобы хоть как-то уменьшить количество скачиваемых пакетов) deb [arch=amd64] http://deb.debian.org/debian/ bullseye main deb [arch=amd64] http://security.debian.org/debian-security bullseye-security main deb [arch=amd64] http://deb.debian.org/debian/ bullseye-updates main # Репозитории для Ubuntu 22.04 deb [arch=amd64] http://ru.archive.ubuntu.com/ubuntu jammy main restricted deb [arch=amd64] http://ru.archive.ubuntu.com/ubuntu jammy-updates main restricted deb [arch=amd64] http://ru.archive.ubuntu.com/ubuntu jammy-security main restricted clean http://ftp.us.debian.org/debian
И запускаем синхронизацию:
С моими настройками будет скачано 128 GB. Так что убедитесь что у вас хватает мета на жестком диске.
Возможно у вас за 1 раз всё не скачается, процесс может упасть и придется снова выполнить команду apt-mirror. Не волнуйтесь, процесс начнется не с начала, а продолжит скачивать то что ещё не скачалось.
Файлы загружаются в каталог /var/spool/apt-mirror/, можем посмотреть структуру каталогов с помощью утилиты tree (возможно её нужно будет установить):
# tree -d -L 4 /var/spool/apt-mirror/ /var/spool/apt-mirror/ ├── mirror │ ├── deb.debian.org │ │ └── debian │ │ ├── dists │ │ └── pool │ ├── download.proxmox.com │ │ └── debian │ │ ├── pbs │ │ └── pve │ ├── ru.archive.ubuntu.com │ │ └── ubuntu │ │ ├── dists │ │ └── pool │ └── security.debian.org │ └── debian-security │ ├── dists │ └── pool ├── skel │ ├── deb.debian.org │ │ └── debian │ │ └── dists │ ├── download.proxmox.com │ │ └── debian │ │ ├── pbs │ │ └── pve │ ├── ru.archive.ubuntu.com │ │ └── ubuntu │ │ └── dists │ └── security.debian.org │ └── debian-security │ └── dists └── var 32 directories
В каталоге mirror находятся сами пакеты. А в каталоге skel — содержится служебная информация. Например, список пакетов можете посмотреть для разных веток в файле Packages:
# less /var/spool/apt-mirror/skel/download.proxmox.com/debian/pve/dists/buster/pve-no-subscription/binary-amd64/Packages # less /var/spool/apt-mirror/skel/deb.debian.org/debian/dists/bullseye/main/binary-amd64/Packages
Проверить, есть ли у вас битые пакеты можно так:
# cd /var/spool/apt-mirror/mirror/ # md5sum -c /var/spool/apt-mirror/var/MD5 > mirror.log # grep -v 'OK' mirror.log
Последняя команда покажет пути установки битых пакетов, если такие имеются. Их нужно будет удалить и выполнить заново команду apt-mirror. А если вывод пустой, значит битых пакетов нет и пора переходить к следующему шагу.
Публикация своего репозитория
Чтобы использовать этот репозиторий, нужно опубликовать его с помощью веб сервера. Я для этого использую nginx. Устанавливаем веб сервер:
Правим основной конфиг nginx. Вам нужно изменить корневой путь и включить autoindex:
# nano /etc/nginx/sites-enabled/default root /var/spool/apt-mirror/mirror/; location / < # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; autoindex on;
Перезапускаем nginx:
# systemctl restart nginx.service
Если в браузере введёте адрес вашего сервера, то увидите следующее:
Прописываем репозиторий на наши сервера
Осталось добавить наш репозиторий на остальные наши сервера. Для этого нужно поправить конфиг /etc/apt/sources.list или создать отдельные конфиги в файле /etc/apt/sources.list.d. Кстати, про Linux репозитории я уже писал в этой статье.
Вот примеры того, как прописывается наш локальный репозиторий:
# так прописываем репозитории для PVE deb [arch=amd64] http://172.28.90.45/download.proxmox.com/debian/pve/ buster pve-no-subscription deb [arch=amd64] http://172.28.90.45/download.proxmox.com/debian/pbs/ buster pbs-no-subscription # так для debian 11 deb [arch=amd64] http://172.28.90.45/deb.debian.org/debian/ bullseye main deb [arch=amd64] http://172.28.90.45/deb.debian.org/debian/ bullseye-updates main deb [arch=amd64] http://172.28.90.45/security.debian.org/debian-security/ bullseye-security main # так для Ubuntu 22.04 deb [arch=amd64] http://172.28.90.45/ru.archive.ubuntu.com/ubuntu/ jammy main restricted deb [arch=amd64] http://172.28.90.45/ru.archive.ubuntu.com/ubuntu/ jammy-updates main restricted deb [arch=amd64] http://172.28.90.45/ru.archive.ubuntu.com/ubuntu/ jammy-security main restricted
В этой статье я расскажу как создать своё локальное зеркало репозиториев для Linux, с использованием инструмента - apt-mirror