Страница 1 из 1

Debian Etch. Как правильно подписать репозиторий.

Добавлено: 13 июн 2007, 19:07
sutulo
Имеется локальный репозиторий debian etch.
при установке пакетов
apt-get install bla-bala-bla
возникает сообщение вида

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

After unpacking 520kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  yakuake
Install these packages without verification [y/N]?
Хотелось бы от него избавиться. Можно отключить проверку в файле apt.conf но это я так понимаю не debian-way. Как я понял требуется создать пару ключей, создать файл Release и подписать его своим ключом, и затем экспортировать публичный ключ в apt.
я делаю так.

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

gpg --gen-key (создаю пару ключей)
apt-ftparchive Release /home/kirill/test/dists/etch (создаю файл Release)
gpg -abs -o Release.gpg Release (я так понимаю это подписывает файл Release)
gpg --export -a kirill > public.key (экспорт публичного ключа)
apt-key add public.key (добавляю публичный ключ в apt)
apt-get update
и нихрена.... following packages cannot be authenticated!
как быть? где я ошибся?

Добавлено: 13 июн 2007, 19:23
Llama
apt-get install debian-keyring ?

Добавлено: 13 июн 2007, 19:39
sutulo
Llama, установлен... собака
ПАРДОН не стоял.... был установлен debian-archive-keyring.
вроде в первую очередь проверил его....
а остальное я делаю правильно?
Release.gpg должен находиться в корне репозитория?

Добавлено: 14 июн 2007, 09:39
sutulo
Проблема решена. Моя ошибка - не требовалось создавать файл Release так как он уже присутствовал в каталоге
/home/kirill/test/dists/etch
Кому нужно последовательность такая.

gpg --gen-key (создание пары ключей)
cd /home/kirill/test/dists/etch
gpg -abs -o Release.gpg Release (подпись файла Release - на выходе получаем Release.gpg)
gpg --export -a kirill > public.key (экспорт публичного ключа)
apt-key add public.key (добавляю публичный ключ в apt)
apt-get update

Теперь при установке не ругается на неподписанные пакеты.

НО! есть один момент. Я держу диски с Debian в iso образах. При монтировании их как loop устройство я естественно не могу создать в них файлы Release.gpg.... Держать на диске и iso и развернутую структуру не хочется. Хотелось бы оставить ТОЛЬКО iso. И иметь возможность устанавливать пакеты без ругани.
Как бы это похитрее провернуть?

Добавлено: 14 июн 2007, 19:54
Dzmitry
sutulo, есть способ для FC и YUM.. Думаю для Debian и apt похожее решение должно быть.. Т.е. директория, внутри которой симлинк на точку монтирования образа.. тогда необходимые для работы репозитария файлы будут создаватся на харде.. Гугл в помощб собственно говоря.. Если сделаешь - в вики повесить не забудь.

Добавлено: 14 июн 2007, 20:01
rain
lndir?

Добавлено: 15 июн 2007, 08:21
sutulo
Dzmitry, буду разбираться. У меня мысли в эту сторону тоже возникали.... Пока не осилил.
rain, а что это?

Добавлено: 15 июн 2007, 08:43
sutulo
Пока вижу одно решение - запихать в развернутый на диск ISO образ файл Release.gpg и затем собрать ISO заново. Хочется чего-то поэлегантнее.....

Добавлено: 15 июн 2007, 09:39
Dzmitry
sutulo, можно так:

mkdir /path/to/somedir
mkdir /path/ro/somedir/dir1 (повторяем несколько раз, в зависимости от числа ISO-шек, меняя циферку)

Потом монтируем ISO-шки в dir1, dir2, etc...
A Release.gpg пихаем в /path/to/somedir и в /etc/apt/source.list добавляем путь вида file:///path/to/somedir


Или так работать не будет?

Добавлено: 15 июн 2007, 10:12
sutulo
Dzmitry, АГА! Так для каждой из ISO же свой Release.gpg. Три ISO - три Release.gpg.
И потом, Release.gpg судя по всему должен находиться в
/path/to/somedir/dir1/dists/etch

Добавлено: 15 июн 2007, 14:03
Dzmitry
Предполагаю, что проверку на наличие ключа можно отключить в конфиге APT. Поставил apt на FC6 и там такая фича имеется:
# cat /etc/apt/apt.conf | grep GPG

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

  // Uncomment to disable GPG-signature checking for packages
  // GPG-Check "false";

Добавлено: 15 июн 2007, 14:42
sutulo
Dzmitry, я это знал. См. мой самый первый пост. Некошерно... блин.

Добавлено: 15 июн 2007, 15:24
rain
rain, а что это?
Нууу... команда :) Создает симлинками полную копию каталога.
Можно, например, так:

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

mkdir /mnt/loop{1,2,3}
mkdir /mnt/iso{1,2,3}
mount -o loop iso1 /mnt/loop1
**********
lndir /mnt/loop1 /mnt/iso1
**********
А в /mnt/iso?, уже доступных на запись делаем нужные нам изменения - удаляем лишние линки и добавляем нужные файлы.

Добавлено: 18 июн 2007, 08:29
sutulo
rain, Спасибо, обязательно сегодня попробую....

Добавлено: 18 июн 2007, 15:59
sutulo
rain, Премного благодарен. Все заработало как мне и хотелось. Только я от жары конкретно затупил... перерыл все в поисках команды INDIR !!!! Минут через 10 только понял что надо все же LNDIR искать.....:)