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

Автор Тема: pfsextract  (Прочитано 28217 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #90 : 10 Ноябрь 2017, 13:59:04 »
Это со строки 50.
Помогает с
/opt превращается в /opt/opt
симлинк /bin становится /bin/bin

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #91 : 10 Ноябрь 2017, 14:08:31 »
Все чудесатей и чудесатей :)
Опишите что в тестовом модуле, до компа еще несколько часов не доберусь.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #92 : 10 Ноябрь 2017, 14:48:52 »
Опишите что в тестовом модуле
симлинк /bin и пустая папка /opt

Вроде починил - см. аттач. Провертье

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #93 : 10 Ноябрь 2017, 15:29:51 »
Похоже - пока решение только частного случая.
При перемещении opt bin из корня глубже - лажа

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #94 : 10 Ноябрь 2017, 15:53:36 »
Вроде починил. Права не теряются

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #95 : 11 Ноябрь 2017, 07:04:30 »
Посмотрел код только. Не проверял. Есть вопросы.

  touch "$SYSMNT/aufs$nn$F" 2>/dev/null ; cp -a "$bundle/$F" "$SYSMNT/aufs${nn}$F"
Здесь мне кажется в ";" всякий смысл теряется. Либо ||, либо сразу cp ...

cp -a "$bundle/$F" "$SYSMNT/aufs${nn}`dirname "$F"`"
Так хорошо. С доп вложенностью должно решить вопросы. У cp вроде ключик есть для подобных махинаций. Вроде -T.

 ntf -q  "$bundle/$F" "$SYSMNT/aufs${nn}`dirname "$F"`"
Что за "ntf"?  Даже не гуглится :)

             PWD=$(pwd)
       cp -a "$bundle/$F" "$SYSMNT/aufs${nn}`dirname "$F"`"
       cd $PWD
Тут ускользает смысл смены PWD. В моем примере это было из-за --parents  с ним cp...  пути от текущего каталога добавляет. А тут?

И еще, как идея может после копирования пустого каталога добавить rm -rf "$SYSMNT/aufs${nn}${F}/* вдруг в другом сабмодуле в этой дире что-то есть. А если здесь он указан как пустой, то должен при распаковке остаться пустым.

По поводу проверки [ ! -h "$bundle/$F" ], сперва тоже хотел так потом решил лучше [ -d -o -f ], то есть если файл или папка то touch, если ссылка или любая другая неведомая хрень то cp... Боюсь с разного рода пайпами touch тоже не прокатит.

В моем варианте есть такая строчка  F=$(echo $F |sed s':\$::'). Она удаляет слэши в конце. Если у нас в pfs.files диры всегда без слэшей то не нужна. Если со слэшами или не дай бог по разному, лучше оставить. cp /dir /dir и cp /dir/ /dir/  - результат дадут разный.
« Последнее редактирование: 11 Ноябрь 2017, 07:14:21 от betcher »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #96 : 11 Ноябрь 2017, 08:26:53 »
Посмотрел код только
Код грязный. Не оптимизирован даже на уровне идеи. Надо дорабатывать. Делал второпях
http://wiki.puppyrus.org/soft/notify#итогntf - отладочное. Забыл удалить
PWD - да
А если здесь он указан как пустой, то должен при распаковке остаться пустым.
недопонял... Можно подробнее?
Боюсь с разного рода пайпами touch тоже не прокатит.
По идее в модулях пайпов быть не должно
Пока только создавал примеры и решал проблемы
Если у нас в pfs.files диры всегда без слэшей то не нужна.
У меня везде без слэшей

Короче надо дорабатывать и срочно. Получается 3я версия нерабочая :(
Правда проблемы проявляются только в сложных случаях - типа корня системы
Я ее уже в исо ставил

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #97 : 11 Ноябрь 2017, 08:34:34 »
недопонял... Можно подробнее?
1й сабмодуль содержит пустую папку /var/www
2й сабмодуль содержит файл /var/www/index.html
Если при распаковке первого сабмодуля мы копируем папку /var/www то она окажется с вложенным файлом index.html, а должна быть пустой. Ну если я не туплю конечно где-то.
У меня везде без слэшей
Тогда не нужна строчка.


Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #98 : 11 Ноябрь 2017, 08:39:25 »
Ну если я не туплю конечно где-то.
Надо проверять.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #99 : 11 Ноябрь 2017, 19:01:11 »
http://files.magos-linux.ru/betcher/pfsextract
Смотрите. У меня вроде нормально. Относительно вашего изменения скорее косметические.  Если тач срабатывает, то косяка с лишними файлами нет. Так сделать чтоб не сработал тач у меня не получилось. Но костыль с || cp ..  оставил.
Вскрылась странность с mkpfs. Создавать модуль с пустыми папками без единого файла не хочет. Но тут не знаю стоит ли чинить даже :)

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #100 : 11 Ноябрь 2017, 20:09:01 »
У меня вроде нормально.
У меня тоже. Но на 6.pfs (лежит на tmpfs)
Код
+ cp -a /mnt/changes1/etc /mnt/changes1/usr 6/1
cp: невозможно создать обычный файл '6/1/etc/packages/mount/1/.wh.pfs.dirs.empty': Операция не позволена
Как бы попроще убрать...
find ... copy...

« Последнее редактирование: 11 Ноябрь 2017, 20:19:21 от sfs »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #101 : 11 Ноябрь 2017, 20:28:55 »
Забрал 6.pfs распаковал unsquashfs, перенес списки пакетов в /var/lib, запаковал mksquashfs, разобрал pfsextract -d. Ошибок не нашел. Где искать?

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #102 : 11 Ноябрь 2017, 20:39:02 »
Где искать?
6.pfs (лежит на tmpfs)

Создавать модуль с пустыми папками без единого файла не хочет
и не надо  ;)

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #103 : 11 Ноябрь 2017, 20:58:00 »
6.pfs (лежит на tmpfs)
Я так и сделал. В /tmp распаковал.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #104 : 13 Ноябрь 2017, 09:30:53 »
Странно. Может дело в расположении списка файлов...