Начиная с версии WiFiman Desktop 1.1.3, для пользователей Linux, Ubiquiti предоставляет пакет только для Debian Bookworm (12). Он несовместим с предстоящим выпуском Debian Trixie (13), а также с версиями Ubuntu после 22.xx из-за зависимостей от старых пакетов. Мне удалось запустить часть Teleport VPN из WiFiman Desktop в chroot-окружении. Я использую schroot для автоматизации процесса включения chroot-окружения. Моя основная система работает под управлением Debian Trixie, но я предполагаю, что это должно работать и на других системах на основе Debian (и, возможно, с некоторыми корректировками, даже на не-Debian системах).
```
sudo apt install schroot debootstrapsudo debootstrap bookworm /srv/chroot/bookworm
```
Создайте файл `/etc/schroot/chroot.d/bookworm.conf` со следующим содержимым, заменив `USER` на ваше имя пользователя:
```
[bookworm]
description=Debian Bookworm chroot с WiFiman Desktop
directory=/srv/chroot/bookworm
users=USER
type=directory
preserve-environment=true
profile=desktop
#setup.services=wifiman-desktopd
```
Отредактируйте `/etc/schroot/desktop/fstab`. Закомментируйте строку, монтирующую `/var/lib/dbus`. Добавьте строку: `/run/resolvconf /run/resolvconf none rw,bind 0 0`.
Загрузите пакет deb для WiFiman Desktop в `/srv/chroot/bookworm/wifiman.deb`. (К сожалению, здесь запрещено указывать URL-адреса.)
```
sudo schroot -c bookworm apt install /wifiman.deb xdg-utils libcanberra-gtk3-module dbus-x11 gvfs-lib
sudo rm /srv/chroot/bookworm/wifiman.deb
```
Создайте файл `/srv/chroot/bookworm/etc/init.d/wifiman-desktopd` со следующим содержимым:
```
#!/bin/sh
DAEMON=/usr/lib/wi-fiman-desktop/wifiman-desktopd
NAME=wi-fiman-desktopd
PIDFILE=/var/run/$NAME.pid
DESC="WiFiman Desktop Daemon"
. /lib/lsb/init-functions
start() {
log_daemon_msg "Запуск $DESC" "$NAME"
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --make-pidfile --background --exec "$DAEMON"
log_end_msg $?
}
stop() {
log_daemon_msg "Остановка $DESC" "$NAME"
start-stop-daemon --stop --quiet --pidfile "$PIDFILE" --remove-pidfile --retry=TERM/30/KILL/5
log_end_msg $?
}
status() {
status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Использование: $0 {start|stop|restart|status}"
exit 1
;;
esac
```
```
sudo chmod +x /srv/chroot/bookworm/etc/init.d/wifiman-desktopd
```
Отредактируйте `/etc/schroot/chroot.d/bookworm.conf` и удалите символ `#` перед опцией `setup.services`.
Теперь, чтобы запустить WiFiman Desktop:
```
xhost +local: # Разрешить текущей сессии Xorg/XWayland принимать неавторизованные локальные подключения
schroot -c bookworm wi-fiman-desktop
```
Альтернативно, вместо ослабления контроля доступа списка с помощью `xhost`, можно сделать файл Xauthority доступным из chroot-окружения. Один из способов — добавить точку монтирования для `/run/user/UID` (где UID — идентификатор вашего пользователя) в `/etc/schroot/desktop/fstab, однако, это вызвало некоторые нежелательные побочные эффекты в моем случае.
Обратите внимание: функция "Сканирование" в приложении WiFiman Desktop, похоже, не работает в этой среде.
```
sudo apt install schroot debootstrapsudo debootstrap bookworm /srv/chroot/bookworm
```
Создайте файл `/etc/schroot/chroot.d/bookworm.conf` со следующим содержимым, заменив `USER` на ваше имя пользователя:
```
[bookworm]
description=Debian Bookworm chroot с WiFiman Desktop
directory=/srv/chroot/bookworm
users=USER
type=directory
preserve-environment=true
profile=desktop
#setup.services=wifiman-desktopd
```
Отредактируйте `/etc/schroot/desktop/fstab`. Закомментируйте строку, монтирующую `/var/lib/dbus`. Добавьте строку: `/run/resolvconf /run/resolvconf none rw,bind 0 0`.
Загрузите пакет deb для WiFiman Desktop в `/srv/chroot/bookworm/wifiman.deb`. (К сожалению, здесь запрещено указывать URL-адреса.)
```
sudo schroot -c bookworm apt install /wifiman.deb xdg-utils libcanberra-gtk3-module dbus-x11 gvfs-lib
sudo rm /srv/chroot/bookworm/wifiman.deb
```
Создайте файл `/srv/chroot/bookworm/etc/init.d/wifiman-desktopd` со следующим содержимым:
```
#!/bin/sh
DAEMON=/usr/lib/wi-fiman-desktop/wifiman-desktopd
NAME=wi-fiman-desktopd
PIDFILE=/var/run/$NAME.pid
DESC="WiFiman Desktop Daemon"
. /lib/lsb/init-functions
start() {
log_daemon_msg "Запуск $DESC" "$NAME"
start-stop-daemon --start --quiet --pidfile "$PIDFILE" --make-pidfile --background --exec "$DAEMON"
log_end_msg $?
}
stop() {
log_daemon_msg "Остановка $DESC" "$NAME"
start-stop-daemon --stop --quiet --pidfile "$PIDFILE" --remove-pidfile --retry=TERM/30/KILL/5
log_end_msg $?
}
status() {
status_of_proc -p "$PIDFILE" "$DAEMON" "$NAME"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Использование: $0 {start|stop|restart|status}"
exit 1
;;
esac
```
```
sudo chmod +x /srv/chroot/bookworm/etc/init.d/wifiman-desktopd
```
Отредактируйте `/etc/schroot/chroot.d/bookworm.conf` и удалите символ `#` перед опцией `setup.services`.
Теперь, чтобы запустить WiFiman Desktop:
```
xhost +local: # Разрешить текущей сессии Xorg/XWayland принимать неавторизованные локальные подключения
schroot -c bookworm wi-fiman-desktop
```
Альтернативно, вместо ослабления контроля доступа списка с помощью `xhost`, можно сделать файл Xauthority доступным из chroot-окружения. Один из способов — добавить точку монтирования для `/run/user/UID` (где UID — идентификатор вашего пользователя) в `/etc/schroot/desktop/fstab, однако, это вызвало некоторые нежелательные побочные эффекты в моем случае.
Обратите внимание: функция "Сканирование" в приложении WiFiman Desktop, похоже, не работает в этой среде.
