Форум проекта PuppyRus Linux

Общие вопросы => Вопросы от новичков => Тема начата: TT от 27 Ноябрь 2020, 00:05:28

Название: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: TT от 27 Ноябрь 2020, 00:05:28
Собственно, листинг libgdbm*.squash не содержит /var/lib/dpkg/info/libgdbm3:* (почему бы скрипт не переименовывал бы сразу его в *.sfs?)

# find -O3 / -type f -name 'libgdbm*' 2>/dev/null
/usr/lib/i386-linux-gnu/libgdbm_compat.so.3.0.0
/usr/lib/i386-linux-gnu/libgdbm.so.3.0.0
/var/lib/dpkg/info/libgdbm3:i386.md5sums
/var/lib/dpkg/info/libgdbm3:i386.shlibs
/var/lib/dpkg/info/libgdbm3:i386.symbols
/var/lib/dpkg/info/libgdbm3:i386.triggers
/var/lib/dpkg/info/libgdbm3:i386.list

выше - картина после sudo apt install libgdbm3.
Из-за этого, при построении других кросс-зависимых пакетов, возможно подтягиваются зависимости, которые уже есть в других sfs'ах, но не показаны для:
apt-cache depends имя_пакета # --installed.
Однако, repo2pfs делает всё корректно.
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: TT от 27 Ноябрь 2020, 00:21:02
следующий (-ие) пример(ы), repo2sfs неправильно работает с номером версии:

root@DDR01:optional# repo2sfs

Program/package name: [asunder] libperl5.24=5.24.1-3+deb9u5
List of extra packages: [lame]
Continue? [y/n] y
Run an apt-get update? [y/n] n
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  libperl5.24
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 76 пакетов не обновлено.
Необходимо скачать 3 149 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 15,8 MB.
ВНИМАНИЕ: Следующие пакеты невозможно аутентифицировать!
  libperl5.24
Предупреждение об аутентификации не принято в внимание.
Пол:1 http://security.debian.org/debian-security stretch/updates/main i386 libperl5.24 i386 5.24.1-3+deb9u5 [3 149 kB]
Получено 3 149 kБ за 0с (4 539 kБ/c)         
Указан режим «только скачивание», и скачивание завершено

(здесь обрывается)

root@DDR01:optional# dpkg -l libperl5.24
dpkg-query: шаблону libperl5.24 не соответствует ни один пакет


root@DDR01:optional# dpkg -l | grep perl
ii  liblocale-gettext-perl        1.07-3+b1                      i386         module using libc functions for internationalization in Perl
ii  perl-base                     5.24.1-3+deb9u5                i386         minimal Perl system
ii  perl-modules-5.24             5.24.1-3+deb9u5                all          Core Perl modules
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: TT от 27 Ноябрь 2020, 01:03:03
с локальным репозиторием не работает

как создать:

#/root/ddr01/optional
# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
#/etc/apt/sources.list
# deb [trusted=yes] file:/root/ddr01/optional ./

root@DDR01:optional# repo2sfs

Program/package name: [asunder] foo
List of extra packages: [lame]
Continue? [y/n] y
Run an apt-get update? [y/n] n
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
  foo
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 78 пакетов не обновлено.
Необходимо скачать 0 B/86,6 kB архивов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
Пол:1 file:/root/ddr01/optional ./ foo 0.0.1 [86,6 kB]
Указан режим «только скачивание», и скачивание завершено

(здесь обрывается)
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: sfs от 27 Ноябрь 2020, 09:20:22
Что собираете?

вики (https://wiki.puppyrus.org/puppyrus/ddr#%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8)
Цитата
В 001*pfs включены списки пакетов, выделенных в отдельные модули : apt ffmpeg gtk3 nss Т.е. apt будет считать, что эти пакеты установлены, а Вам нужно подключить соответвствующие модули
С apt не добиться полноценной модульности, не сломав его базу
Поэтому по замыслу все модули собираются без правки /var/lib/dpkg/info только поверх 001
Т.е. собрали модуль1. Потом модуль2. В модуле2 будут повторы пакетов из модуль1. Если хотите это оптимизировать - собирайте 2 проги в один модуль или руками
Альтернатива - ставить apt-ом в сохраненку
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: TT от 27 Ноябрь 2020, 15:48:23
Сделал локальный репозиторий на apache2 на http:// вместо file:// - обошёл первую проблему:
https://askubuntu.com/a/176546#How to create a local APT repository?

Неправильная работа с номером версии, определённо, баг. Надо править скрипт(-ы) repo2*.

Я позже заметил, что для решения последней проблемы мне нужно было использовать repo2pfs (который пакует инфу dpkg) вместо repo2sfs, попутал буковки, ну да ладно. Не совсем понимаю, как repo2* должен правильно автоматически прописывать зависимости, какой-нибудь наглядный пошаговый алгоритм с примером (-ам) был бы в пользу.
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: sfs от 30 Ноябрь 2020, 10:32:31
Неправильная работа с номером версии, определённо, баг.
Где баг? можно подробнее...
Не совсем понимаю, как repo2* должен правильно автоматически прописывать зависимости,
Зависимости пакетов - никак не учитываются , т.е. .
модули собираются без правки /var/lib/dpkg/info только поверх 001
Зависимости модулей прописываются руками (скрипт спрашивает)
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: TT от 30 Ноябрь 2020, 14:11:07
Цитата
Неправильная работа с номером версии, определённо, баг.
Где баг? можно подробнее...
Не совсем понимаю, как repo2* должен правильно автоматически прописывать зависимости,
Вроде во втором посте, нет? Т.е. при указании пакета с номером версии (понадобилось, чтобы реанимировать DEVX'овский perl не из security update) repo2* его не собирает; равно как не собирает его, если это локальный репозиторий file:// вместо http:// (первый пост).
Цитата
Зависимости пакетов - никак не учитываются , т.е. .
модули собираются без правки /var/lib/dpkg/info только поверх 001
Зависимости модулей прописываются руками (скрипт спрашивает)
Вот здесь алгоритм repo2* не совсем ясен/что/как делать правильно: если зависимости уже были ранее установлены apt'ом, то вроде repo2* не перепаковывает их в главный pfs/sfs; а если не были установлены, то запаковывает их туда, и к чему тогда (и как) (и зачем!) прописывать зависимости?

P.S. Не по теме, но в логе загрузки ядра есть сообщение /usr/bin/perl не найден, не смущает ли?
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: sfs от 30 Ноябрь 2020, 14:31:49
Надо repo2pfs
Код
repo2pfs  libperl5.24
не получилось?
Зависимости в модулях.pfs в моих дистрах прописываются добавлепнием в корень модуля start.sh
А в нем, например, для mpv*.pfs прописано sfs-get-dep ffmpeg
В итоге один ffmpeg*pfs используется с mpv и прочими модулями, что экономит место

Вы торопитесь. Пообвыкнитесь на 1м уровне (https://wiki.puppyrus.org/puppyrus/pr3#%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_frugal_%D1%81_%D0%BF%D0%BC_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D1%8B%D0%BC_%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D0%BE%D0%BC)
Почитайте вики. Совсем все объяснять будет тяжело
Название: Re: DDR01. repo2sfs не упаковывает /var/lib/dpkg/info/$имя_пакета:*
Отправлено: sfs от 30 Ноябрь 2020, 14:34:01
в логе загрузки ядра есть сообщение /usr/bin/perl не найден, не смущает ли?
Что изменяется в лучшую сторому при его наличии?
Вообще ddr и lfd весьма хирургически порезаны
По замыслу - они для запуска портированных модулей , собранных под арчем
Если надо компилить и вообще глубоко - прар2008