# Виртуальное окружение Debian

С помощью дополнительного модуля FIRERPA вы можете создать полноценное окружение Debian для использования внутри Android, аналогичное тому, что предоставляют `Termux` или `androdeb`. В этом окружении вы можете использовать apt для установки программного обеспечения и компиляции кода. Также вы можете самостоятельно компилировать и использовать программы, связанные с bpf. Это практически полноценная среда выполнения Linux, работающая на устройстве Android.

```{hint}
Это окружение Debian содержит только базовые пакеты. Вам потребуется самостоятельно установить часто используемые команды, такие как git, python3, с помощью apt.
```

## Установка окружения

На странице релизов проекта вы можете найти `lamda-mod-debian-arm64-v8a.tar.gz` (пожалуйста, загрузите установочный пакет, соответствующий архитектуре вашего устройства). После завершения загрузки откройте удаленный рабочий стол и перетащите загруженный файл для загрузки на устройство (мы предполагаем, что вы не изменяли каталог для загрузки файлов на удаленном рабочем столе). Затем выполните следующую операцию установки. Эту операцию не нужно повторять.


```{hint}
Файлы, загруженные через удаленный рабочий стол, по умолчанию находятся в каталоге /data/usr/uploads.
```

```bash
tar -C /data/usr/modules -xzf /data/usr/uploads/lamda-mod-debian-arm64-v8a.tar.gz
```

После выполнения команды установка будет завершена. Ниже описано, как войти в систему.

## Вход в окружение

После установки файловой системы окружения мы можем выполнить команду для входа в виртуальное окружение Debian. Мы знаем, что пакет окружения Debian только что был установлен в `/data/usr/modules/debian`. Вы можете выполнить следующую команду, чтобы войти в интерактивный терминал Debian.

```bash
debian /bin/bash
```

Если вам нужно выполнить только одну команду, например, команду `id`, вы можете использовать следующий синтаксис:

```bash
debian /bin/bash -c id
```

```{attention}
Одновременно поддерживается вход в виртуальное окружение только для одного экземпляра. Если вы выполнили `debian /bin/bash` и сессия остается активной, при попытке выполнить эту же команду в другом терминале будет возвращена ошибка, до тех пор, пока вы не выйдете из первой запущенной сессии `debian /bin/bash`.
```

## Продвинутое использование

Мы рассмотрим простой пример продвинутого использования. После его выполнения вы сможете запустить SSH-сервер в окружении или выполнять в нем скрипты Python, и ограничение на количество сессий будет снято. Сначала выполните следующую команду для входа в виртуальное окружение.

```bash
debian /bin/bash
```

Теперь вы должны находиться в виртуальном окружении. Следуйте за нами и выполните следующие команды, не пропуская ни одной.

```bash
root@localhost: apt update
root@localhost: apt install -y openssh-server procps python3 python3-pip python3-dev
root@localhost: echo 'PermitRootLogin yes' >>/etc/ssh/sshd_config
root@localhost: echo 'StrictModes no' >>/etc/ssh/sshd_config
root@localhost: mkdir -p /run/sshd
root@localhost: # Изменить пароль root
root@localhost: echo root:lamda|chpasswd
root@localhost: # Выйти из окружения debian
root@localhost: exit
```

Отлично, теперь вы успешно установили SSH и Python. Пришло время выполнить команду для запуска нашего SSH-сервера.

```bash
debian /usr/sbin/sshd -D -e
```

Приведенная выше команда заблокирует ваш текущий терминал. Чтобы избежать этой проблемы, мы можем использовать встроенный планировщик задач, чтобы этот пример SSH-сервиса запускался автоматически вместе со службой FIRERPA. Далее выполните `crontab -e`, добавьте в него следующее правило и перезапустите FIRERPA или устройство. Документацию по использованию планировщика задач вы также можете найти в главе `Планировщик задач`.

```bash
@reboot debian /usr/sbin/sshd -D -e >/data/usr/sshd.log 2>&1
```

Теперь узнайте IP-адрес этого устройства, а затем на своем компьютере выполните следующую команду и введите пароль `lamda` для входа.

```bash
ssh root@192.168.x.x
```

Вы можете продолжать развивать различные идеи и реализовывать безграничные возможности — это ваш маленький Linux-сервер.