# Entorno Debian virtual

Puede crear un entorno Debian completo para usar dentro de Android a través del módulo adicional de FIRERPA, similar a la funcionalidad proporcionada por `Termux` o `androdeb`. En este entorno, puede usar apt para instalar software y compilar código. Del mismo modo, puede compilar y usar programas relacionados con bpf por su cuenta en este entorno; es un entorno de ejecución de Linux casi completo que se ejecuta en dispositivos Android.

```{hint}
Este entorno Debian solo incluye paquetes básicos, necesitará usar apt para instalar por su cuenta comandos comunes como git, python3, etc.
```

## Instalación del entorno

Puede encontrar `lamda-mod-debian-arm64-v8a.tar.gz` en la página de lanzamientos del proyecto (por favor, descargue el paquete de instalación correspondiente a la arquitectura de su máquina). Una vez completada la descarga, abra el escritorio remoto, arrastre y suelte el archivo descargado para subirlo al dispositivo (asumimos que no ha modificado el directorio de subida de archivos del escritorio remoto), y luego realice la siguiente operación de instalación. Esta operación de instalación no necesita repetirse.


```{hint}
Los archivos que suba a través del escritorio remoto se encontrarán por defecto en el directorio /data/usr/uploads.
```

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

Después de ejecutar el comando, la operación de instalación estará completa. A continuación, se explica cómo ingresar al sistema.

## Ingresar al entorno

Después de instalar el sistema de archivos del entorno correspondiente, podemos ejecutar un comando para ingresar al entorno Debian virtual. Sabemos que el paquete del entorno Debian acaba de ser instalado en `/data/usr/modules/debian`. Puede ejecutar el siguiente comando para ingresar a una terminal interactiva de Debian.

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

Si solo necesita ejecutar un comando una vez, por ejemplo, el comando `id`, puede usarlo de esta manera:

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

```{attention}
Solo se admite una instancia para ingresar al entorno virtual a la vez. Cuando ejecuta `debian /bin/bash` y lo mantiene en uso, si intenta ejecutar este comando en otra terminal, devolverá un error, a menos que salga del primer `debian /bin/bash` que inició.
```

## Uso avanzado

Presentamos un uso avanzado simple. Al completarlo, podrá ejecutar un servicio SSH en el entorno, o ejecutar scripts de Python en este entorno, y ya no habrá límite en el número de sesiones. Primero, ejecute el siguiente comando para ingresar al entorno virtual.

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

Ahora, debería estar dentro del entorno virtual. Siga con nosotros y ejecute los siguientes comandos, asegurándose de no omitir ninguno.

```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: # Cambiar la contraseña de root
root@localhost: echo root:lamda|chpasswd
root@localhost: # Salir del entorno debian
root@localhost: exit
```

Bien, ahora ha instalado correctamente SSH y Python. Es hora de ejecutar el comando para iniciar nuestro servidor SSH.

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

El comando anterior bloqueará su terminal actual. Para evitar este problema, también podemos usar las tareas programadas incorporadas para que este servicio SSH de ejemplo se inicie automáticamente con el servicio FIRERPA. A continuación, ejecute `crontab -e` y escriba la siguiente regla en él, luego reinicie FIRERPA o el dispositivo. Para obtener documentación sobre el uso de tareas programadas, también puede consultar el capítulo `Tareas programadas`.

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

Ahora, obtenga la dirección IP de este dispositivo, luego ejecute el siguiente comando en su computadora e ingrese la contraseña `lamda` para iniciar sesión.

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

Puede continuar desarrollando todo tipo de ideas ingeniosas para crear posibilidades ilimitadas. Es como un pequeño servidor Linux.