работа с пакетами ipk

КПК с Linux, установка Linux на iPaq и другие модели, программы
Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

работа с пакетами ipk

Сообщение DMych » Ср ноя 30, 2005 12:23

(Решил вынести свой вопрос в новую тему, ибо суть новая тема ;) )

Еще раз "о птичках": есть ли способ проверить из скриптов при установке пакета куда статится - в основную память или на карточку (CardInst=yes|no)? Ну, кроме, разумеется, прямого анализа файла control.

Последнее, кстати, может оказаться проблематичным, т.к. на машине может не оказаться даже grep'а, не говоря уже о sed'е, awk'е и т.п.

Просто тут у меня мысля родилась - перепаковать тот Питон, что в cramfs идет, в нормальный ipk-файл с возможностью установки на карточку. Для этого желательно проверять куда он ставится, и создавать (или не создавать) нужные симлинки.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Ср ноя 30, 2005 13:55

Не такое уж и "море". ;) У меня на SD 512M (правда, в ext2fs) лежит devimage, emacs, и оба Питона (практически целиком). Плюс репозиторий CVS, куча доков и фоток. И еще место осталось. Честно. :)

А, нет, вру: devimage у меня там в cramfs-таки лежит - я его не распаковывал.

По любому, я думаю, может быть полезно иметь этот Питон в ipk-формате, ибо из двух существующих этот ИМХО качественнее сделан. Опять же, не нужно мучиться выбором нужных пакетов. Поставил - и все (хошь cramfs бери, хошь в ipk - на выбор).
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Re: работа с пакетами ipk

Сообщение maslovsky » Ср ноя 30, 2005 15:27

Еще раз "о птичках": есть ли способ проверить из скриптов при установке пакета куда статится - в основную память или на карточку (CardInst=yes|no)?
Разве что по анализу переменной PKG_ROOT
Ну, кроме, разумеется, прямого анализа файла control.
Это точно не поможет, ибо это фишка опциональная и её может не быть.
Последнее, кстати, может оказаться проблематичным, т.к. на машине может не оказаться даже grep'а, не говоря уже о sed'е, awk'е и т.п.
Grep и sed есть даже в шарпвских прошивках (в составе busybox), awk появился в прошивках для завров СхК. В Cacko и прочих продвинутых прошивках всё это есть с самого начала.
Просто тут у меня мысля родилась - перепаковать тот Питон, что в cramfs идет, в нормальный ipk-файл с возможностью установки на карточку. Для этого желательно проверять куда он ставится, и создавать (или не создавать) нужные симлинки.
А это и не нужно, гуёвый исталятор сам создает необходимые симлинки при установке на карты.

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Re: работа с пакетами ipk

Сообщение DMych » Ср ноя 30, 2005 16:35

maslovsky писал(а):А это и не нужно, гуёвый исталятор сам создает необходимые симлинки при установке на карты.
А не гуёвый? ;)

Опять же, откуда он знает, что /usr/bin/python должен указывать на /usr/bin/python2.3 или /mnt/card/QtPalmtop/usr/bin/python?
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Re: работа с пакетами ipk

Сообщение DMych » Чт дек 01, 2005 11:25

Alex_Losk писал(а):там же файлов море. а если на карту под fat да еще и с рекомендуемым повышенным клайстерным размером...
Ожидаемый размер пакетов после установки:
  • сам Питон ~37M
  • документация в HTML ~15M
Сдается мне, не так уж много. Кстати, файлы там в основном небольшого размера, многие вообще мелкие. Так что насчет размера кластера стоит подумать. ;)
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт дек 01, 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                                                                   
Что бы это могло быть? А главное - как лечить?
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Сообщение DMych » Чт дек 01, 2005 15:47

Все, разобрался сам: во-первых, нужно, конечно же, задавать -d /mnt/cf, а во-вторых, писать #!/bin/bash, а не /bin/sh в скрипте.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Re: работа с пакетами ipk

Сообщение maslovsky » Чт дек 01, 2005 16:07

DMych писал(а):
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
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Чт дек 01, 2005 16:08

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

if [ $PKG_ROOT == "/" ] ; then 
$PKG_ROOT лучше в кавычки взять

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Чт дек 01, 2005 16:10

И если уж что-то делаешь ручками в postinst, то подчищай за собой в portrm :)

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Сообщение maslovsky » Чт дек 01, 2005 16:12

Но всё-таки лучше ссылки руками не делать, ибо при установки такого пакета через ГУЙ, будут созданы ссылки ещё раз, получится каша.

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Re: работа с пакетами ipk

Сообщение DMych » Чт дек 01, 2005 16:16

maslovsky писал(а):Ссылку /usr/bin/python2.3 -> /usr/bin/python нужно просто в пакете иметь. А ссылка /mnt/card/usr/bin/python -> /usr/bin/python будет создана инсталятором.
Да, верно.

Значит, ln -sf $PKG_ROOT/usr/lib/python2.3 /usr/lib/python2.3 гуевый сделает сам? А если ставится не через гуй? Я так понял, что есть разница? Странно.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Re: работа с пакетами ipk

Сообщение DMych » Ср дек 07, 2005 10:48

maslovsky писал(а):Ссылку /usr/bin/python2.3 -> /usr/bin/python нужно просто в пакете иметь. А ссылка /mnt/card/usr/bin/python -> /usr/bin/python будет создана инсталятором.
Не прокатывает - говорит Permission denied на ссылку.

Еще такой вопрос: какой destination передается команде ipkg при установке из гуя на карточку? /mnt/cf/QtPalmtop или /mnt/cf?

Если ставить с консоли, указав "-d /mnt/cf/QtPalmtop", то ipkg ругается 'Package "..." not found on external storage'. Причем перед этой строкой идут еще две:

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

*** Command: add
*** Locating package
Все при этом ставится вполне нормально, в /mnt/cf/QtPalmtop/...

Если указать "-d /mnt/cf", то ipkg не ругается, что не может найти, но выдает аж пять строчек со звездочками - такое ощущение, что это какой-то отладочный вывод ipkg.

При установке из гуя говорит "ipkg says something wrong" и все.
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

maslovsky
Нобелевский лауреат (7 lvl)
Сообщения: 2781
Зарегистрирован: Пн окт 20, 2003 20:14

Re: работа с пакетами ipk

Сообщение maslovsky » Ср дек 07, 2005 16:23

DMych писал(а):
maslovsky писал(а):Ссылку /usr/bin/python2.3 -> /usr/bin/python нужно просто в пакете иметь. А ссылка /mnt/card/usr/bin/python -> /usr/bin/python будет создана инсталятором.
Не прокатывает - говорит Permission denied на ссылку.
Не понял. Когда это происходит?
Еще такой вопрос: какой destination передается команде ipkg при установке из гуя на карточку? /mnt/cf/QtPalmtop или /mnt/cf?
/mnt/cf

Аватара пользователя
DMych
Доктор (4 lvl)
Сообщения: 435
Зарегистрирован: Пн июл 28, 2003 10:20

Re: работа с пакетами ipk

Сообщение DMych » Ср дек 07, 2005 16:59

maslovsky писал(а):
DMych писал(а): Не прокатывает - говорит Permission denied на ссылку.
Не понял. Когда это происходит?
При установке - такое ощущение, что пытается создать ссылку python на python23 до того, как python23 скопирован.
maslovsky писал(а):
Еще такой вопрос: какой destination передается команде ipkg при установке из гуя на карточку? /mnt/cf/QtPalmtop или /mnt/cf?
/mnt/cf
Однако, устанавливается в /mnt/cf/usr, а не в /mnt/cf/QtPalmtop/usr (я так понял, что правильный последний вариант).
Zaurus SL-C860 + SD 1G + CF 512M + Bluetooth-GPRS
Cacko 1.22a

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»