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