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

Автор Тема: Пишем Pet-manager  (Прочитано 34845 раз)

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

DdShurick

  • Гость
Пишем Pet-manager
« : 03 Май 2009, 22:54:07 »
 Я тоже за sfs, но "кесарю -кесарево, а слесарю слесарево". Оправдано использование sfs большого размера, с большими программами и кучей зависимостей. Если зависимости продублируются - не страшно. Я подключал одновременно два pup_301-*.sfs файла разных версий, и ничего, они просто дополнили друг друга. Но как быть с небольшими програмками, их может потребоваться много, а точек монтирования sfs только три. Собирать каждый раз sfs с необходимым набором программ? Это быстро надоест, а простому юзеру вообще не надо. Да и другие линуксы используют пакетную систему. Поэтому без пакетов не обойтись. Но пакеты лучше применять для программ без завмсммостей, или с уникальными зависимостями, которые другими программами заведомо использоваться не будут. А вот как быть с остальными? Получается, надо дорабатывать PETget в его второй части - удаление пакетов, но пока не получается.
Вот получить "свехий" список пакетов, или определить наличие пакета по имени, это запросто.
Когда я говорил об автоматике я имел ввиду каталог на ВСЕ пакеты доступные у нас.
Как вам понравится такая строка
curl -l http://puppyrus.org/pub/pet/
"Причёсанный" список, с выбором по имени.
curl -l http://puppyrus.org/pub/pet/ | grep $PACKNAME | grep "^<li><a href=" | sed -e 's/^<li><a href=//' | sed -e 's/<\/a><\/li>*/" \\/' | sed -e 's/> / "/' > /tmp/petlist
То же самое можно сделать и с другими репозиториями.

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Зависимости
« Ответ #1 : 03 Май 2009, 23:23:29 »
Цитата
Как вам понравится такая строка
curl -l http://puppyrus.org/pub/pet/
"Причёсанный" список, с выбором по имени.
curl -l http://puppyrus.org/pub/pet/ | grep $PACKNAME | grep "^<li><a href=" | sed -e 's/^<li><a href=//' | sed -e 's/<\/a><\/li>*/" \\/' | sed -e 's/> / "/' > /tmp/petlist
То же самое можно сделать и с другими репозиториями.
- а на результат можно поглядеть :)?
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

DdShurick

  • Гость
Re: Зависимости
« Ответ #2 : 03 Май 2009, 23:50:32 »
Команду в консоль и enter

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Зависимости
« Ответ #3 : 04 Май 2009, 00:09:25 »
Это уже что-то! Редактировать придётся но по-крайней мере задача стала легче :).
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

DdShurick

  • Гость
Re: Зависимости
« Ответ #4 : 04 Май 2009, 00:38:57 »
 Если брать список с ftp , то редактировать не придётся. Я проверял на Edu-Mandriva
Код
#!/bin/sh
PACKNAME=xneur
curl -l ftp://ftp.linuxcenter.ru/pub/Mandriva/EduMandriva/educontrib/2009.0/i586/ | grep $PACKNAME | sed -e 's/^/ftp:\/\/ftp.linuxcenter.ru\/pub\/Mandriva\/EduMandriva\/educontrib\/2009.0\/i586\//g' > /tmp/petlist
#wget -i `cat /tmp/petlist` &&
xmessage "Готово"
Если раскоментировать wget, сразу пойдёт закачка по списку.
Никак не получается графическое меню, куда выводится список найденных пакетов. По принципу, ткнул в выбранный, он и загрузился, причём с дальнейшей переработкой в pet и установкой. Пробую приспособить вот это, но когда ввожу список в виде переменной - не работает.
Код
#!/bin/sh
#Здесь будет диалог выбора имени
PACKNAME=xneur
#Диалог выбора сервера

Xdialog --title "СПИСОК СЕРВЕРОВ" \
--menu "Выберите, откуда загрузить пакет" 20 60 0 \
"1" "PuppyRus Linux" \
"2" "Edu Mandriva" \
"3" "Выбор 3" \
"4" "Выбор 4" \
"5" "Выбор 5" \
"6" "Выбор 6" \
"7" "Выбор 7" \
"8" "Выбор 8" \
 2> /tmp/file

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Зависимости
« Ответ #5 : 04 Май 2009, 23:58:30 »
Насчёт редактирования - я имел ввиду что придётся писать описания к прогам и либам как это и положено в packages.txt.
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

DdShurick

  • Гость
Re: Зависимости
« Ответ #6 : 05 Май 2009, 09:58:02 »
Насчёт редактирования - я имел ввиду что придётся писать описания к прогам и либам как это и положено в packages.txt.
Понятно. А я сразу подумал другое, отредактировать filelist, чтоб его нормально скушал wget -i.
Выкладываю заготовку, даватйе творить вместе, пока не научимся.
Наверно есть смысл открыть новый топик на тему "что нам стоит скрипт построить, напечатал и...." Ваше мнение, уважаемая публика и господа модераторы?

DdShurick

  • Гость
Re: Пишем Pet-manager
« Ответ #7 : 05 Май 2009, 15:56:35 »
 Удалось получить нормальный список наших pet-пакетов
Код
#!/bin/sh
curl -l http://puppyrus.org/pub/pet/ | grep "^<li><a href=" | sed -e 's/^<li><a href="//' | sed -e 's/\([A-Za-z0-9._-]*\).*/\1/' > /tmp/petlist
leafpad /tmp/petlist


DdShurick

  • Гость
Re: Пишем Pet-manager
« Ответ #8 : 06 Май 2009, 00:24:28 »
 Ну вот, мои труды за сегодня. Первая часть, выбор и закачка наших Pet-пакетов по свежайшему списку, сделана. Думаю, некоторые строки можно вставить в petget, а можно и не вставлять. Может у нас лучше получится ;) Пока закачка идёт в тот каталог, откуда запущен скрипт, но это дело поправимое.(wget -o /dir/file )
 Пробуйте. Ругайте.

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Пишем Pet-manager
« Ответ #9 : 07 Май 2009, 00:30:30 »
DdShurick, прикольно, мне понравилось! Но! Я остаюсь при своём мнении - нужно просто взяться за "грязную" работку и правильно пересобрать наши пакеты ;) :). Твоя наработка самое то для создания каталога но не думаю что стоит создавать "велосипед" то бишь новый пакетный менеджер (обидеть совершенно не хочу! Мне очень понравилась твоя разработка!).
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

DdShurick

  • Гость
Re: Пишем Pet-manager
« Ответ #10 : 07 Май 2009, 01:13:58 »
Идея! На страничке puppyrus.org/pub/pet/ поместить "скрытым текстом" список зависимостей для каждого пакета. Думаю, что html это позволит. curl считывает страничку полностью, до последней запятой, значит инфу о зависимостях можно выделить и направить в список закачек (wgetlist) и скачать одновремённо с пакетом (wget -i `cat wgetlist`). Чтобы не качать лишнего, wgetlist проверять на совпадение с уже установленными пакетами (uniq -d) и совпадения исключать.
 Или можно информацию о зависимостях включить в пакет как установочный скрипт. Тогда ещё проще, пакет установился, скрипт запустился, а в нём тот же wget i блаблабла.
 Какой вариант предпочтительнее?

DdShurick

  • Гость
Re: Пишем Pet-manager
« Ответ #11 : 07 Май 2009, 12:36:34 »
Разделил тему, отделил всё, относящееся к woof

Если по второму варианту. Добавляем в pet-пакет скрипт примерно такого содержания:
Код
#!/bin/sh
echo "lib-abc
lib-def
.......
lib-xyz" > /tmp/liblist
exec libwget
Скрипт libwget проверяет, установлены ли уже пакеты с этими библиотеками, и если нет, то создаёт ссылки на их закачивание. Ссылки записывабтся в /tmp/wgetlist, оттуда их берёт wget для закачки.
Код
#!/bin/sh
cat /root/.packages/alienpackages.txt | grep lib | sed -e 's/^"//' | sed -e 's/\([A-Za-z0-9._-]*\).*/\1/' > /tmp/onlist
cat /tmp/liblist /tmp/onlist /tmp/onlist | sort | uniq -u | sed -e 's/^/http:\/\/puppyrus.org\/pub\/lib\//'> /tmp/wgetlist
wget -i /tmp/wgetlist
Остаётся только передать загруженные пакеты на автоматическую установку.
« Последнее редактирование: 07 Май 2009, 12:39:25 от DdShurick »

Оффлайн returning2009

  • Старожил
  • ****
  • Сообщений: 386
  • Репутация: +19/-0
Re: Пишем Pet-manager
« Ответ #12 : 07 Май 2009, 20:31:08 »
ddshurick второй вариант проще,но потребует пересборки всех пакетов,первый вариант более трудоёмкий но мне кажется он самый приемлемый,так как можно будет включать в репо новые пакеты извне...ddshurick разработка отличная,мне жутко не нравится стандартный петменеджер,ремарочка прошу меня извинить конечно,при выборе пакета  не понял что он закачивается,думал не работает ,а он ан нет появился, :D :D

Оффлайн Fliker09

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1624
  • Репутация: +120/-1
  • Puppy 4ever!
Re: Пишем Pet-manager
« Ответ #13 : 07 Май 2009, 20:50:13 »
Ну зачем велосипед ???? Ведь озвучена идея которая уже заложена изначально в ПетМенеджере - пакет сам тянет свои зависимости. Что нам нужно сделать чтоб поправить наши дела? А вот что:

1. Создаём каталок по всем правилам (частично вопрос решён скриптами выше);
2. Пересобираем все наши пакеты с указанием зависимостей (ведь dir2pet спрашивает это!);
3. Радуемся результату - все пакеты из нашей репы есть в списке, пакеты после установки сами решают свои зависимости и мы избавляемся от одного из серьёзнейших недостатков паппируса.

Вот и всё ;). Всё крайне просто но трудоёмко. Но это стоит того :).
Я покинул проект так что прошу в случае чего писать мне на мыло!
Драйверы от разных систем НЕСОВМЕСТИМЫ!
http://wellminded.com/puppy/pupsearch.html -
 - поиск по http://www.murga-linux.com/puppy/
http://www.minus.com/ - для постоянного хранения файлов
http://rghost.ru/ - для временного хранения файлов
http://appdb.winehq.org/ - база данных WINE
http://jabberworld.info/ - всё о Jabber
http://convertfiles.com/ - конвертер файлов

DdShurick

  • Гость
Re: Пишем Pet-manager
« Ответ #14 : 07 Май 2009, 21:13:06 »
 Велосипед? А чтобы понять, на каких колёсах фирменный лимузин ездит. И, вдруг аэроплан получится?
 1. Каталог ~/.packages/livepackages4.txt ? Я правильно понял?
 2. Тут надо точно посмотреть, как этот список делается. Синтаксис точный нужен.
 3. А если будет впридачу велосипед - радуемся вдвойне.;D
Цитата
Но это стоит того :).
Раз есть стандарт на pet-пакеты - это неизбежность.