Nokia Internet Tablet N8XX     

Ответы на вопросы о таблетках

  • Вы не зашли.

#1 25-10-2007 22:40:09

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

А не поможет кто со сборкой пакетов

Собственно вопрос теоретический. Впервые столкнулся с дебиановскими пакетами и поэтому возник вопрос:

А как этически-идеологически правильно править существующие конфигурационные файлы в момент инсталяции пакета?

Скажем есть некий текстовый файл в системе, который должен быть модифицирован при установке пакета и обратно возвращён при деинсталяции. При этом файл может модифицироваться затем и вручную. Есть ли классическое решение такой проблемы?

Может есть какой-то штатный бебиановский механизм по замене файлов? Типа подкладывать свой при инсталяции так, чтобы сохранился оригинальный и при деинсталяции он был возвёрнут?


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#2 29-10-2007 02:58:27

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

Re: А не поможет кто со сборкой пакетов

Вопрос был не откуда править, а как. Спрашивал - есть ли штатный механизм. Про postinst понятно, но вопрос в том, чем в нём править файлы. Попробовал патчем, так его наличие на таргетной машинке не гарантированно. Перл? - тоже не факт. Думал, что есть что-либо гарантированное. Или только sed ?


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#3 30-10-2007 06:37:48

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Стандартный подход к управлению конфигурационными файлами описан в Debian Policy:
http://www.us.debian.org/doc/debian-pol … nfig-files   
Насчет того чем править вы правы, можно рассчитывать только на sed, который провайдится busybox-ом, если я правильно помню.
Но никто не мешает добавить в ваш пакет зависимость на perl или patch и править ими. Коряво немного, на мой взгляд, но работать будет.
Зависимость на sed я бы тоже поставил для гарантии. explicit is better than implicit smile

Отредактированно Wall (30-10-2007 06:38:09)


Nokia 770/IT 2006, N810

Неактивен

 

#4 30-10-2007 06:48:11

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

Re: А не поможет кто со сборкой пакетов

прямо на sed ставить бессмысленно, поскольку такого пакета явно я не нашёл. Это часть или busybox или bash идёт. Но вроде (из непроверенных источников) его не может не быть :-) Он - то не многое, на что можно опереться, как и на grep. В общем я вроде победил свою проблему sed-ом (заодно научился пользоваться). Но спасибо, что подтвердили правильность решения.


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#5 30-10-2007 06:57:36

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Отвечаю.
GET: Причем тут build-essential, речь идет о правке конфигов при инсталляции/апгрейде пакета? А понятие essential в maemo отсустсвует как класс, если я правильно понимаю. Могу быть не прав, тогда покажите где оно. Только в Debian не отсылайте maemo != Debian.

gLobster: неважно, что пакета sed нет, поставится то, что его провайдит. И это правильно. Если вы просто подразумеваете, что что-то существует, то ваш софт не будет работать, если это не так (например в следующей версии busybox поддержку sed из него выкинут). Если же у вас будет зависимость на sed, то в таком случае ваш пакет просто не поставится, если в системе нет ничего, что провайдит sed, и это намного лучше, чем если он поставится, но не будет работать как надо. Собственно для этого зависимости и используются.


Nokia 770/IT 2006, N810

Неактивен

 

#6 30-10-2007 07:12:44

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Еще раз: Build-dependency здесь вообще ни при чем, поскольку речь идет об установке/апгрейде пакета, а не о сборке.
Зависимость на sed нужна, потому как нет гарантии, что он будет в системе.
Она не необходима, и я предлагал ее поставить только для гарантии, что sed есть. Можно не ставить, если исправление файлов седом является опциональным, тогда это нужно проверять в том месте, где делается исправление.

Отредактированно Wall (30-10-2007 07:15:33)


Nokia 770/IT 2006, N810

Неактивен

 

#7 30-10-2007 07:40:14

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

Re: А не поможет кто со сборкой пакетов

Это я всё понял, но разве в пакете можно поставить заисимость на файл? Я так понял, что можно только на пакет, в состав которого он входит. И сразу вопрос а как найти тот пакет, в который он входит. и что делать, если окажется, что он, как и часть других утилит, может входить в 2? ... На маемо я не нашёл перечня системных пакетов с описанием содержимого для построения таких зависимостей. Библиотеки хоть имеют хедеры и хелпы по вызовам, а что делать с исполнительными файлами smile  ?


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#8 30-10-2007 07:54:16

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Зависимость на файл для deb пакетов поставить нельзя. Я предлагал поставить зависимость на пакет. То, что реального пакета sed нет не фатально. Он есть так сказать 'виртуально'. Как я и писал его провайдит busybox.
Сделайте dpkg -s busybox |grep ^Provides и увидите.


Nokia 770/IT 2006, N810

Неактивен

 

#9 30-10-2007 08:06:31

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

По второй части вопроса.
Найти пакет в который входит файл можно 3мя способами
1. на девайсе, в случае если пакет с файлом установлен:
dpkg -S /bin/sed
2. где угодно из файла Contents репозитория, где лежит пакет:
wget -qO- http://repository.maemo.org/dists/maemo … s-armel.gz    |zcat |grep bin/sed
3. Для пакетов, которые есть в Debian можно попользовать 'Search the contents of packages' отсюда:
http://www.debian.org/distrib/packages   
Это нужно делать осторожно, поскольку maemo это не Debian и могут быть различия.

Отредактированно Wall (30-10-2007 11:02:33)


Nokia 770/IT 2006, N810

Неактивен

 

#10 31-10-2007 02:17:42

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

GET: Я же просил не ссылаться на Debian. Нет у маймо полиси и нет там essentials.
Вот вам пример: http://packages.debian.org/etch/perl-base   
Из Debian-а был взят только формат пакетов, но на таблетках совершенно отдельный дистр. В общем-то это и понятно, поскольку таблетка - не десктоп, у нее другие возможности, в том числе и аппаратные.

Насчет обязательного наличия sed. Если разработчики посчитают, что он не нужен, то никто не помешает им пересобрать busybox без поддержки sed-a, я уже об этом писал.

Повторюсь, я не настаиваю на добавлении зависимости на sed, я предлагал ее поставить просто для перестраховки. Это вы начали спорить, предъявляя спорные аргументы из практики другого дистрибутива с другими правилами.


Nokia 770/IT 2006, N810

Неактивен

 

#11 31-10-2007 05:23:41

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

GET говорит:

Ок, я не буду предъявлять никакие аргументы из другого дистрибутива с другими правилами. Просто поверьте, что сед никуда не денется из таблетки и скратчбокса. В маемо есть понятие essentials

Нет уж, увольте, верить я вам не буду. Мы спорим, а в споре на веру ничего не принимается. Доказывайте свою точку зрения smile
Дайте мне линк на формальный документ, в котором описано понятие essentials для их дистрибутива. Это будет доказательством.

Перл в скратчбоксе доступен всегда. Так что он работает как build-essential. Вот в 2007 релизе его нет, тут ты прав. Есть куда развиваться.  Давай к перлу вернемся через некоторое время, возможно, что-то изменится с выходом новой операционки.

Во-первых: scratchbox - это отдельная тема, если мы ее коснемся, то завязнем окончательно. Еще раз прошу, давайте забудем про build-essentials и про сборку. Сосредоточтесь на обычных зависимостях, не трогайте сборку, пожалуйста.
Во-вторых: Вопрос не в наличии или отсутсвии перла или sed-а, а в принципе. Принцип такой - если в дистрибутиве есть понятие essentials и есть четко оговоренный список пакетов, в него входящих, то зависимости на эти пакеты ставить не нужно. Если такого нет, и разработчик хочет гарантировать работу своего пакета, то зависимости нужно ставить. Согласны?

Вы предлагаете не ставить зависимость на sed потому как он в Debian essential находится, так? По аналогии можно так же возражать против зависимости на перл на том же основании (он в Debian essential). На таблетке это не работает, потому как перла нет на устройстве. Зависимость нужна, если перл используется. Если ее не поставить, то пакет, использующий перл работать не будет.
Из этого видно, что ваш подход не работает. Причины могут быть две - в таблеточном дистрибутиве нет понятия essentials или essentials есть, но туда не входит перл, но входит sed. Как проверить как обстоят дела на самом деле? Легко! Найти определение essentials для таблетки и понять, что sed - это essential пакет, а perl - нет. Ищите, показывайте smile

PS: У меня нет N800, но на 770 я вот что получил:
Nokia770-49:~# grep 'Package:\|Essential:' /var/lib/dpkg/status | grep -B1 Essential
Package: base-files
Essential: yes
--
Package: base-passwd
Essential: yes
--
Package: sysvinit
Essential: yes
--
Package: dpkg
Essential: yes

Мой вывод такой - essentials в терминологии Debian на таблетке отсутствуют, а эти 4 пакета - это остатки от этого понятия, просто эти пакеты были взяты из Debian когда-то.
Можно конечно сделать вывод, что essentials есть и в них входят эти 4 пакета, но в нашем с вами споре это не поможет. sed-а среди них нет, поэтому ставить зависимость на него нужно. Даже если на N800 в этот список входит busybox, то это тоже не поможет. busybox - это не sed, его функциональность определяется тем, как он собран. И sed и многое другое там можно отключить.


Nokia 770/IT 2006, N810

Неактивен

 

#12 31-10-2007 05:38:17

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

Re: А не поможет кто со сборкой пакетов

Но мне не понятен остался вопрос о том, что нужно укзать Dependes. На что? Изложенная позиция абсолютно верна и понятна, кроме одного - поставить зависимость на sed. Как можно поставить зависиомть на то, чего не существует отдельно? Если он идёт в составе busybox, то по приведённым Вами же причинам на busybox ставить зависимость не корректно, поскольку наличие в последнем sed не гарантированно. На что тогда надо ставить зависимость? На какой пакет, при условии, что пакета sed не существует ?


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#13 31-10-2007 05:45:20

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Извините, я наверное плохо объяснил или вы пропустили объяснение.
Если хотите поставить зависимость на sed, то у себя в пакете в debian/control пишете Depends: sed
То, что на таблетке нет реального пакета sed это неважно, есть виртуальный пакет sed, он провайдится реальным пакетом busybox
Как это работает можно почитать здесь: http://www.us.debian.org/doc/debian-pol … irtual_pkg   


Nokia 770/IT 2006, N810

Неактивен

 

#14 31-10-2007 06:04:38

gLobster  
TabletGeek
Откуда: Санкт-Петербург
На форуме с: 27-08-2007
Сообщений: 1240
Вебсайт
 

Re: А не поможет кто со сборкой пакетов

Ну это то я легко добавлю :-)


c приветом, gLobster
Nokia's E90|N810|6151 + TomTom 920T

Неактивен

 

#15 01-11-2007 02:30:17

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Я подразумеваю что полиси для дистрибутива вы так и не нашли и занимаетесь домыслами.
А не нашли вы ее, потому что ее нет в природе. А нет полиси - нет и понятия essential.
Можете посмотреть в changelog-и этих четырех пакетов и убедиться еще раз, что вы не правы, если есть такое желание.
Насчет того, что busybox стал essential - это не помогает и причины я уже тут объяснял.

На этом я пожалуй закончу, надеюсь те, кто читал этот тред сделают свои выводы. Все равно вас я уже не переубежу, да и неважно это по большому счету.


Nokia 770/IT 2006, N810

Неактивен

 

#16 24-01-2008 03:43:57

GET  
TabletGeek
На форуме с: 29-10-2007
Сообщений: 412
Отблагодарили :   12 
 

Re: А не поможет кто со сборкой пакетов

Default maemo installations don't have all the Debian essential packages. Therefore binary packages (e.g. ported from Debian) MUST list their direct dependencies also to Debian essential packages that are missing in maemo. These packages are:

* diff
* e2fsprogs
* ncurses-bin
* ncurses-base
* perl-base

TODO: perl-base is included into Chinook, will it remain also in later releases so that packages don't need to declare a dependency to something that is an essential in Debian and required by POSIX?  ncurses-bin was provided by BusyBox in releases before Chinook, will it come back?

However, there are also many binaries provided by Debian essentials which the maemo BusyBox binary doesn't provide although its package claims to be providing the packages containing those binaries. This includes things like the real bash shell, md5sum from coreutils, locate from findutils etc. Some of the busybox provided binaries might also miss options which their GNU variants on a normal Linux desktop provide (such as -iname in find or -o in uname)


Debian policy:

Essential is defined as the minimal set of functionality that must be available and usable on the system even when packages are in an unconfigured (but unpacked) state. This is needed to avoid unresolvable dependency loops on upgrade. If packages add unnecessary dependencies on packages in this set, the chances that there will be an unresolvable dependency loop caused by forcing these Essential packages to be configured first before they need to be is greatly increased. It also increases the chances that frontends will be unable to calculate an upgrade path, even if one exists.

Also, it's pretty unlikely that functionality from Essential shall ever be removed (which is one reason why care must be taken before adding to the Essential packages set), but packages have been removed from the Essential set when the functionality moved to a different package. So depending on these packages just in case they stop being essential does way more harm than good.

Неактивен

 

#17 24-01-2008 07:21:29

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

И? Что-то начали делать. От этого появилось понятие essential? maemo != Debian. Вы пытаетесь доказать обратное?


Nokia 770/IT 2006, N810

Неактивен

 

#18 28-01-2008 05:27:20

GET  
TabletGeek
На форуме с: 29-10-2007
Сообщений: 412
Отблагодарили :   12 
 

Re: А не поможет кто со сборкой пакетов

Не пытаюсь и никогда не пытался. Как раз наоборот. Там есть список основных пакетов, которые отсутствуют в Маемо. Зависимости от этих пакетов должны явно указываться. Всего таких пакетов 5. Зависимости на остальные essential пакеты указываться не должны. Мало того, это вредно, так как может приводить к проблемам. Маемо построено на идеологии и с применением системы пакетирования Debian. Соответственно, наследует практически все потенциальные проблемы, связанные с пакетированием, установкой и апгрейдом пакетов и системы. Во второй цитате сказано о том, почему НЕЛЬЗЯ указывать зависимости на essential пакеты в Дебиане. А в первой цитате сказано, что НУЖНО указывать зависимости НА НЕКОТОРЫЕ ПАКЕТЫ. Если делать так, как сказано, можно избежать множества проблем. А есть второй вариант: сидеть и кричать, что нет нормального полиси, потом делать кривые пакеты и ловить глюки. Каждому свое.

Неактивен

 

#19 28-01-2008 06:09:23

Wall  
TabletGeek
На форуме с: 28-08-2007
Сообщений: 1179
Отблагодарили :   75 
 

Re: А не поможет кто со сборкой пакетов

Вы предлагаете это сделать сейчас или 3 месяца назад, когда был задан вопрос? Для какой из трех платформ?
Откуда, кстати, эта информация? Я ее в открытых источниках не нашел. Вы предлагаете поверить вам на слово?


Nokia 770/IT 2006, N810

Неактивен

 

#20 30-01-2008 05:22:04

GET  
TabletGeek
На форуме с: 29-10-2007
Сообщений: 412
Отблагодарили :   12 
 

Re: А не поможет кто со сборкой пакетов

У меня не такой хороший английский, чтобы те цитаты из головы придумывать smile Верить или не верить - Ваше личное дело.

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002-2008 Rickard Andersson

Использованы иконки браузеров с форума forum.mozilla-russia.org

[ Generated in 0.932 seconds, 8 queries executed ]