У меня есть ноутбук и локальная копия нескольких репозиториев во внешнем жестком диске, подключенном к моему маршрутизатору. Мой маршрутизатор обеспечивает доступ к тем файлам (с учетными данными) как доли самбы и/или FTP-сервер.
Я хотел бы настроить склонный - добираются для проверки тех репозиториев, когда они доступны и загружают обновления от них для ускорения процесса, если это возможно.
Быть более ясным: Я хочу склонный - добираются для проверки и обычных репозиториев в Интернет и моего локального, когда мой ноутбук подключен к моему Wi-Fi. Если файлы во внешних репозиториях являются более новыми, чем те в моем локальном зеркале или если зеркало не доступно, склонно - добираются, должен загрузить файлы с Интернета.
Мне наконец удалось решить это, и это работает вполне прилично, таким образом, я хочу совместно использовать его с людьми, которые хотят реализовать что-то подобное.
Моя первая проблема состояла в том, что моя система поддерживает мультидугу, таким образом, зеркальные репозитории должны содержать и i386 и amd64 пакеты (я не сделал зеркально отраженных источников) постараться не загружать ошибки. Это сделано в/etc/apt/mirror.list как этот пример шоу:
deb-i386 http://archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
deb-amd64 http://archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse
Мой base_path, определенный в том файле,/mnt/apt-mirrors, и я запускаю скрипт, который монтирует внешний жесткий диск, подключенный к USB-порту моего маршрутизатора как доля Samba (Вы видите сценарий здесь: как использовать способное зеркало, чтобы сохранить файлы в жестком диске, подключенном к маршрутизатору LAN
Я хотел получить доступ к зеркальным репозиториям от других компьютеров в LAN, таким образом, другая часть решения добавляет определения репозиториев FTP вначале в/etc/apt/sources.list. Эта установка делает склонным - добираются, чтобы использовать репозитории FTP сначала при загрузке файлов и затем использовать тех определенных в/etc/apt/sources.list.d, если зеркальные актуальны.
Локальные репозитории определяются как это:
deb [arch=amd64,i386] ftp://user:password@lan-resource/apt-mirrors/mirror/archive.ubuntu.com/ubuntu trusty main restricted universe multiverse
где Вы заменяете пользователя именем пользователя, которому предоставили доступ FTP-серверу: пароль с его паролем при необходимости для соединения (иначе удаляют), и ресурс LAN с адресом FTP-сервера в LAN (я решил отредактировать/etc/hosts, чтобы не повторять трудно кодированный IP-адрес, где я определил 192.168.0.1 как lanftpserver для использования в этом поле).
Существует 4 шага к установке Вашего собственного репозитория
dpkg-dev
apt-get update
может читать sources.list
указание на репозиторийdpkg-dev
Откройте терминал:
sudo apt-get install dpkg-dev
Создайте каталог для хранения пакетов. Для этого примера мы будем использовать /usr/local/lan-repo
.
sudo mkdir -p /usr/local/lan-repo
Теперь переместите все свои пакеты в тот новый каталог.
Пакеты, которые были загружены уже, обычно хранятся в Вашей системе в /var/cache/apt/archives
. Если Вы установили apt-cacher
Вам, скорее всего, сохранят дополнительные пакеты в apt-cacher/packages
каталог.
update-lan-repo
Это - очень простые три сценария строки:
#! /bin/bash
cd /usr/local/lan-repo
sudo dpkg-scanpackages . /dev/null | gzip -9c > packages.gz
Копия и вышеупомянутое вставки в Ваш любимый текстовый редактор, и сохраняют его как update-lan-repo
в ~/bin
. (~
означает корневой каталог. Если ~/bin
не существует уже затем создают его. Ubuntu автоматически поместит тот каталог в Ваш ПУТЬ. Это делает это хорошим местом для помещения персональных сценариев.)
Теперь давайте сделаем исполняемый файл сценария:
chmod u+x ~/bin/update-lan-repo
Вот то, как сценарий работает:
dpkg-scanpackages
взгляды на все пакеты в lan-repo
, и вывод сжат и записан в файл packages.gz
, который apt-get update
может читать (см. ниже для ссылки, которая объясняет это в полных деталях). /dev/null
пустой файл - который является - это - замена для файла переопределения, который содержит некоторую дополнительную информацию о пакетах, которая в нашем случае не действительно необходима. Посмотрите deb-override(5)
если Вы хотите узнать больше об этом.
Мы должны добавить Ваш локальный repo к Вашему sources.list файлу
echo "deb file:/usr/local/lan-repo ./" >> /etc/apt/sources.list
и вот именно Вы сделаны.
Можно сохранить каталог, содержащий .deb файл к CD/DVD и использованию что как репозиторий также (хороший для совместного использования между компьютерами). Использовать CD в качестве репозитория:
просто выполните команду:
sudo apt-cdrom add
использование нового репозитория.
Затем каждый раз, когда Вы храните новый debian пакет в каталоге lan-repo, работаете:
sudo update-lan-repo
sudo apt-get update
Теперь Вашими локальными пакетами можно управлять с Синаптическим, способностью и способными командами: apt-get
, apt-cache
, и т.д., Когда Вы пытаетесь в Кв. - получают установку, любые зависимости будут разрешены для Вас, пока они могут быть встречены.