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

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

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

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #75 : 10 Март 2017, 18:40:00 »
Это очень странно. Классическая юниксовая утилита. Им архивы на ленты еще писали. Может ключи какие нужны? Михаил этим способом наши модули создает, если бы были проблемы с правами скорее всего вылезло бы.
З.Ы. Вроде -p  в оба тара.
« Последнее редактирование: 10 Март 2017, 19:14:04 от betcher »

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8635
  • Репутация: +187/-2
  • Старый чайник
Re: pfsextract
« Ответ #76 : 10 Март 2017, 20:20:16 »
Это очень странно.
Ещё страннее то, что эта строка работает только в Richy, в PRA-retro и MagOS-lite одни ошибки.
Вроде -p  в оба тара.
Перепробовал различные варианты, ничего не помогает. :(
С другой стороны, если делать через копирование в aufs, то возникает проблема очистки changes$N. Просто удалить - aufs ломается, не удалять - какой же это extract. Получается - больше одного пакета за раз не извлечь.
Становится интересно.
Моноблок 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: pfsextract
« Ответ #77 : 13 Июль 2017, 11:43:01 »
http://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pfs/002-Nss_DEV-3.29_64-sf01.pfs
pfsextract 002-Nss_DEV-3.29_64-sf01.pfs молча ничего не делает (при этом selftest проходит)
Правлю 42 строку:
Код
    #if  [ "$sourcelist" ]      ;then
    if  [ "`echo $sourcelist| sed 's/^ //'`" ]  ;then
Говорил я что пробелы нам еще аукнктся...
Распаковывает, но внутри потеряны все симлинки

Вылечил заменой "||" на ";" (в 2х местах)
Код
touch "$SYSMNT/aufs$nn$F" 2>/dev/null || cp -a "$bundle/$F" "$SYSMNT/aufs${nn}$F"
в гит?
« Последнее редактирование: 13 Июль 2017, 14:17:58 от sfs »

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #78 : 13 Июль 2017, 18:11:29 »
Ок.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #79 : 09 Ноябрь 2017, 11:05:59 »
pfsextract -d 001_составной* - в итоге пропали симлинки /bin /sbin в корне
Если не составной - все ок

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #80 : 09 Ноябрь 2017, 15:11:43 »
pfsextract -d 001_составной* - в итоге пропали симлинки /bin /sbin в корне
Если не составной - все ок
Не смотрели почему так?

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #81 : 09 Ноябрь 2017, 15:23:23 »
Пока нет. Плотно занимаюсь выпуском pra-retro. Посмотрите если есть время

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #82 : 09 Ноябрь 2017, 16:39:15 »
Проявление проблемы :
Беру 070*pfs из pra-retro (там куча модулей внутри)
pfsextract (c -d или без - без разницы)
Получаю пропадание симлинков и кое-где вместо /usr/local/bin - /usr/local/bin/bin

Похоже проявляется когда где-то есть пустой /usr/local/bin

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #83 : 09 Ноябрь 2017, 16:42:37 »
Это со строки 50.

cat "$SYSMNT/aufs${nn}${PFSDIR}/mount/${m}/pfs.files" | while read F; do
    F=$(echo $F |sed s':\$::')
   if [ -d "$F" -o -f "$F" ] ; then
      touch "$SYSMNT/aufs$nn$F"
   else
      PWD=$(pwd)
      cd "$bundle" ; cp -a --parents "$F" "$SYSMNT/aufs${nn}/"
      cd $PWD
   fi
   done

Попробуйте такой цикл. Не могу нормально проверить у нас нет подходящих модулей, А ваш распаковывается с ошибками из-за того, что у нас путь к спискам файлов  другой.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #84 : 09 Ноябрь 2017, 16:47:11 »
Похоже проявляется когда где-то есть пустой /usr/local/bin
О. А если ссылка на пустой каталог она в какой список попадет?  pfs.dirs.empty или pfs.files? Может здесь собака зарыта.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #85 : 09 Ноябрь 2017, 16:59:54 »
   PWD=$(pwd)
      cd "$bundle" ; cp -a --parents "$F" "$SYSMNT/aufs${nn}/"
      cd $PWD

Тут перемудрил однако :) Мы ж в верхний слой ауфс копируем, можно тогда без --parent и смены текущего каталога. То есть как было
cp -a "$bundle/$F" "$SYSMNT/aufs${nn}$F"
« Последнее редактирование: 10 Ноябрь 2017, 09:02:08 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #86 : 10 Ноябрь 2017, 09:04:18 »
ваш распаковывается с ошибками из-за того, что у нас путь к спискам файлов  другой.
Разве это не в конфиге?
Плохо что есть несовместимость. Не выправить?
gitter выделил

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Re: pfsextract
« Ответ #87 : 10 Ноябрь 2017, 09:21:48 »
Да , можно на время проверок в конфиге заменить. Не подумал. Будет время еще посмотрю. Нужно какой то проблемный модуль сделать для селфтеста наверное.
Думаю сейчас как правильно обрабытывать ситуацию, когда в составном модуле в одном сабмодуле есть пустая папка, а в другом эта же папка содержит файлы. При экстракте первого модуля папка похоже пустой не будет :(,  Может пустые папки создавать? Вместо тача и cp. С правами только не знаю как быть.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #88 : 10 Ноябрь 2017, 10:25:37 »
Нужно какой то проблемный модуль сделать для селфтеста наверное.
Оптимально усложнить selftest пустой папкой, симлинком и т.п.
С правами только не знаю как быть.
Во второй версии Pfs я какой-то адский скрипт для правки прав писал
Мне надо чуть глубже вникнуть в код. Пока боюсь что-то советовать

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: pfsextract
« Ответ #89 : 10 Ноябрь 2017, 13:22:20 »
Нужно какой то проблемный модуль сделать для селфтеста наверное.
См. аатач. После pfsextract пустой /opt превращается в /opt/opt ; симлинк /bin пропадает