З тих пір, як я почав використовувати kerberos.io, треба було вирішувати, як його встановити на Raspberry Pi 3, який працює під керуванням Arch Linux ARM. Спершу намагався перепаковувати офіційні пакунки .deb для pacman: PKGCONFIG. Це деякий час спрацьовувало до якогось чергового поновлення. Потім спробував збирати самотужки. Виявилося, що це непросто, багато функціональності або працює ненадійно, або довелося взагалі вимкнути. Нарешті, з’явилося ще один розв’язок: запустити справжній raspbian з допомогою systemd-nspawn, щоб можна було встановлювати офіційні збірки з допомогою посібника.

  • Тож спершу я встановив Raspbian у /var/lib/machines з допомогою (якби ж то був aconfmgr для Debian!).

  • Щоб його запустити з командного рядка:
    cd /var/lib/machines && systemd-nspawn --bind /dev/video0 --bind /dev/vchiq -bD raspbian`
    
  • Трішки довелося постаратися, щоб налаштувати систему, встановити kerberos.io, libraspberrypi-bin і інші залежності (оновлено: створив скрипт для встановлення raspbian у chroot автоматизовано: prepare-raspbian-kerberosio.sh).

  • Потім створив конфігураційні і сервісні файли, щоб raspbian запускався автоматично разом із основною системою: зміна.

  • Примітка: гостьова система використовує мережу батьківської системи для простоти і взаємодії з tinc.

  • Примітка: необхідно чітко зазначити, до яких із відображених файлів пристроїв надати доступ.

  • Нарешті, вже можна було прибрати kerberos.io з основної системи.

Як ілюстрація, ось стан контейнера:

[sakhnik@alarmpi3 ~]$ machinectl status raspbian
raspbian(d2c01930a9414d59a6e15d4f40770785)
           Since: Mon 2018-06-25 09:35:34 EEST; 22h ago
          Leader: 27119 (systemd)
         Service: systemd-nspawn; class container
            Root: /var/lib/machines/raspbian
              OS: Raspbian GNU/Linux 9 (stretch)
            Unit: systemd-nspawn@raspbian.service
                  ├─  956 /usr/bin/kerberosio
                  ├─27117 /usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth -U --sett>
                  ├─27119 /lib/systemd/systemd
                  ├─27133 /lib/systemd/systemd-journald
                  ├─27174 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
                  ├─27175 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
                  ├─27178 /usr/sbin/cron -f
                  ├─27180 /lib/systemd/systemd-logind
                  ├─27182 /usr/sbin/rsyslogd -n
                  ├─27190 /sbin/agetty --noclear --keep-baud console 115200,38400,9600 vt220
                  ├─27192 php-fpm: pool www
                  ├─27193 php-fpm: pool www
                  ├─27194 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
                  ├─27195 nginx: worker process
                  ├─27196 nginx: worker process
                  ├─27197 nginx: worker process
                  ├─27198 nginx: worker process
                  └─27561 php-fpm: pool www