История изменений
Исправление vitruss, (текущая версия) :
zram потому что места меньше в оперативке занимает, экспериментальным путём установлено что меньше чем в 20 Гб места хромиум не собирается, а у меня установлено всего 16 Гб, при использовании сжатия в zram, говорят, сжимается в среднем в 3 раза, что даёт приемлемый расход ram на этом объёме. На диске не собираю, чтобы не тратить ресурс бедного ссд на 64 Гб постоянными перезаписями.
Вот что надо для монтирования zram:
-
/etc/modules-load.d/zram.conf:
zram
-
/etc/moduprobe.d/zram.conf:
options zram num_devices=1
-
/etc/udev/rules.d/99-zram.rules:
KERNEL=="zram0", ATTR{disksize}="32G" RUN="/usr/bin/mkfs.ext2 /dev/zram0", TAG+="systemd"
- /etc/fstab:
/dev/zram0 /var/lib/aurbuild ext2 rw,defaults,noauto,x-systemd.automount 0 0
Юнит и таймер для рута:
- /etc/systemd/system/aursync-prepare.service
[Unit]
Description=Prepare container for aur sync
[Service]
Type=simple
ExecStartPre=rm -rf /var/lib/aurbuild/x86_64
ExecStart=/usr/bin/aur chroot --create -D /var/lib/aurbuild/x86_64
- /etc/systemd/system/aursync-prepare.timer
[Unit]
Description=Prepare container for aur sync every day at 0:30.
[Timer]
OnCalendar=*-*-* 0:30:00
Unit=aursync-prepare.service
[Install]
WantedBy=timers.target
Юнит и таймер от пользователя, от имени которого собираются пакеты:
- ~/.config/systemd/user/aursync.service:
[Unit]
Description=Run "aur sync -uc"
[Service]
Type=simple
ExecStart=/usr/bin/aur sync -uc --noview
- ~/.config/systemd/user/aursync.timer
[Unit]
Description=Run "aur sync -u" every day at 1 a.m.
[Timer]
OnCalendar=*-*-* 1:00:00
Unit=aursync.service
[Install]
WantedBy=timers.target
Дополнительно:
Должен быть настроенный локальный репозиторий, прописанный на этом компе типа такого:
- /etc/pacman.conf
...
[custom]
SigLevel = Optional TrustAll
Server = file:///srv/custom-packages
- /etc/systemd/system/darkhttpd.service
[Unit]
Description=Darkhttpd Webserver
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/darkhttpd /srv/custom-packages --uid http --gid http --chroot --mimetypes /etc/conf.d/mimetypes --port 8080
ProtectSystem=full
ProtectHome=on
PrivateDevices=on
NoNewPrivileges=on
[Install]
WantedBy=multi-user.target
- Правила для запуска некоторых команд без пароля от рута для пользователя, от имени которого собираются пакеты (в тесте используется
user
, я не уверен что они все необходимы) /etc/sudoers.d/aurutils:
user ALL = (root) NOPASSWD: SETENV: /usr/bin/makechrootpkg
user ALL = (root) NOPASSWD: /usr/bin/mkarchroot *
user ALL = (root) NOPASSWD: /usr/bin/arch-nspawn *
user ALL = (root) NOPASSWD: /usr/bin/pacman
- Все юниты и таймеры приведённые выше должны быть включены (enable).
Вроде ничего не упустил, если что-то будет не так – я всегда готов помочь, чем могу.
Исходная версия vitruss, :
zram потому что места меньше в оперативке занимает, экспериментальным путём установлено что меньше чем в 20 Гб места хромиум не собирается, а у меня установлено всего 16 Гб, при использовании сжатия в zram, говорят, сжимается в среднем в 3 раза, что даёт приемлемый расход ram на этом объёме. На диске не собираю, чтобы не тратить ресурс бедного ссд на 64 Гб постоянными перезаписями.
Вот что надо для монтирования zram:
-
/etc/modules-load.d/zram.conf:
zram
-
/etc/moduprobe.d/zram.conf:
options zram num_devices=1
-
/etc/udev/rules.d/99-zram.rules:
KERNEL=="zram0", ATTR{disksize}="32G" RUN="/usr/bin/mkfs.ext2 /dev/zram0", TAG+="systemd"
- /etc/fstab:
/dev/zram0 /var/lib/aurbuild ext2 rw,defaults,noauto,x-systemd.automount 0 0
Юнит и таймер для рута:
- /etc/systemd/system/aursync-prepare.service
[Unit]
Description=Prepare container for aur sync
[Service]
Type=simple
ExecStartPre=rm -rf /var/lib/aurbuild/x86_64
ExecStart=/usr/bin/aur chroot --create -D /var/lib/aurbuild/x86_64
- /etc/systemd/system/aursync-prepare.timer
[Unit]
Description=Prepare container for aur sync every day at 0:30.
[Timer]
OnCalendar=*-*-* 0:30:00
Unit=aursync-prepare.service
[Install]
WantedBy=timers.target
Юнит и таймер от пользователя, от имени которого собираются пакеты:
- ~/.config/systemd/user/aursync.service:
[Unit]
Description=Run "aur sync -uc"
[Service]
Type=simple
ExecStart=/usr/bin/aur sync -uc --noview
- ~/.config/systemd/user/aursync.timer
[Unit]
Description=Run "aur sync -u" every day at 1 a.m.
[Timer]
OnCalendar=*-*-* 1:00:00
Unit=aursync.service
[Install]
WantedBy=timers.target
Дополнительно:
Должен быть настроенный локальный репозиторий, прописанный на этом компе типа такого:
- /etc/pacman.conf
...
[custom]
SigLevel = Optional TrustAll
Server = file:///srv/custom-packages
- /etc/systemd/system/darkhttpd.service
[Unit]
Description=Darkhttpd Webserver
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/darkhttpd /srv/custom-packages --uid http --gid http --chroot --mimetypes /etc/conf.d/mimetypes --port 8080
ProtectSystem=full
ProtectHome=on
PrivateDevices=on
NoNewPrivileges=on
[Install]
WantedBy=multi-user.target
- Правила для запуска некоторых команд без пароля от рута для пользователя, от имени которого собираются пакеты (я не уверен что необходимы они все) /etc/sudoers.d/aurutils:
user ALL = (root) NOPASSWD: SETENV: /usr/bin/makechrootpkg
user ALL = (root) NOPASSWD: /usr/bin/mkarchroot *
user ALL = (root) NOPASSWD: /usr/bin/arch-nspawn *
user ALL = (root) NOPASSWD: /usr/bin/pacman
- Все юниты и таймеры приведённые выше должны быть включены (enable).
Вроде ничего не упустил, если что-то будет не так – я всегда готов помочь, чем могу.