Репозиторий для Squeeze (apt-move gpg)

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Репозиторий для Squeeze

Сообщение mandreika »

Установка локального репозитория для Debian 6.0 Squeeze

В отличии от других программ для создания зеркал, apt-move использует
только используемые вами пакеты (Не надо качать 10Гб лишних пакетов)


0) Необходимые пакеты:
Рекомендую использовать miniCD образ(180 МБ)
apt-move (Конвертация deb пакетов из кэша в иерархию репозитория)
mini-httpd (Веб сервер - шустрый и простой в настройке)
gnupg (Управление сертификатами,вSqueeze стоит по умолчанию)

На сервере (Центр обновления)
1) Указываем, откуда будем брать обновления в интернете

Код: Выделить всё

nano /etc/apt/sources.list
deb http://mirrors.kernel.org/debian stable main

2)Обновляемся, устанавливаем нужные пакеты (те пакеты, которые нужны клиентам)

Код: Выделить всё

apt-get update
apt-get -d upgrade
apt-get install mini-httpd
apt-get install apt-move


или через aptitude

3) Все скачанные пакеты должны лежать в /var/cache/apt/archives
4) Создаем директории для нашего репозитория

Код: Выделить всё

mkdir /var/www
mkdir /var/www/debian


5) Настраиваем GPG
5.1) Создаем пару ключей

Код: Выделить всё

gpg --gen-key


5.2) Выбираем пункт 1, выбираем длину ключа 2048, указываем Имя, !!! ОТКАЗЫВЫЕМСЯ ОТ ПАРОЛЬНОЙ ФРАЗЫ !!!,жмем букву O.
Просит понажимать случайные клавиши (Не работает удаленно)
В процессе генерации (появлении ++++) жмем произвольные клавиши.
5.3)

Код: Выделить всё

gpg --list-key


Ищем строку pub 2048D/ABCDEFGH <- У вас тут другие буквы

5.4)
Помещаем ключи в apt хранилище

Код: Выделить всё

gpg --export -a ABCDEFHG | apt-key add -


6) Настраиваем apt-move
nano /etc/apt-move.conf

Код: Выделить всё

LOCALDIR=/var/www/debian
COPYONLY=YES  (Оставлять копии пакетов /var/cache/apt)
PKGCOMP="none gzip"
CONTENTS=yes
ARCHS="i386"
GPGKEY=ABCDEFGH


7) Обновление репозитория

Код: Выделить всё

apt-move update

8) Экспорт ключа для клиентов.

Код: Выделить всё

gpg --output superkey.gpg --export ABCDEFGH


Если все пункты отработали без ошибок и в директории /var/www/debian лежат разложенные по индексам пакеты
и есть файл /var/www/debian/dists/stable/Release.gpg , то идем дальше.

9) Поднимаем http сервер.
nano /etc/default/mini-httpd

START=1
далее

Код: Выделить всё

nano /etc/mini-httpd.conf
host=*
data_dir=/var/www

/etc/init.d/mini-httpd start

10) Проверяем браузером доступность http://192.168.X.Y/debian
-------
У Клиента обновлений

1) Копируем superkey.gpg

Код: Выделить всё

scp -P 22 superuser@192.168.X.Y:superkey.gpg superkey.gpg


(superkey.gpg должен находиться в домашней директории пользователя superuser, иметь атрибут чтения и доступен для подключения по ssh)

2)Добавляем ключ в хранилище apt

Код: Выделить всё

apt-key add superkey.gpg



3)Обновляемся

добавляем наш репозиторий в /etc/apt/sources.list
deb http://192.168.X.Y/debian stable main

Код: Выделить всё

apt-get update
apt-get -d upgrade


или через aptitude

В случае если в репозитории отсутствует нужный пакет, хотя на сервере он установлен, поможет команда

Код: Выделить всё

apt-get install -d  --reinstall  имя-пакета
apt-move update


P.S. В дальнейшем устанавливая пакеты на сервере обновлений можно использовать apt-get -d install Имя_Пакета
В этом случае пакет будет только скачен и размещен в репозитории без установки и замусоривания системы.
Спасибо сказали:
Аватара пользователя
44616e
Сообщения: 205
ОС: Debian testing

Re: Репозиторий для Squeeze

Сообщение 44616e »

Кодовое имя релиза - squeezE
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: Репозиторий для Squeeze

Сообщение mandreika »

Надеюсь модераторы подправят название темы.
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Репозиторий для Squeeze

Сообщение watashiwa_daredeska »

mandreika писал(а):
09.02.2011 11:19
В случае если в репозитории отсутствует нужный пакет, хотя на сервере он установлен, поможет команда

apt-get -d имя-пакета --reinstall
apt-get install -d --reinstall имя-пакета

mandreika писал(а):
09.02.2011 11:19
gpg --output superkey.gpg --export ABCDEFGH
Тоже можно бы --armor. Во избежание.

И главный вопрос: а зачем это всё? Ведь это только верхняя часть айсберга: обновлять-то как? Ну, хорошо, те пакеты, которые установлены локально будут обновляться и в репозитории, а те, которые apt-get install -d? Может, лучше apt-cacher-ng какой-нибудь, чем вся эта рукопашная маята?
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: Репозиторий для Squeeze

Сообщение mandreika »

Да пакеты установленные с ключом -d автоматически не обновляются
для таких необходимо apt-get install Пакет -d --reinstall
В принципе ничего сложного/вредного в этом нет.

А на вопрос для чего это нужно:
Если в организации используется на серверах 100-200 пакетов из 10000000
на каждый из которых необходимо оформлять бумаги и пр. то синхронизировать
репозиторий в 10Гб не очень нужно.
Вариант с apt-proxy думаю решает это проблему, но возникают новые вопросы:
как запретить ставить те или иные пакеты, как добавить в репозиторий свой пакет,
да и базы apt aptitude на локальном диске занимают 50-60 мб что для некоторых
тонких клиентах недопустимо.

Или скрипт в планировщик положить
#!/bin/sh
upd="apt-get install -dy --reinstall "
apt-get update
$upd пакет1 пакет2 пакетN
$upd пакет999
.....
#apt-get upgrade -dy
apt-get upgrade -y
apt-move update
exit 0
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: Репозиторий для Squeeze

Сообщение watashiwa_daredeska »

mandreika писал(а):
09.02.2011 15:28
как запретить ставить те или иные пакеты
А зачем? У Вас пользователи имеют право сами ставить пакеты? Тогда они найдут, как это сделать: пропишут дебиановские репы напрямую, загрузят deb-пакеты и поставят dpkg в обход apt'а и всякое другое. А если пакеты ставит только админ, то зачем запрещать? В конце концов, на самый крайний случай, можно разложить по машинам /etc/apt/preferences с помощью того же puppet'а.
mandreika писал(а):
09.02.2011 15:28
как добавить в репозиторий свой пакет,
Ну, свои пакеты хорошо бы класть в отдельный репозиторий, а не перемешивать их с дистрибутивными.
mandreika писал(а):
09.02.2011 15:28
да и базы apt aptitude на локальном диске занимают 50-60 мб что для некоторых
тонких клиентах недопустимо.
С одной стороны, да, это проблема. Только я что-то не могу себе представить машину с Debian, для которой сотня метров — проблема :) Сами пакеты будут занимать намного больше, ведь они все равно будут скачиваться и складываться в /var/cache/apt/archives, а если эта папочка монтируется по NFS, например, или сам репозиторий на NFS и прописан как file://, то можно и /var/lib/apt/lists также примонтировать, и даже обновлять централизованно, тогда клиентам не нужно будет aptitude update делать.
Спасибо сказали:
Ответить