On Sat, May 12, 2007 at 09:45:42PM -0700, Dmitry Zhukov wrote: > > 2. Более сложный случай --- пакетов достаточно много, чтобы было лень > > разгребать зависимости и обновлять вручную. Тогда читать Debian > > Repository HOWTO [1]. Он, конечно, куцеватый: про подписывание > > репозитария там ничего нет. Если надо, могу выдать свой рецепт. > > > Конечно надо!!! > что за рецепт?
Готовый рецепт создания подписанного trivial репозитария.
Этап 1. Подготовка.
~~~~~~~~~~~~~~~~~~~
** 1. Нужно создать собственный ключ GPG.
$ gpg --gen-key
<вопросы-ответы skipped>
pub 1024D/45217F7E 2007-05-13
^^^^^^^^
Это запомним
Key fingerprint = BB23 D685 341E 45E5 12FE 27C4 B836 C8FA 4521
7F7E
uid Dmitry Azhichakov <[EMAIL PROTECTED]>
sub 2048g/25EF32F6 2007-05-13
$ KEY_ID=45217F7E # Запоминаем id ключа на будущее.
** 2. Сообщить APT'у, что я себе доверяю :)
$ gpg --armor --export $KEY_ID |sudo apt-key add -
** 3. Создать каталог репозитария, например, /usr/src/debian или
~/public_html/debian.
$ REPO_DIR=$HOME/public_html/debian
$ mkdir -p $REPO_DIR
** 4. Создаем файл конфигурации для apt-ftparchive. Я его храню прямо в
каталоге репозитария, т.к. скрывать, вроде, незачем.
$ vi $REPO_DIR/apt-ftparchive.conf
===== BEGIN apt-ftparchive.conf =====
Dir {
ArchiveDir ".";
CacheDir ".";
};
Default {
Packages {
Extensions ".deb";
Compress ". gzip bzip2";
};
Sources {
Compress ". gzip bzip2";
};
Contents {
Compress ". gzip bzip2";
}
FileMode "0664";
};
BinDirectory "." {
Packages "Packages";
Sources "Sources";
Contents "Contents";
PathPrefix "./";
}
APT::FTPArchive::Release {
Archive "My test repository";
Origin "Me";
Label "MyTest";
Components "non-free";
Architectures "i386 source";
Suite "unstable";
Codename "mytest";
};
===== END apt-ftparchive.conf =====
За объяснением что здесь что, отсылаю к man apt-ftparchive.
** 5. Создаем скрипт для генерации служебных файлов. Его я тоже храню прямо
в репозитарии.
$ vi $REPO_DIR/gen.sh
===== BEGIN gen.sh =====
#!/bin/sh
cd `dirname $0`
DIR=.
KEY_ID=45217F7E # Id созданного ключа, см. выше
# Генерация Packages*, Sources*, Contents*
apt-ftparchive generate ${DIR}/apt-ftparchive.conf
# Генерация Release
apt-ftparchive -c ${DIR}/apt-ftparchive.conf release ${DIR} >${DIR}/Release
# Подписываем Release
gpg --yes --default-key ${KEY_ID} --armor -o ${DIR}/Release.gpg -sb
${DIR}/Release
===== END gen.sh =====
$ chmod +x $REPO_DIR/gen.sh
** 6. Добавляем репозитарий в /etc/apt/sources.list
# echo "deb file:/$REPO_DIR ./" >>/etc/apt/sources.list
# echo "deb-src file:/$REPO_DIR ./" >>/etc/apt/sources.list
Этап 2. Наполнение.
~~~~~~~~~~~~~~~~~~~
** 1. Копируем все пакеты, которые нужны в $REPO_DIR.
$ cp *.deb $REPO_DIR
** 2. Генерим репозитарий.
$ $REPO_DIR/gen.sh
** 3. Пользуемся.
# aptitude update
THE END.
Если репозитарий публичный, не забудьте опубликовать также и
gpg --armor --export $KEY_ID.
--
Dmitry
signature.asc
Description: Digital signature

