Сайт | Скачать | Видео | Wiki

Автор Тема: Содержимое пакетов и аддонов в текстовом файле  (Прочитано 31251 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
я так подумал, а не проще ли взять готовый скрипт и переделать под свои нужды

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Я вижу, что интерес к данной теме угас...
Что ж, это значит, что самое время мне поделиться с вами промежуточным результатом!

Что нового?
  • Во-первых, теперь оба моих скрипта объединены.
  • Во-вторых, они обзавелись собственным «лицом» на основе GtkDialog и urxvt.
  • В-третьих, значительно расширен функционал:
    • теперь список библиотек («паспорт» дистрибутива) можно составлять как на основе текущей системы (перегрузившись без использования сохранения), так и просто указав iso-файл дистрибутива.
    • Список файлов и зависимостей можно получить как для пакетов pet, так и для sfs.

С учетом вышесказанного, скрипт был назван ips-tools (ISO-PET-SFS-tools).

Скрипт тестировался на рабочей системе PuppyRus-Jeans-1.30 с подключенными модулями devx_301.sfs, gimp-2.5.0-ru_301.sfs и wine-etersoft-1.1.23_301.sfs.

Скрипт тестировался на файлах iso от вышеуказанного Jeans, acer-puppy-410-27.iso (не открылся из-за изменений в формате sfs) и iso других дистрибутивов (SliTaz, Kolibri) (результат очевиден — sfs в iso не найден).

Скрипт тестировался на пакетах PET (в основном, игрушки): pingus-0.6.0.pet, teeworlds-0.5.1.pet, xgalaga-2.0.34.pet, xpuyopuyo-0.9.8.pet, id3lib-3.8.3-i486.pet. Некоторые пакеты заставляют tar смачно ругаться при их распаковке, но, кажется, что ошибки не критичные.

Скрипт тестировался на вышеуказанных модулях SFS, а также с недокачанным модулем OOo-3.1.0_ru_infra.sfs размером 228 КБ :)

Во всех случаях критических ошибок (незаполненное поле, ошибки монтирования iso и sfs) об этом сообщается.

Почему это промежуточный результат?
  • Не хватает последней (или предпоследней?) логически завершающей части — тестирование пакетов на предмет совместимости с разными дистрибутивами и выдача рекомендаций по решению зависимостей.
  • Немного не «доточен» скрипт, иногда возникают некритичные ошибки при выполении команд tar и ldd -u
  • Не могу избавиться от лидирующей пустой строки в файлах с расширением ldd.

Я хочу, чтобы все заинтересованные разработчики опробовали этот скрипт и высказали свое мнение.
« Последнее редактирование: 28 Июль 2010, 16:11:21 от Lexeii »
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн RulllJazzz

  • Постоялец
  • ***
  • Сообщений: 172
  • Репутация: +16/-1
Не-не... не угас, просто, как ты правильно заметил ранее, нас чуть несколько более, чем 5-6 человек.  :) И из этих 5-6 не все в теме. А некоторые из тех, кто в теме, отсутствуют...

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
(пример прилагается).
Желательно сделать xls-файл - шаблон.

Оффлайн bit777

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1037
  • Репутация: +127/-0
Я хочу, чтобы все заинтересованные разработчики опробовали этот скрипт и высказали свое мнение.

выдает ошибку
Цитата
/root/ips-tools: line 405: [: -ne: unary operator expected
я заменил вот это
Код
if [ $Err -ne 0 ]
на вот это
Код
if [ "$Err" != "0" ]
ошибка исчезла.

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
bit777, спасибо за исправление. Я думаю, что это не единственная ошибка. При реорганизации кода убедился, что стоит ошибиться лишь в регистре буквы, как всё перестает работать.

Конкретно, эту ошибку я видел, но не смог исправить. В коде есть подобные условия, работающие нормально. Значит, функция в качестве кода возврата возвращает строку...

Из мелочей, надо все переменные закавычить, чтобы не было проблем с путями с пробелами... А по-крупному, нужно из файлов *.ldd убрать библиотеки, присутствующие в данном пакете, оставив только внешние, по отношению к пакету, библиотеки.

И еще, ведь зависимости не ограничиваются только библиотеками? Например, если пакету для работы нужен питон, это не будет видно в списке, выдаваемом скриптом?
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн RulllJazzz

  • Постоялец
  • ***
  • Сообщений: 172
  • Репутация: +16/-1
Цитата: Цитата с конференции [email]puppyrus@conference.jabber.ru[/email]
Кхм... Я всё-же не совсем понял, зачем тут эксель приплетать? Это я про тему в форуме.

Тут не совсем в exel дело. Просто надо БД простенькую, чтоб её можно было обработать другими средствами (скриптами, например). Для нужд сервера, например. Вариант с exel предложил Tarmo, может это первое, что пришло ему на ум, может самое простое, что пришло...

Exel выполнен в виде таблицы, его просто создать и отредактировать, поскольку он структурирован - в нём проще разобраться, возможно. что и обработать проще.


Вечером отпишусь Tarmo, он подробнее опишет - зачем ему именно exel... или чего конкретно он хотел сделать при помощи этого файла.

А так, если есть и другие средства, то я только "ЗА", лишние составляющие - они именно лишние. Можем что угодно другое выбрать вместо exel. Я за любой кипиш, кроме голодовки.  :)

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Мы говорим о разных вещах, но точки соприкосновения у нас, всё же, есть.

Просто надо БД простенькую, чтоб её можно было обработать другими средствами (скриптами, например). Для нужд сервера, например.

Я как программист-самоучка (а вернее, «недоучка») догадываюсь, что предлагает Максим. Кажется, среди множества дополнений PHP, было, позволяющее работать с таблицами Excell из скриптов PHP (хотя, PHP уже, кажется, не в моде). Это — серверное решение. При помощи скриптов PHP сервер сможет обрабатывать пакеты, находящиеся же на сервере. Минусов в этом подходе мало — возросшая нагрузка на сервер, необходимость загружать пакеты на сервер, некоторая закрытость.

Я предлагаю распределенное решение, когда каждый (от новичков до профи) желающий сможет включиться в работу. Пакеты можно загрузить с PUB PuppyRus, с Murga-Linux, с MediaFire, да мало ли, откуда еще? Можно использовать само-собранные пакеты (Lego, привет!) Вся «работа» заключается в перетягивании пакета мышкой в окно скрипта и отсылки созданных файлов, скажем, на форум. Это простейший случай.

Вот, как мне кажется, еще одно направление развития скрипта — генерация текстовых страниц с вики-разметкой, готовых для копи-паста в вику. А при наличии учетной записи можно заставить скрипт сразу отсылать в вику созданные страницы через FTPS.

Exel выполнен в виде таблицы, его просто создать и отредактировать, поскольку он структурирован - в нём проще разобраться, возможно. что и обработать проще.

Тестовые файлы всё же проще, чем файлы Excell, их можно обрабатывать как любимым текстовым редактором, так и шелл-скриптами (true Linux-way :) ). В общем, тут не о чем спорить, я и не начинаю. Каждый подход имеет право на жизнь. Но, важна не только идея, но и ее реализация.

А моя идея может просто загнуться без посторонней помощи. Даже самый навороченный скрипт ничего не значит без сопутствующих баз данных. Файлы, генерируемые скриптом — это базы данных. Во-первых, нужны базы по дистрибутивам. Это потом скрипт будет выдавать отчеты, подходит ли конкретный пакет к конкретному дистрибутиву, есть ли нерешенные зависимости и где найти пакеты для их решения. Во-вторых, нужны базы по пакетам. Как мне кажется, пакеты стоит разделить на основные (содержащие программу) и вспомогательные (содержащие библиотеки и прочие зависимости).

Вот, еще идея — при наличии прямых ссылок можно будет сгенерировать скрипт, который закачает и установит программу с ее зависимостями, и прикрепить его (скрипт) к вики-странице (вместе с другими файлами-базами).

Пишите мне! Это повышает мне мотивацию продолжать разработку.
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
Вот, уже поступают вопросы от желающих помочь. Поэтому, вот вам
Краткая инструкция для желающих помочь
  • Загрузите скрипт ips-tools, который я прикрепил к этому сообщению.
  • Поместите его в любую папку в вашем дистрибутиве Puppy или PuppyRus, например, в домашнюю папку /root.
  • Позвольте скрипту запускаться. Вы можете сделать это разными способами:
    • В ROX-Filer нажмите на файле скрипта правую кнопку, затем «Свойства» и выставьте галочки под надписью «Выполнять» (для владельца, группы и всех — на всякий случай).
    • Можно открыть терминал и скомандовать
Код
chmod +x /root/ips-tools
где /root/ips-tools —путь к файлу, куда вы его положили.
  • Запустите скрипт, нажав на него левой кнопкой мыши, либо из терминала
Код
/root/ips-tools
  • Откроется диалоговое окно. Состоит из двух частей:
    • Создать «паспорт» дистрибутива: Если у вас есть закачанные образы ISO дистрибутивов Puppy или PuppyRus, вы можете перетянуть файл ISO из окошка ROX-Filer`а в первое окно, либо найти файл, нажав кнопку со значком папки рядом с этим окном. После выбора ISO нажмите большую кнопку «Из образа ISO». Скрипт запустится, может работать довольно долго, в зависимости от мощности вашего железа, но обычно это не превышает двух минут. После ответа скрипта «Готово» вы можете найти созданный файл — паспорт дистрибутива — в папке /root/packs/distros. Пошлите этот файл мне, любым удобным для вас способом — прикрепив его к ответу в этой теме, либо по почте. Следите, чтобы не делать повторно работу, сделанную другими.
    • В том же разделе, чуть ниже, вы можете создать для себя «паспорт» вашей текущей системы. Для этого введите любое имя, чтобы идентифицировать ваш дистрибутив (например, «Джынц-Скайп») в поле «Имя» и нажмите рядом кнопку «Из текущей системы». Дальше всё так же, как описано выше. Заметьте, что этот режим создавался в основном, чтобы, перегрузившись в «голую систему» (без сохраненки), можно было сделать то, что сейчас делается из файла ISO. Но этот файлик может пригодиться вам, позже, когда мой скрипт будет доработан, для того, чтобы узнать, что нужно установить конкретно на вашу систему, чтобы «завести» пакет.
    • Вторая часть — Создать список файлов пакета. Перетяните в это окно или выберите (кнопкой с папкой) любой файл с расширением .pet или .sfs. Нажмите кнопку «Создать». В зависимости от размера и сложности пакета, мощности вашего железа, процесс может затянуться на несколько минут. После ответа скрипта «Готово» вы можете найти созданные файлы в папке /root/packs. Пошлите эти файлы мне, любым удобным для вас способом — прикрепив их к ответу в этой теме, либо по почте. Следите, чтобы не делать повторно работу, сделанную другими.

Вот, пока и всё. Как только скрипт расширит «свои навыки», последуют дополнения к этой инструкции.
« Последнее редактирование: 28 Июль 2010, 16:13:09 от Lexeii »
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Вот, как мне кажется, еще одно направление развития скрипта — генерация текстовых страниц с вики-разметкой, готовых для копи-паста в вику. А при наличии учетной записи можно заставить скрипт сразу отсылать в вику созданные страницы через FTPS.
Это я уже пробовал (странички HTML), без ручной правки ничего толкового не получается. А в ручной правке я увяз, и всё заглохпо.
Как мне кажется, пакеты стоит разделить на основные (содержащие программу) и вспомогательные (содержащие библиотеки и прочие зависимости).
Давно уже за это воюю. Собственно ..../pub/libs для этого и предназначен. Но нет стандартизации. Должно быть - одна библиотека - один пакет. Тогда по выводу ldd | grep 'not found' (после установки пакета петгетом находится в /tmp/missinglibs) можно будет автоматически догрузитьи установить недостающие зависимости.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Lexeii

  • Почетный участник
  • Постоялец
  • *
  • Сообщений: 147
  • Репутация: +24/-0
    • блог Lexeii
... без ручной правки ничего толкового не получается. А в ручной правке я увяз, и всё заглохпо.

А без ручной правки и не обойтись.Описания и скриншоты можно вставить только так. Самое главное — целенаправленно этим заниматься. Поставить себе задачу — каждый день (через день) править хотя бы пару статей, и не отступать. Вот, у меня в основном, время есть. Но как я его расходую? Да, не всегда рационально.

Что ж, посмотрим, что из этого выйдет. Можно назвать «Дубль два». Главное для меня — не отступать. И понимать, что это нужно.

Давно уже за это воюю. Собственно ..../pub/libs для этого и предназначен. Но нет стандартизации. Должно быть - одна библиотека - один пакет.

Что ж, RulllJazzz, автор многих новшеств на этом проекте, предложил стандартизацию. В скором времени займемся и этим. Главное, сначала продумать, чтобы не переделывать несколько раз. В общем, по этому пункту возражений нет.

Тогда по выводу ldd | grep 'not found' (после установки пакета петгетом находится в /tmp/missinglibs) можно будет автоматически догрузитьи установить недостающие зависимости.

Честно, это для меня такие дебри!.. В принципы работы PetGet`а я не вникал. Но, буду иметь это ввиду.
Linux is user friendly... It's just picky about who it  becomes friends with.

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
 Список имеющихся в наличии пакетов библиорек можно получить выполнив команду
Код
# curl http://puppyrus.org/pub/lib/ | cut -f 2 -d '"' | grep .pet
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн RulllJazzz

  • Постоялец
  • ***
  • Сообщений: 172
  • Репутация: +16/-1
Цитата
А без ручной правки и не обойтись.

Было бы что править, а остальное приложится. Вот у нас уже есть какой-никакой скрипт и структурная система библиотек и софта (пускай и в зачатке). Как говорит одна пословица: путь в 1000 шагов начинается с одного маленького шага.... А мы тут уже натоптали... ;)

Итак, у нас два элемента: скрипт Алексея и html-генератор DdShurick'а. Давайте решим, что теперь стоит сделать. "Склеить" разработки, отказаться от одного способа в пользу другого или...

Вектор предлагаю (даже настаиваю) направить на взаимодействие инструмента с wiki, т.к. это основная наша база знаний и туда мы сейчас переносим информацию. 
« Последнее редактирование: 28 Июль 2010, 22:14:17 от RulllJazzz »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Вектор предлагаю (даже настаиваю) направить на взаимодействие инструмента с wiki, т.к. это основная наша база знаний и туда мы сейчас переносим информацию. 
Ну, это просто. Выкинуть из скрипта html-шаблон, вставить wiki-шаблон. Я таким образом даже .doc генерировал.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн Tarmo

  • Почетный участник
  • Старожил
  • *
  • Сообщений: 360
  • Репутация: +46/-0
Господа, у вас очень увлекательная дискуссия, я надеюсь она принесёт нам плоды рано или поздно.

Меня интересует следующее: Excel о котором говорил Павел, это не Excel файл, а один из форматов, с которым МС Excel работает, а именно формат CSV. Что это за формат нет нужды рассказывать - википедию быстрее откроете. Он нужен мне для того, чтобы создать базу данных пакетов на сервере и поиск к ней, доступный для всех он-лайн. На самом деле, меня устроит любой структурированный документ, текстовый конечно =) Просто CSV это предельно простая структура, проще просто некуда. А Excel это просто удобная морда к этому формату.

Если кому не лень - можем даже свой XML формат ввести стандартный, если вам не лень.

Что касается сервера и нагрузки и PHP. Нет такой проблемы... железку мы уже закупили, канал есть. Как только ваш покорный слуга вернётся домой (начало Сентября) мы запустим свой сервер, который сможем научить даже варить кофе, не то что пакеты собирать и регистрировать в ЗАГСе. =))