# 虛擬 Debian 環境

您可以透過 FIRERPA 附加模組建立一個可在 Android 內使用的完整 Debian 環境，類似 `Termux` 或 `androdeb` 提供的功能。您可以在此環境中使用 apt 安裝軟體以及進行程式碼編譯，同樣地，您也可以在此環境中自行編譯及使用 bpf 相關程式。它是一個近乎完整、執行於 Android 裝置中的 Linux 執行環境。

```{hint}
此 Debian 環境僅包含基礎的軟體套件，您需要使用 apt 自行安裝 git、python3 等常用指令。
```

## 安裝環境

您可以在專案的發布頁面中找到 `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 伺服器。