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

Автор Тема: trim - для чистки кэшей, выделения локалей и пр.  (Прочитано 5886 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Добавил --mkscript, с этим ключем в текущей папке создается скрипт-заготовка такого содержания:
Скрипт создания модулей из пакетов под каждый ПМ необходим. Соответственно , сборка модуля поверх базы : chroot2pfs ... этот скрипт
Для чистки кэшей, выделения локалей и пр. - оптимально 1 скрипт на все случаи жизни
У меня он есть : trim.  Как раз сейчас доделываю. Могу выложить

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Ага, покажите. Я думаю что-то универсальное для внутреннего шаблона сделать можно. А дальше да, универсальный для дистра, и даже свой под каждый пакет. В итоге в каждом модуле все равно свой скрипт, но в большинстве случаев отличаться будут только списком пакетов.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Если у Вас есть ПРА - там trim есть. Или выложить сюда?
Код плохой. Но идея будет понятна. Прямо сейчас улучшаю. Кроме того надо учесть арчевые симлинки /bin sbin
универсальный для дистра, и даже свой под каждый пакет.
В идеале все-таки 1 скрипт на все
Под каждый пакет точно не надо
Под дистр - надо пробовать. Думаю тоже получтися . Местами добавить к шаблону /usr/lib : /lib . В аоче просто сработает 2 раза - не критично

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Будут хитрозадые пакеты где нужны дополнительные действия. Например когда пакет при установке пользователей создает.
В арче такие действия производятся скриптом install из пакета
Т.е. pacman сам нужное в чруте сделает
Trim просто текстом в форуме покажите. Ну или когда готово будет.
Ок. Уже почти

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Не идеально, но работает
Такое бы проще было через rsync , но для универсальности хочется без него

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
В арче такие действия производятся скриптом install из пакета
Т.е. pacman сам нужное в чруте сделает
У rpm есть и преинсталл и постинсталл и еще вроде преанинсталл и постанинсталл. Но проблема в том, что мне не нужны в модуле /etc/passwd, /etc/chadows  /etc/groups и  т.д Потому, что усли у меня таких модулей больше одного, то правильные файлы будут только для того модуля который сверху. Нужно чтоб эти действия производились при загрузке системы и при подключении модуля. У магос такой механизм есть, но сделать автоматом из постинсталл скрипта скрипт для модуля не получится. Только руками.
Вот для таких модулей и придется руками сочинять --script, но конечно на основе универсального шаблона.

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Не идеально, но работает
Такое бы проще было через rsync , но для универсальности хочется без него
Редактировать сообщение
* trim.gz (2.94 КБ - загружено 1 раз.)
Фигасе !!!! Я расчитывал строк на 10 ;) Это для встроенного срипта перебор конечно. Давайте определяться с тем, что должно быть в скрипте:
- команды для установки пакетов в основных дистрах, закомментаренные
- файлы папки, которые однозначно удалять
- файлы папки, которые может быть полезно удалить пишем в закомментареном виде.
?- пример создания скрипта в /etc/rc.d
?- чего еще?


Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
 Вторая попытка написать про хуки пакмана применительно к trim. Не знаю, есть ли резон использовать хуки в PRA?
https://wiki.archlinux.org/index.php/Pacman#Hooks
https://jlk.fjfi.cvut.cz/arch/manpages/man/alpm-hooks.5
Код
[Trigger]
Operation = Install
Operation = Upgrade
Type = File
Target = *

[Action]
When = PostTransaction
Exec = /usr/local/bin/trim

upd. sudo pacman -S mousepad  с trim.hook
Цитата
live@pra-roll ~ % sudo pacman -S mousepad
разрешение зависимостей...
проверка конфликтов...

Пакеты (2) gtksourceview3-3.24.9-2  mousepad-0.4.1-1

Будет установлено:  8,63 MiB

:: Приступить к установке? [Y/n]
(2/2) проверка ключей                                  [############################] 100%
(2/2) проверка целостности пакета                      [############################] 100%
(2/2) загрузка файлов пакетов                          [############################] 100%
(2/2) проверка конфликтов файлов                       [############################] 100%
(2/2) проверка доступного места                        [############################] 100%
:: Обработка изменений пакета...
(1/2) установка gtksourceview3                         [############################] 100%
(2/2) установка mousepad                               [############################] 100%
предупреждение: права доступа различаются у каталога /usr/share/applications/
файловая система: 775  пакет: 755
:: Запуск post-transaction hooks...
(1/4) Compiling GSettings XML schema files...
(2/4) Arming ConditionNeedsUpdate...
(3/4) trim.hook
Usage /usr/local/bin/trim [-g|-d] dir
Удаление doc, gtk-doc, info, licenses, man и пр.
в указанном каталоге,
отделение dev составляющей (нужна только разработчикам)
Домашние директории изменены не будут.
-g - GUI
-d - выделить DEV (нужное для только компиляции)
(4/4) Updating the desktop file MIME type cache...
« Последнее редактирование: 20 Ноябрь 2018, 23:02:23 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Я расчитывал строк на 10
Если выкинуть экстремальное выделение DEV - столько и будет
В некоторых дистрах типа деб пакеты без dev
Просто не юзать -d
-l и -m - по вкусу. Я для базовых модулей буду делать
Залить в гит?
- файлы папки, которые однозначно удалять
Да. кэши и т.п
Вроде это там есть в полном объеме
файлы папки, которые может быть полезно удалить пишем в закомментареном виде.
Там уже много таких строк
?- пример создания скрипта в /etc/rc.d
что туда должно попасть?
Не во всех дистрах есть
есть ли резон использовать хуки в PRA?
С trim -  вряд ли
Доки и.пр. вырезаются - см. п.6
Остальное актуально вырезать только при упаковке в модуль

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Залить в гит?
Посмотрите скрипт внутри chroo2pfs, надо его заменить на урезанный трим.
Цитата: betcher от Вчера в 13:50:03

    ?- пример создания скрипта в /etc/rc.d

что туда должно попасть?
Думаю во всех дистрах есть такое место, что если туда положить скрипт он запустится при старте. Например костылики для запуска старых инит скриптов с системд.
Вот пример создания такого скрипта и предлагаю сделать, пусть он пользователя создает, например www-data как у апача.
Но тут не настаиваю, не уверен надо ли. Чисто как пример и конечно закомментаренный.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Посмотрите скрипт внутри chroo2pfs, надо его заменить на урезанный трим.
Т.е. выкинуть все по -d -l -m ?
Думаю во всех дистрах есть такое место, что если туда положить скрипт он запустится при старте.
/etc/profile.d - но запуск от юзера
от рута - не знаю стандартных
Можно сделать systemd юнит с /etc/rc.local - у меня есть
А к нему прикрутить /etc/rc.d/ - вроде, у меня сделано тоже
Вот пример создания такого скрипта и предлагаю сделать, пусть он пользователя создает, например www-data как у апача.
Но тут не настаиваю, не уверен надо ли
Для этого примера точно не надо
По итогу у меня в модуль попадет /etc/passwd
А если я 2 модуля с /etc/passwd подключу...?
Это в базе должно быть или в /start.sh - у меня запускается при подключении модуля - так правильнее

Оффлайн betcher

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 3019
  • Репутация: +35/-0
    • MagOS linux
Т.е. выкинуть все по -d -l -m ?
Для встроенного скрпта да. А в системе у вас целый трим будет.
Можно сделать systemd юнит с /etc/rc.local - у меня есть
А к нему прикрутить /etc/rc.d/ - вроде, у меня сделано тоже
Цитата: betcher от Сегодня в 10:05:50

    Вот пример создания такого скрипта и предлагаю сделать, пусть он пользователя создает, например www-data как у апача.
    Но тут не настаиваю, не уверен надо ли

Для этого примера точно не надо
По итогу у меня в модуль попадет /etc/passwd
А если я 2 модуля с /etc/passwd подключу...?
Это в базе должно быть или в /start.sh - у меня запускается при подключении модуля - так правильнее
У нас start.sh и то что в rc.d это один и тот же скрипт. При старте его запускает системд, при подключении модуля activate. Надо, кстати, в runpfsload-magos дописать, онако забыл.
Но расположение не принципиально, главное пример того что создается, делается исполняемым и т.д.

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
Re: PRA-roll. FULL
« Ответ #12 : 26 Ноябрь 2018, 16:25:04 »
только для тех у кого regex  - образ мышления
А я думал, что trim написан с использованием шаблонов. :)
Цитата
X "`find $r/usr/share/kbd/consolefonts   -type f -name "*" -print |egrep -v  'Cyr_a8x|LatArCyrHeb|cyr-sun|sun12x'`"
X "`find $r/usr/share/i18n/charmaps  -type f -name "*" -print |egrep -v '/CP1250|/CP1251|/CP1252|ISO-8859-1.gz|KOI-8|KOI8-|UTF-8.gz'`"
X "`find $r/usr/share/X11/locale/* -maxdepth 0 -type d -name "*" -print |egrep -v '\/locale\/C$|en_US.UTF-8|ru_RU.UTF-8'`"

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33965
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Уже переделан на менее экстремальное вырезание.

То что у меня получилось для chroot2pfs.
Код
# cat trim-chroot 
#!/bin/sh
#181123 sfs
HLP(){
echo "Usage $0 chrootdir"
exit
}

[ "$1" ] && r="$1" || HLP
X() {
[ "$1" ] && rm -R ${1} 2>/dev/null
}

#X $r/var/lib/chroot2pfs
X $r/var/log
X $r/run

X $r/etc/udev/hwdb.bin
X $r/etc/ld.so.cache
X $r/var/cache/ldconfig/aux-cache
X $r/var/cache/fontconfig
X $r/var/cache/ldconfig
X $r/var/lib/pacman/sync
X $r/var/cache/pacman/pkg
X $r/usr/local/share/applications/mimeinfo.cache
X $r/usr/share/applications/mimeinfo.cache

Не очень поняьно как быть с mime...
Переформировывается, если в пакете есть /usr/share/mime/packages/* по итогу всех нижних слоев..

С passwd и пр. - аналогично. Некоторые пакеты добавляют юзеров

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5319
  • Репутация: +139/-1
 Кстати, если в 001-pra-roll-1806-sf08 запустить trim, то база 'похудеет' на 50mb. Недоработка. :)
Цитата
#!/bin/sh
#180821 sfs 64
l=ru
[ "$1" = "-d" ] && dev=1 && shift
m="Удаление doc, gtk-doc, info, licenses, man и пр.
в указанном каталоге,
отделение dev составляющей (нужна только разработчикам)
Домашние директории изменены не будут."
« Последнее редактирование: 26 Ноябрь 2018, 17:44:37 от krasnyh »