Для організації репозиторія Ubuntu на сервері Ubuntu будемо використовувати apt-mirror.
Спочатку треба встановити apt-mirror за допомогою
sudo apt-get install apt-mirror
Оскільки клієнти отримують пакети для інсталяції через HTTP, також треба встановити apache, якщо він ще не встановлений, за допомогою
sudo apt-get install apache2
За умовчанням, apt-mirror отримує пакети для тої архітектури і тієї версії, на котрій працює сервер. Але можна вказати архітектуру x86_64 або i386 і потрібні версії.
Також треба брати до уваги, що дзеркало репозиторію потребує від 30ГБ вільного місця на диску.
Пакет apt-mirror читає конфігурацію з файлу /etc/apt/mirror.list, наприклад
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch
А у клієнта у /etc/apt/sources.list треба вказати, що пакети будуть завантажуватись з локального репозиторія, наприклад
deb http://local-mirror/ubuntu/ precise main restricted
Спочатку треба встановити apt-mirror за допомогою
sudo apt-get install apt-mirror
Оскільки клієнти отримують пакети для інсталяції через HTTP, також треба встановити apache, якщо він ще не встановлений, за допомогою
sudo apt-get install apache2
За умовчанням, apt-mirror отримує пакети для тої архітектури і тієї версії, на котрій працює сервер. Але можна вказати архітектуру x86_64 або i386 і потрібні версії.
Також треба брати до уваги, що дзеркало репозиторію потребує від 30ГБ вільного місця на диску.
Пакет apt-mirror читає конфігурацію з файлу /etc/apt/mirror.list, наприклад
############# config ##################
#
# set base_path /var/spool/apt-mirror
#
# set mirror_path $base_path/mirror
# set skel_path $base_path/skel
# set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
Якщо сервер працює за проксі сервером, потрібно вказати адресу проксі серверу. Оскільки apt-mirror використовує wget для завантаження, то треба у /etc/wgetrc розкоментувати, щось на зразок:
#https_proxy = http://proxy.server:8080/
#http_proxy = http://proxy.server:8080/
#ftp_proxy = http://proxy.server:8080/
#
#use_proxy = on
Запускаємо процес завантажування (віддзеркалення) за допомогою
sudo apt-mirror
Згідно конфігурації дзеркало буде створено у /var/spool/apt-mirror. А для використання в Apache, треба створити символьне посилання за допомогою
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ /var/www/html/ubuntuЩоб процес завантажування працював щоденно автоматично,треба у /etc/cron.d/apt-mirror розкоментувати наступне
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb-amd64 http://archive.ubuntu.com/ubuntu xenial main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-security main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-updates main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise-updates main restricted
clean http://archive.ubuntu.com/ubuntu
Ця конфігурація встановлює 20 потоків завантаження, і буде завантажувати main та restricted репозиторії для x86_64 і i386 архітектури, та для версій xenial(16.04) та precise(12.04).
#
############# end config ##############
deb-amd64 http://archive.ubuntu.com/ubuntu xenial main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-security main restricted
deb-amd64 http://archive.ubuntu.com/ubuntu xenial-updates main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise-security main restricted
deb-i386 http://archive.ubuntu.com/ubuntu precise-updates main restricted
clean http://archive.ubuntu.com/ubuntu
Ця конфігурація встановлює 20 потоків завантаження, і буде завантажувати main та restricted репозиторії для x86_64 і i386 архітектури, та для версій xenial(16.04) та precise(12.04).
Команда clean видаляє пакети, які втратили чинність на сервері, з якого ми робимо дзеркало.
Якщо сервер працює за проксі сервером, потрібно вказати адресу проксі серверу. Оскільки apt-mirror використовує wget для завантаження, то треба у /etc/wgetrc розкоментувати, щось на зразок:
#https_proxy = http://proxy.server:8080/
#http_proxy = http://proxy.server:8080/
#ftp_proxy = http://proxy.server:8080/
#
#use_proxy = on
Запускаємо процес завантажування (віддзеркалення) за допомогою
sudo apt-mirror
sudo ln -s /var/spool/apt-mirror/mirror/archive.ubuntu.com/ubuntu/ /var/www/html/ubuntuЩоб процес завантажування працював щоденно автоматично,треба у /etc/cron.d/apt-mirror розкоментувати наступне
0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
А у клієнта у /etc/apt/sources.list треба вказати, що пакети будуть завантажуватись з локального репозиторія, наприклад
deb http://local-mirror/ubuntu/ precise main restricted
deb http://local-mirror/ubuntu/ precise-updates main restricted
deb http://local-mirror/ubuntu/ precise universe
На клієнті, для виключення використання проксі-сервера у випадку локального репозиторія, потрібно у /etc/apt/apt.conf вказати
Acquire::http::proxy::local-mirror "DIRECT";
Acquire::http::proxy::local-mirror "DIRECT";
Поради знайшов в
https://blog.felipe-alfaro.com/2014/05/30/create-a-local-mirror-of-ubuntu-packages-using-apt-mirror/
https://apps.education.ucsb.edu/wiki/Set_up_apt-mirror
На клієнті, для виключення використання проксі-сервера у випадку локального репозиторія, потрібно у /etc/apt/apt.conf вказати
Acquire::http::proxy::local-mirror "DIRECT";
Acquire::http::proxy::local-mirror "DIRECT";
Поради знайшов в
https://blog.felipe-alfaro.com/2014/05/30/create-a-local-mirror-of-ubuntu-packages-using-apt-mirror/
https://apps.education.ucsb.edu/wiki/Set_up_apt-mirror
Коментарі
Дописати коментар