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

Автор Тема: PFS-utils на github  (Прочитано 91517 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: PFS-utils на github
« Ответ #270 : 11 Январь 2017, 17:50:54 »
Сложновато. В этом случае pfsload папка еще лучше

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #271 : 11 Январь 2017, 18:01:18 »
Ну да. Можно и лоад, тут не принципиально.  Идея в том, что есть список файдов, а значит модуль можно пересобрать.
А pfsload папка, это тоже гуд.
« Последнее редактирование: 11 Январь 2017, 18:04:37 от betcher »

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #272 : 12 Январь 2017, 12:34:58 »
Разобрался наконец с руганью на losetup-FULL. Оказалось все дело в различиях кода на гитхабе и в pra. В гит для поиска losetup есть скриптик losetupb, он с ошибкой, если что должно быть так:
if [ -x "$(which losetup-FULL)" ]; then
  losetup-FULL $@
elif   [ -x "$(which losetup)" ] ; then
   losetup $@ || exit 1
fi 2>/dev/null
exit $?
А в скриптах из пра этого кода нет, используется losetup-FULL, который в свою очередь ссылка на /sbin/losetup. Могли бы и раньше подсказать, а то врубиться не мог то ругается то нет :)  Договоритесь с Zay  и сведите  уже код в одно место.

disktype на баше весь повторять нет смысла, похоже достаточно такого:

Код
#!/bin/bash
ftest=$(file $1)
if $(echo $ftest |egrep -qi cannot.*open) ; then
echo $ftest
exit 1

elif $(echo $ftest |grep -qi directory) ;then
echo "$1 Is a directory"
exit

elif $(echo $ftest |grep -qi squashfs) ;then
echo "$1 Linux squashfs"
exit

elif $(echo $ftest |egrep -qi block.*special) ;then
echo block device
echo $(blkid -s TYPE $1)
exit

elif $(echo $ftest |egrep -qi 9660) ; then
echo $ftest
exit
fi

echo "unknown disk type"
exit 2


« Последнее редактирование: 12 Январь 2017, 15:27:01 от sfs »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: PFS-utils на github
« Ответ #273 : 12 Январь 2017, 13:10:19 »
losetup-FULL
Утилита losetup используется для проверки наличия свободных loop. Вывод losetup-FULL -f и busybox losetup -f абсолютно одинаков и не требует никаких костылей. "Зачем делать сложным то, что проще простого?" (c).
Моноблок 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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: PFS-utils на github
« Ответ #274 : 12 Январь 2017, 13:29:22 »
В гит для поиска losetup есть скриптик losetupb, он с ошибкой
Я вас предупреждал, что все не из ПРА не тестировалось и выложил текущую версию
Договоритесь с Zay  и сведите  уже код в одно место.
А смысл? Zay по факту слился. Последние правки на гите вносил вслепую. Нигде кроме ПРА не используется
Заливайте что я выложил на свой гитхаб - кому надо подключится к теме
"Зачем делать сложным то, что проще простого?" (c).
Да - не создавайте себе искусственных проблем. Это я про согаласования
« Последнее редактирование: 12 Январь 2017, 13:34:52 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: PFS-utils на github
« Ответ #275 : 12 Январь 2017, 13:41:05 »
disktype на баше весь повторять нет смысла
Золотые слова. Возьмите бинарник и не парьтесь.
Начните с того, что портируйте с минимумом правок, поюзайте - что дальше делать практика подскажет
На этом этапе не надо улучшений по типу "лучшее враг хорошего"
Сейчас Вы поменяете - начнет глючить - и не понятно так было или стало
Если переписывать - тогда полностью.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #276 : 12 Январь 2017, 14:18:41 »
pfsrebuild, Дарю :)
Собирает правда только отдельные pfs не контейнеры. Ну и проверять конечно нужно еще.
Код
#!/bin/sh
#rebuild loaded or installed pfs, by betcher, GPL v3.
#Version 0.1
#Modify 12.01.2017

if [ ! "$1" ]; then
  echo "Usage: $(basename "$0") PACKAGE" >&2; exit 1
fi

fileslist="/etc/packages/install/$1/pfs.files"
[ -f $fileslist ] || fileslist="/etc/packages/mount/$1/pfs.files"
dirsempty=$(echo $fileslist | sed 's/pfs.files/pfs.dirs.empty/')

if [ -f "${fileslist}" ]; then
  buildir=build_$1
  # если удалять сборочный каталог в конце скрипта, то этот кусок не нужен
  if [ -d $buildir ] ; then
  echo "Directory \"$buildir\" already exist"
  echo "Please enter \"d\" to clear this dir, \"e\" to exit, or press \"enter\" to continue"
  read ans
if [ "$ans" == "d" ]; then
rm -rf $buildir
elif [ "$ans" == "e" ] ; then
exit
fi
  fi
  #########################################################################
  mkdir -p $buildir
 
  listfiles="$(cat "$fileslist" | sed -e 's:^[^/]*::' -e 's:[\]:\\\\:g')"
  echo "${listfiles}" | while read file; do
  mkdir -p ${buildir}$(dirname $file)
  cp "${file}" ${buildir}${file}; done
  if [ -f $dirsempty ] ; then
listdirs="$(cat "$dirsempty" | sed -e 's:^[^/]*::' -e 's:[\]:\\\\:g')"
echo "${listdirs}" | while read file; do
mkdir -p ${buildir}${file}
done
  fi
  mkpfs --name $1 --out-file ${1}.pfs ${buildir}
  #rm -rf buildir
  else
  echo "Package \"$1\" is not installed!" >&2; exit 1
fi

exit 0


Начните с того, что портируйте с минимумом правок, поюзайте - что дальше делать практика подскажет
На этом этапе не надо улучшений по типу "лучшее враг хорошего"
Сейчас Вы поменяете - начнет глючить - и не понятно так было или стало
Если переписывать - тогда полностью
Вы предлагаете делать форк, а я наоборот хочу этого избежать. Если disktype прям так необходим в этом месте, чего я лично не вижу, можно закостылить как losetupb было сделано. Есть бинарник дергаем его, нет бинарника обходимся без него.
А смысл? Zay по факту слился. Последние правки на гите вносил вслепую.

Хотелось бы услышать мнение Zay по этому поводу. Как я понимаю pfs-utils большей частью его код.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: PFS-utils на github
« Ответ #277 : 12 Январь 2017, 15:18:12 »
pfsrebuild,
Не очень понимаю практическое применение...
Из системы выдергивать стремно. Одинаковые файлы могут быть в разных модулях
Вы предлагаете делать форк
Как раз наоборот. В моем понимании это форк
Если disktype прям так необходим в этом месте, чего я лично не вижу, можно закостылить как losetupb было сделано.
Есть бинарник дергаем его, нет бинарника обходимся без него.
Не хотелось бы плодить костыли
Уж переделывать - так переделывать. Все равно путей 2:
1. Работает не трогай. Как сейчас. Минимальные правки
2. Переделывать не оглядываясь не на кого и не заморачиваясь форк- не форк. соблюсти только совместимость с имеющимися модулями (чтобы не перестали разбираться)
« Последнее редактирование: 12 Январь 2017, 15:20:06 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
    • PuppyRus-A
Re: PFS-utils на github
« Ответ #278 : 12 Январь 2017, 15:26:32 »
Pfsrebuild я не понял чего делает?
Я понял - собирает (выдергивает) в запущенной системе модуль по его названию

Pro - в свете возобновления интереса к пфс - у тебя к  интернационализации интерес остался?

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re: PFS-utils на github
« Ответ #279 : 12 Январь 2017, 15:31:34 »
Я все перевёл и выложил.

Смысл в запущенной системе выдергивать модуль?  Они и так модулями лежат.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #280 : 12 Январь 2017, 15:33:03 »
Я понял - собирает (выдергивает) в запущенной системе модуль по его названию
В общем да, по списку файлов.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #281 : 12 Январь 2017, 15:37:40 »
Смысл в запущенной системе выдергивать модуль?  Они и так модулями лежат.
Юзкейс такой.
pfsload mymodule.pfs (или pfsinstall без разницы)
Файлы из модуля попадают в систему. Далее правим какие то из этих файлов. Скрипты там, конфиги. Тут же проверяем без лишних телодвижений со сборкой модуля. Снова правим, снова проверяем. А когда все работает как надо.
pfsrebuild mymodule
на выходе получаем модуль собранный по списку файлов и уже со всеми правками.
« Последнее редактирование: 12 Январь 2017, 16:59:21 от betcher »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: PFS-utils на github
« Ответ #282 : 12 Январь 2017, 15:41:32 »
Снова правим, снова проверяем.
Это только через отмонтирование.
Моноблок 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

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #283 : 12 Январь 2017, 16:12:07 »
Это только через отмонтирование.
В том и идея, что без отмонтирования.

Оффлайн betcher

  • Ветеран
  • *****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: PFS-utils на github
« Ответ #284 : 12 Январь 2017, 17:11:31 »
Посмотрите на гитхабе pfs-utils бранч develop. Это то как я хотел бы чтоб все выглядело. Проверял пока только то что в pfs-utils-cli и то не все.Предлагаю взять за отправную точку и коммитить туда. Тот вариант, что сейчас в pra совсем не обязательно заменять сразу. Замените когда все будет готово.