apt-move Локальный репозиторий с gpg (apt-move gpg apt-key gnupg)

Knoppix

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

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

apt-move Локальный репозиторий с gpg

Сообщение mandreika »

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

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

На сервере (Центр обновления)
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, указываем Имя, Отказываемся от пароля,жмем букву O.
В процессе генерации (появлении ++++) жмем произвольные клавиши.
5.3)

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

gpg --list-key

Ищем строку pub 1024D/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 (Очень важно - выбираем между сжатием и gpg)
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
далее
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)Обновляемся

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

apt-get update
apt-get -d upgrade

или через aptitude

Подводные камни

Как показали опыты aptitude не показывает некоторые ошибки и соответственно не работает обновление.
Конкретно мной была пропущено сообщение

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

W: Failed to fetch http://192.168.X.Y/debian/dists/stable/Release Unable to find expected entry main/binary-i386/Packages in Meta-index file (malformed Release file?)
E: Some index files failed to download, they have been ignored, or old ones used instead.

Решение: Отключить архивацию в apt-move.conf

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

PKGCOMP=none
Причем проблема возникает только с включенным gpgkey.

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

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

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


P.S. В дальнейшем устанавливая пакеты на сервере обновлений можно использовать apt-get -d install Имя_Пакета
В этом случае пакет будет только скачен и размещен в репозитории без установки и замусоривания системы.
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: apt-move Локальный репозиторий с gpg

Сообщение Doublespace »

Вопросик- это только у меня apt-move файлы packages такие корявые создает, что там больше половины файлов пропускается? Приходится сторонним скриптом их делать.
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: apt-move Локальный репозиторий с gpg

Сообщение mandreika »

Doublespace писал(а):
16.06.2009 15:25
Вопросик- это только у меня apt-move файлы packages такие корявые создает, что там больше половины файлов пропускается? Приходится сторонним скриптом их делать.


Попускается как именно?
у меня например libfreetype сел на букву f хотя искал в libf

или у вас по другому?

UPD Проверил все пакеты из кэша переместились.

Что указано в /etc/apt-move.conf
APTSITES="/all/"
Спасибо сказали:
Doublespace
Сообщения: 275
ОС: Debian Lenny,Squeeze,Centos

Re: apt-move Локальный репозиторий с gpg

Сообщение Doublespace »

Ну скажем, когда-то обнаружил, когда пытался поставить mc из локального репа. Оказалось,его в Packages.gz просто нету. Потом просмотрел все packages- из main, contrib, non-free- пропустило до фига, причем бессистемно. Перепроверил щас еще- все без изменений.
Содержимое конфа

Код:

APTSITES="/all/" # The absolute path to your debian directory (top of your local mirror). # This MUST appear as the first entry of your sources.list if you use # sync or mirror. LOCALDIR=/mirrors/debian # The default distribution (see the apt-move(8) manpage for details) DIST=stable # The package types you want to mirror. # Possible values are: binary, source, and both (use only one). PKGTYPE=binary # The full (absolute) path to your local cache of package files. The default # will work for the apt-get packages, unless you've reconfigured apt. FILECACHE=/var/cache/apt/archives # The full (absolute) path to your local cache of Packages files. The # default will work for the apt-get Packages, unless you've reconfigured apt. LISTSTATE=/var/lib/apt/lists # Do you want apt-move to delete obsolete files from your mirror? (yes/no) DELETE=yes # Maximum percentage of files to delete during a normal run. MAXDELETE=50 # Set this to yes if you wish to keep the originals for move/movefile. COPYONLY=no # Set this to 'none gzip' to get uncompressed Packages/Sources files. PKGCOMP=none # Set this to yes to make apt-move generate Contents files. CONTENTS=no # Set this to key name to be used for signing Release files. GPGKEY=Release.gpg

Не то чтобы сильно парило -workaround есть, но удобно было бы
Спасибо сказали:
Аватара пользователя
mandreika
Сообщения: 217
ОС: Debian 3,4,5,6

Re: apt-move Локальный репозиторий с gpg

Сообщение mandreika »

Кто пробовал по инструкции ставить - отпишитесь, все ли работает - что не понятно?
Спасибо сказали:
Аватара пользователя
onto
Сообщения: 14
ОС: Ubuntu 10.04

Re: apt-move Локальный репозиторий с gpg

Сообщение onto »

C

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

 PKGCOMP=none
возникает:

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

W: Не удалось получить http://my_site/ubuntu_/dists/stable/main/binary-i386/Packages.gz  404  Not Found

W: Не удалось получить http://my_site/ubuntu_/dists/stable/contrib/binary-i386/Packages.gz  404  Not Found

W: Не удалось получить http:/my_site/ubuntu_/dists/stable/non-free/binary-i386/Packages.gz  404  Not Found

E: Некоторые индексные файлы не скачались, они были проигнорированы или вместо них были использованы старые версии

А с

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

 PKGCOMP=gzip
:

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

W: Не удалось получить http://my_site/ubuntu_/dists/stable/Release  Unable to find expected entry  main/binary-i386/Packages in Meta-index file (malformed Release file?)

E: Некоторые индексные файлы не скачались, они были проигнорированы или вместо них были использованы старые версии


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

Re: apt-move Локальный репозиторий с gpg

Сообщение mandreika »

Выделил специально

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

Re: apt-move Локальный репозиторий с gpg

Сообщение mandreika »

mandreika писал(а):
16.12.2010 10:27
Выделил специально

PKGCOMP=none


и после изменение пересоздать дерево

у меня так

root@zzz:~# apt-get update
Hit http://xxx stable Release.gpg
Ign http://xxx stable/main Translation-en_US
Hit http://xxx stable Release
Ign http://xxx stable/main Packages/DiffIndex
Ign http://xxx stable/main Packages
Hit http://xxx stable/main Packages
Reading package lists... Done
Спасибо сказали:
Аватара пользователя
onto
Сообщения: 14
ОС: Ubuntu 10.04

Re: apt-move Локальный репозиторий с gpg

Сообщение onto »

Ну вот я вписал PKGCOMP=none, делаю apt-move update, потом sudo apt-get update и получаю:

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

W: Не удалось получить http://xxx/dists/stable/main/binary-i386/Packages.gz  404  Not Found

W: Не удалось получить http://xxx/dists/stable/contrib/binary-i386/Packages.gz  404  Not Found

W: Не удалось получить http://xxx/dists/stable/non-free/binary-i386/Packages.gz  404  Not Found


Если делать без ключа и с сжатием то все нормально, кроме того что у меня как и у Doublespace пропускается много файлов. Скорее всего потому, что репозитории ними у меня не подключены, они просто взяты из локальной папки. Так что мне apt-move не подходит=(
Спасибо сказали:
Ответить