HPC.ru lite - Все форумы
Форум: КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее
Тема: работа с пакетами ipk
Страницы: [1] 2 3
[Ответить]
DMych [30.11.2005 12:23] работа с пакетами ipk:
(Решил вынести свой вопрос в новую тему, ибо суть новая тема
)
Еще раз "о птичках": есть ли способ проверить из скриптов при установке пакета куда статится - в основную память или на карточку (CardInst=yes|no)? Ну, кроме, разумеется, прямого анализа файла control.
Последнее, кстати, может оказаться проблематичным, т.к. на машине может не оказаться даже grep'а, не говоря уже о sed'е, awk'е и т.п.
Просто тут у меня мысля родилась - перепаковать тот Питон, что в cramfs идет, в нормальный ipk-файл с возможностью установки на карточку. Для этого желательно проверять куда он ставится, и создавать (или не создавать) нужные симлинки.
DMych [30.11.2005 13:55] :
Не такое уж и "море".
У меня на SD 512M (правда, в ext2fs) лежит devimage, emacs, и оба Питона (практически целиком). Плюс репозиторий CVS, куча доков и фоток. И еще место осталось. Честно. 
А, нет, вру: devimage у меня там в cramfs-таки лежит - я его не распаковывал.
По любому, я думаю, может быть полезно иметь этот Питон в ipk-формате, ибо из двух существующих этот ИМХО качественнее сделан. Опять же, не нужно мучиться выбором нужных пакетов. Поставил - и все (хошь cramfs бери, хошь в ipk - на выбор).
maslovsky [30.11.2005 15:27] Re: работа с пакетами ipk:
Еще раз "о птичках": есть ли способ проверить из скриптов при установке пакета куда статится - в основную память или на карточку (CardInst=yes|no)?
Разве что по анализу переменной PKG_ROOT
Ну, кроме, разумеется, прямого анализа файла control.
Это точно не поможет, ибо это фишка опциональная и её может не быть.
Последнее, кстати, может оказаться проблематичным, т.к. на машине может не оказаться даже grep'а, не говоря уже о sed'е, awk'е и т.п.
Grep и sed есть даже в шарпвских прошивках (в составе busybox), awk появился в прошивках для завров СхК. В Cacko и прочих продвинутых прошивках всё это есть с самого начала.
Просто тут у меня мысля родилась - перепаковать тот Питон, что в cramfs идет, в нормальный ipk-файл с возможностью установки на карточку. Для этого желательно проверять куда он ставится, и создавать (или не создавать) нужные симлинки.
А это и не нужно, гуёвый исталятор сам создает необходимые симлинки при установке на карты.
DMych [30.11.2005 16:35] Re: работа с пакетами ipk:
maslovsky писал(а):
А это и не нужно, гуёвый исталятор сам создает необходимые симлинки при установке на карты.
А не гуёвый? 
Опять же, откуда он знает, что /usr/bin/python должен указывать на /usr/bin/python2.3 или /mnt/card/QtPalmtop/usr/bin/python?
DMych [01.12.2005 11:25] Re: работа с пакетами ipk:
Alex_Losk писал(а):
там же файлов море. а если на карту под fat да еще и с рекомендуемым повышенным клайстерным размером...
Ожидаемый размер пакетов после установки:
[*:814774f5c0]сам Питон ~37M
[*:814774f5c0]документация в HTML ~15M
Сдается мне, не так уж много. Кстати, файлы там в основном небольшого размера, многие вообще мелкие. Так что насчет размера кластера стоит подумать. 
DMych [01.12.2005 13:29] :
В процессе установки пересобранного питона ipkg рукается:
/mnt/cf/ipks# ipkg -d /mnt/cf/QtPalmtop install ./python_2.3-build01_arm.ipk
Unpacking python...Done.
Configuring python...[: ==: unknown operand
Done.
*** Command: add
*** Locating
package Package "python" not found on external storages.
/mnt/cf/ipks# ipkg -d /mnt/cf/QtPalmtop/ install ./python-doc_2.3-build01_arm.ipk
Unpacking python-doc...Done.
Configuring python-doc...Done.
*** Command: add
*** Locating package
Package "python-doc" not found on external storages.
Пакет pythonимеет в control:
Package: python
Priority: optional
Section: Console
а также postinst-скрипт:
#!/bin/sh
ln -sf $PKG_ROOT/usr/bin/python2.3 /usr/bin/python
ln -sf $PKG_ROOT/usr/bin/pydoc2.3 /usr/bin/pydoc
if [ $PKG_ROOT == "/" ] ; then
ln -sf $PKG_ROOT/usr/lib/python2.3 /usr/lib/python2.3
fi
exit 0
В control для python-doc прописано:
Package: python-doc
Priority: optional
Section: Misc
Что бы это могло быть? А главное - как лечить?
DMych [01.12.2005 15:47] :
Все, разобрался сам: во-первых, нужно, конечно же, задавать -d /mnt/cf, а во-вторых, писать #!/bin/bash, а не /bin/sh в скрипте.
maslovsky [01.12.2005 16:07] Re: работа с пакетами ipk:
DMych писал(а):
[quote:23a503ee97="maslovsky"]А это и не нужно, гуёвый исталятор сам создает необходимые симлинки при установке на карты.
А не гуёвый? 
Есть такая штука как ipkg-link
Опять же, откуда он знает, что /usr/bin/python должен указывать на /usr/bin/python2.3 или /mnt/card/QtPalmtop/usr/bin/python?
Ссылку /usr/bin/python2.3 -> /usr/bin/python нужно просто в пакете иметь. А ссылка /mnt/card/usr/bin/python -> /usr/bin/python будет создана инсталятором.
maslovsky [01.12.2005 16:08] :
if [ $PKG_ROOT == "/" ] ; then
$PKG_ROOT лучше в кавычки взять
maslovsky [01.12.2005 16:10] :
И если уж что-то делаешь ручками в postinst, то подчищай за собой в portrm 
[Ответить]
[Вперед >]