Ситуация довольно распространенная, и для многих - актуальная. В моем случае, имеется комп, подключенный к Интернету, с которого регулярно берутся обновления пакетов (а как мы знаем, то что скачивается с И-Нета зависает в нашей системе по адресу: /var/cache/apt/archives). И есть тачка, которая ну не имеет никакого Интернет конекта. Имеются репозитории системы на DVD, и это здорово, но только как вот быть с апдейтами?
Ответ получается следующим:
Варианты.
Я бы выделил 3 способа создания локального репозитория:
Первые два способа - "взрослое" создание репозитория, и больше подходит даже для несколько иных целей, например, есть сетка Debian/Ubuntu компов, кто-то получает обновления, и остальные уже тянут их исключительно с локально сети (ну а смысл качать каждый пакет по несколько раз с И-Нета?). Для этого нужен репозиторий, который подключен на всех требуемых хостах.
Третий способ несколько проще, как по сути, так и по реализации. Он даже называется как "Инструмент для резервного копирования пакетов", т.е. не о репозитории речь-то. И для моего случая он подходит наиболее оптимально! Итак...
Apt-move.
Так называется утилита для создания локального зеркала пакетов. Это настоящий такой, "джедаевский" метод создания репозитория со всеми существующими атрибутами, типа консоль, правка конфиг-файлов и всего-такого. :) Настоящие Дебианщики (и не только) очень ценят такой подход. Еще бы, он максимально функционален - настроить можно Бог знает чего и сколько! Кароче, все что смогли придумать разработчики программ здесь можно настроить! И, не смотря на это он прост! Но только для этого как всегда нужно сначала качественно сделать RTFM, а это для многих реальный "ахтунг!" :) Но бояться не нужно - вперед!
Шаг 0.
Если эта программа у нас в системе еще не установлена, то тогда делаем это:# apt-get install apt-move
Шаг 1.
Определяем, куда положим наш локальный репозиторий. Например, /home/vasya/repo.
Шаг 2.
Создаем директорию (она же папка, она же фолдер...). Пакеты из нашего места хранения /var/cache/apt/archives будут перенесены в эту нашу директорию локального зеркала /home/vasya/repo.$ mkdir /home/vasya/repo
Шаг 3.
Прописываем наш путь (/home/vasya/repo) как переменную в файл /etc/apt-move.conf
В нем находим строку:LOCALDIR=path_toи вместо path_to вписываем наш путь. Причем, здесь очень важно следующее: прописать нужно абсолютный путь (т.е. весь путь, начиная с корневой директории). Да, и не забываем, что конфиг-файл редактируем с привилегиями root-a):LOCALDIR=/home/vasya/repo
Шаг 3.
Называем наш дистриб для репозитория. Ну, например, stable! Прописываем в строке:# The default distribution (see the apt-move(8) manpage for details)
DIST=stable
Шаг 4.
Если нам не нужны больше наши бинарные пакеты из /var/cache/apt/archives после создания нашего локального репозитория (пакеты будут удалены), то тогда в строке должно быть:# Set this to yes if you wish to keep the originals for move/movefile.Но если мы хотим оставить копии установленных/скачанных бинарников в нашей директории /var/cache/apt/archives, то тогда это строка будет как в моем случае:
COPYONLY=no# Set this to yes if you wish to keep the originals for move/movefile.
COPYONLY=yes
Шаг 5.
Несколько схож по смыслу с предыдущим шагом, однако тут мы указываем о сохранении, или же не сохранении бинарников пакетов вышедших из употребления в нашей системе (как я понял, это те пакеты, которые уже удалены из нашего Линукса), но имеющих бинарник в /var/cache/apt/archives. Я их не удалял:# Do you want apt-move to delete obsolete files from your mirror? (yes/no)
DELETE=no
Шаг 6.
Наверное желательно будет установить имя ключа для подписи, но честно, я этим никогда не занимался. И строку ниже я оставляю без изменения.# Set this to key name to be used for signing Release files.
GPGKEY=
Шаг 7.
Создаем локальный репозиторий!$ apt-move updateТолько я уже точно не уверен: можно ли это делать от простого юзера, или нет. В общем, тут просто нужно попробовать.
:-)
Выполнение этой команды может занять довольно длительное время, все зависит от того, сколько пакетов у вас находится в директории /var/cache/apt/archives.
Все!
Заметки.
Все довольно просто! Если что, то нужно запомнить, лишь, дислокацию основного конфиг-файла в системе /etc/apt-move.conf, и внимательно читать его подсказки.
Говорят, что команда apt-move update является выполнением последовательности команд:
.. ну это так, для справки.
Debmirror.
Тут у меня нет никакого опыта, зато есть замечательная ссылка на ресурс, в котором это подробно описано на английском языке, а вот здесь этот же howto уже на русском.
Ну а подключить полученный репозиторий, наверное, сможем!?
... продолжение следует.
14 Март 2008
Локальный репозиторий пакетов. Часть 1.
Автор:
SIR
на
12:00
Ярлыки: НАСТРОЙКА -, СИСТЕМА -, Установка ПРОГРАММ
Подписаться на:
Комментарии к сообщению (Atom)




9 коммент.:
полезная статья!
чувствую, скоро буду делать себе такое же.
а то дома на двух машинках поставил системы и каждой из них отдельно тащу из сетки. Конечно, трафик всё равно бесплатный, но скорость иногда оставлят желать лучшего.
Несколько усложненно, есть более простой путь, утилита apt-cacher. Одна машина назначается сервером (на которой собственно установлен apt-cacher, на всех машинах редактируется sources.list. Строки типа "deb http://ru.archive.ubuntu.com/ubuntu/ gutsy main restricted " приводятся к виду "deb http:// IP_Вашего_сервера:3142/ ru.archive.ubuntu.com/ubuntu/ gutsy main restricted". Все, первая мшина ташит нужные пакеты из репа, остальные с кеша сервера.
Более подробный мануал на русском: http://whylinux.ru/2008/01/11/tt-keshiruem-pakety-s-apt-cacher/
Спасибо анонимный за комментарий. Думаю многим будет полезна информация.
Это действительно интересно, в случае если хосты находятся в сети.
А если они не в сети, то тогда уже как варианты выше..
Когда я начинал делать локальный репозиторий для городской сети, то воспользовался debmirror. Все бы ничего, но эта утилита не подчищала за собой репозиторий от старых версий пакетов и через месяц локальной зеркало распухло в два раза. Потом я попробовал apt-mirror. Эта штука подчистила мне старые версии и скачала новые. Настройки просты. Вообщем рекомендую.
есть еще apt-zip , позволяющий создать список необходимых к загрузке файлов. чтобы скачать их на другом компе с толстым каналом.
Я перевел статью с howtoforge.com о использовании debmirror по указанной ссылке. Надеюсь, она будет хорошим дополнением к этой статье.
http://sivkaburka.blogspot.com/2008/03/dvd.html
2 sivka-burka:
Спасибо, ссылку добавил в пост.
Уверен, будет многим полезен.
У меня не работает и вот что пишет:
# apt-move update
Updating from local Packages files...
APTSITES: [!_]* does not exist
Error: getfiles: Cannot find index files for APTSITES.
Make sure that apt-get update has been run.
Сделал все как написано.
На локальной машине в sources.list добавляю строку
deb http://IP_машины c нужно взять пакеты/debian/ stable main contrib non-free
НЕ работает, не может скачать!
Если в папку созданную для apt-move ложи test.php, он с локальной машины открывается нормально.
Что делаю НЕ так, где ошибка?
Отправить комментарий