Научите делать репозитарии для Maemo

Возникла у меня очередная бредовая идея и в лоб она не решилась. Может кто знает в чём моя проблема?

Собственно по неким причинам мне приходится достаточно часто перепрошивать таблетку. По несколько раз в неделю. Процедура бакапа/восстановления у меня уже отработана и я ничего не теряю, кроме тех приложений, что приходится ставить не из системных репозитариев, а из deb пакетов. Какие-то свои поделки + некоторые \"умные\" девелоперы продажные версии распространяют именно так. (Quick panoram Pro например). Ну и как-то лень мне каждый раз их из каталога ручками ставить. Можно конечно и скрипт написать, но подумалось мне, а чего бы не сделать свой репозитарий и просто туда эти пакетики покласть? На персональном веб-ресурсе. Почитал http://l10n-russian.alioth.debian.org/repository-howto.ru.html
и собрал \"обычный\" репозитарий. Поклал туда мои deb-ы, скопмпилил Packages.gz, подключил репозитарий (не ругнулось). Но пакеты не устанавливаются. На
apt-get install нечто
в конце пишет
\"handler silently failed\"
и ничего не ставит :( При том что dpkg локально такие пакеты ставит на ура :( В чём собака порылась? есть у кого опыт репозитарный?
у меня так(для debian squeeze):
/rep/testind/dist/pool/main/binary-i386/Packages.gz
/rep/testind/dist/pool/main/тут_пакеты
/rep/testind/override(пустой файл)
/rep/testind/scanpack.sh
/rep/testind/Packages.gz(появляется после отработки scanpack.sh, для контроля)

scanpack.sh:

dpkg-scanpackages dists/pool override | gzip > Packages.gz
cp Packages.gz dists/pool/main/binary-i386

его можно и покороче сделать.
и соответствующим образом настроенный FTP(у меня proftpd)

а можно настроить какой-нить apt-cacher...
а по http можно? Или как правильно настроить FTP (у меня так же proftpd) ? Тут ещё одна тонкость у меня. Мой персональный сервер пашет под FreeBSD. Я дебиан под виртуалкой на компе поднимаю только для разработки. Типа все каталоги готовлю, а потом на свой сервер копирую. В этом не может быть затыка?
У меня вебсервер, всё лежит в папке /var/www/rep

[fx|~] ls /var/www/rep/
dists pool repo.key update.sh


Открытый ключ для GPG-подписи пакетов (у меня - repo.key) создаётся командой gpg --gen-key

пакеты просто закидываются в /var/www/rep/pool
[fx|~] ls /var/www/rep/pool/
calcoo_1.3.18-2_armel.deb mbkbd-xbindkeys_armel.deb
empire_1.7-3_armel.deb tmw-0.0.29.1-3_armel.deb


Содержимое скрипта /var/www/rep/update.sh:

#!/bin/sh

prefix=/var/www/rep
cd $prefix
dir=$prefix/dists/maemo/main/binary-armel
mkdir -p $dir
dpkg-scanpackages --arch armel pool /dev/null > $dir/Packages
gzip -9c <$dir/Packages >$dir/Packages.gz
bzip2 -9c <$dir/Packages >$dir/Packages.bz2
dir=$prefix/dists/maemo/main
apt-ftparchive release $dir >>$dir/Release
gpg -abs -o $dir/Release.gpg $dir/Release


Который создаёт списки пакетов, подписывает и кладёт в /var/www/rep/dists/maemo/main/binary-armel

[fx|~] less /var/www/rep/dists/maemo/main/binary-armel/
Packages Packages.bz2 Packages.gz Release Release.gpg


Файл Release, как и саму папку, где он должен лежать, надо создать вручную

Содержимое:
Archive: maemo
Suite: maemo
Component: main
Origin: xlab
Label: Xlab's repository
Architecture: armel


Теперь можно юзать update.sh после каждого добавления пакета в pool. Он всё сам обновит

В /etc/apt/sources.list на клиенте:

deb http://rep.kynpu.ru/ maemo main


Если будет ругаться на отсутствие ключа, его можно просто скачать
wget http://rep.kynpu.ru/repo.key

и добавить

apt-key add repo.key

Всё прекрастно работет! По урлу можно зайти с любого браузера и скачать пакеты из пула
Xlab, пробую но не получается перешагнуть за генерацию ключа. Я через ssh подключаюсь ну и на gpg --gen-key в конце мне выдаёт
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy!
и всё. Я правильно понимаю, что сгенерить ключ удалённо никак? потому дальше что бы я не делал - висит. Удаётся только абортировать программу по ctrl+c. Видимо ключ надо локально на хостовом компьютере сначала сгенерить?
Видимо ключ надо локально на хостовом компьютере сначала сгенерить?

Да, я думаю платформа не имеет значения.

Если не получится даже так, то можно попробовать вообще без ключа
Да необязательно gpg ключ.
Достаточно положить на http пакеты и Packages.gz
Xlab:
Файл Release, как и саму папку, где он должен лежать, надо создать вручную

Содержимое:
Archive: maemo
Suite: maemo
Component: main
Origin: xlab
Label: Xlab's repository
Architecture: armel


А какую папку надо создать вручную? в binary-armel создался свой Realese. А это где надо сделать?
Да не нужно ничего. Точнее необязательно. Вот мой репозиторий:

ls -l | grep -v deb
total 751836
-rw-r--r-- 1 nobody nobody 140084 Jun 27 2010 Packages.gz
Лично я предлагаю \"правильное\" построение репозитория. Я сам его вычитал на умном сайте, оно не претендует на звание лучшего способа создания репов. Вполне вероятно, что для собственного мини-репозитория ничего кроме предложенного svs57 и не понадобится. Однако свой метод я дополняю подробной инструкцией ;)


А какую папку надо создать вручную? в binary-armel создался свой Realese. А это где надо сделать?

Предполагалось, что надо создать /var/www/rep/dists/maemo/main/binary-armel и /var/www/rep/dists/maemo/main/binary-armel/Release самостоятельно ДО запуска update.sh

как-то так mkdir -p /var/www/rep/dists/maemo/main/binary-armel/

Потом leafpad /var/www/rep/dists/maemo/main/binary-armel/Release или другой _ваш_редактор_

---


[spoiler]Как сделать лучемёт в лесу из подручных средств - веток, ягод, орешков и кабаньего дерьма, вам расскажут на радио Воруй-Убивай...[/spoiler]
Xlab: mkdir -p /var/www/rep/dists/maemo/main/binary-armel/

Просто в update.sh папка тоже создаётся. Это меня и смутило.
Ну в общем не помогло. Правильный репозиторий, как и простой дают один результат:
/home/user # apt-get install quickpanorama-pro
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Handler silently failed
/home/user #

Не может это быть проблема самого пакета, а не репозитория? И можно какую-то более полную дигностику увидеть? Что ему не нравится?
И вот подумал:\"дайка посмотрю, что за игры на него написали..\" - зашел на ови(с мобилы, через вафлю) ну вот игрушка - птички злобные - жму грузить - телефон подумал подумал, перекинул меня в ДП и встал на месте на подготовке установления.
Ладно думаю. дайка через терминал - он выдал мне такое(вида):
блабла done
блабла done
блабла done
E:Handler silently failed(и последнее)
Не понял причем тут привязка (совсем не понял! и,самое главное, к чему?!может я чего не понимаю?!)ну помучился помучился -ничего не помогло,не хочет и все тут!
ну и забил.думаю ладно не важно, не для игр брал совсем.
Лег спать,просыпаюсь и решил проветь опять(да, я настырный))) - и вот эврика, все загрузилось,установилось и работает. оО учитывая,что ничего не делал,и ничего с ним не происходило..


с форума maemoworld, раздел о багах N900. Странное совпадение, не так ли? :D
http://talk.maemo.org/showthread.php?t=48479

и тут(последний пост):
http://www.nokiausers.net/forum/nokia-n900/34196-angry-birds-scores.html

ну уж это то можно было нагуглить))
весь прикол в искорёженном apt'e в n900
Если ещё нужны рецепты «правильных» репозиториев, то можно подсмотреть мой, сделанный на apt-ftparchive
http://skriblovsky.net/maemo/dists/
http://skriblovsky.net/maemo/update-repository.sh ← скрипт для обновления
http://skriblovsky.net/maemo/mitrandir.conf ← конфиг для apt-ftparchive

Xlab
Ууу... Я был о нокии лучшего мнения
К сожалению n900 у меня нет. Нужно конфиги apt смотреть.
Спасибо. Я вспомнил. Это же последствие того, что нокия попыталась решить проблему платного софта. По сути дебиановские репозитарии не предназначены для хранения \"защищённых\" от скачки всеми приложений. В результате получилось то, что произошло с Angry Birds. Нокия разместила бесплатный стартовый пакет и платные дополнительные уровни. Но как только стало известно имя пакета - его опубликовали и все кто захотел, смогли скачивать бесплатно.
Нокия предприняла какие-то шаги по изменению OVI и механизма установки пакетов. Просто не знал какие. Оказывается просто залочить ручную инсталяцию :) Кстати полный бред - продавцы платные версии просто в виде пакетов рассылают по почте индивидуально...
Бред какой-то
Уж лучше пусть придумали бы свою дополнинельную систему репозиториев, чем так глумиться над APT

А вообще проблема, конечно, существует: под linux нет средств организации продаж платного софта. И жаль, что до сих пор никто не взялся эту проблему решать.
Ну не совсем так. Вроде как редхатовский механизм rpm распространения позволяет это организовать. И это дало шансов более MeeGo против Maemo
Или я слоупок, или все вокруг сошли сума? Как же раньше, с 2003 года(и даже раньше, во времена чёрно-белых пальмов) продавали софт? Тогда не то что репозиториев, интернета не девайсах не было! Все программы качались с айтов разработчиков, с форумов... да, к ним прикладывали \"кряки\", но кряк тоже ведь найти надо... Потом появлялись более сложные системы защиты, к каким вообще кряков не было..

Куда всё подевалось? Куда делись банальные окошки с кнопками а-ля \"Ваш код девайса: **** Введите S/N:\"?

Странно, что крупные компании шаманят с механизмами продажи и скачки пакетов, не думая о защите самих пакетов, а, точнее, бинарников в них. Цирк. Или я всё неправильно понял... :|
Всё правильно. И именно поэтому на очередной конференции Нокии была опубликована следующая модель построения ядра для коммерческих приложений. И там уже разные уровни защиты и механизмы подписей на них. И вроде как всё это планировалось в харматане. Но будет ли это реализовано в МиГо - не знаю.

Просто в ОС в которой простому пользователю элеметарно получить корневой доступ и легко получить отладчик уровня ядра, защитить коммерческий софт сложней. В начале надо закрыть саму ОС.
Xlab
В те старые добрые времена всё это было на винде. И каждый разработчик сам придумывал себе метод защиты, систему лицензионных кодов, а что самое плохое -- сам себе придумывал интернет-магазин.
Сейчас такая дифференциация уже немодна. В моде аппсторы от производителей платформы, унификация. А никаких средств централизованной продажи и защиты софта под линукс нет, как и под винду, впрочем.
А проблема обмена бинарниками отходит на второй план по сравнению с проблемой централизованной продажи. Обмен бинарниками действительно планировалось закрыть с помощью DRM