Logo

dev-resources.site

for different kinds of informations.

让安卓手机不再吃灰:在安卓手机上搭建 Rust 开发环境

Published at
1/3/2025
Categories
termux
rust
debian
ssh
Author
AXUM中文博客
Categories
4 categories in total
termux
open
rust
open
debian
open
ssh
open
让安卓手机不再吃灰:在安卓手机上搭建 Rust 开发环境

如果你还在把旧手机拿去换不锈钢脸盆,那真是暴殄天物。何不将它变成包括 Rust 在内的开发环境呢。

安装 termux

  • 打开 termux 的官网,点击【DOWNLOADF-DROID】下载 APK 文件。
  • 运行下载好的 APK 文件进行安装。

启用 SSH 服务

  • 由于要兼容未进行 root 的手机,所以 termux 的 SSH 服务监听的是 8022 端口,而不是标准的 22 端口。(小端口监听需要 root 权限)。
  • 同样的原因,termux 的用户名并不是 root,而是每次安装 termux 自动生成的、形如 u0_axxx(其中,xxx是数字)的用户。

安装 SSH

# 更新 termux 软件源
pkg update && \
# 安装 openssh 提供的 SSH 服务端和客户端
pkg install openssh

修改当前用户的密码

passwd

输入以上命令后,按提示设置密码

查看当前用户

whoami

将会显示形如 u0_axxx 的用户名,把它记录下来。

举例:u0_a117

查看当前IP

你可以通过手机的 WLAN 查看当前局域网 IP,也可以通过 ifconfig 命令来查看:

ifconfig | greap inte

举例:192.168.0.13

运行 SSH 服务

通过 sshd 命令启动运行 SSH 服务:

sshd

连接该 SSH 服务

现在,局域网内的其它设备,比如电脑等,可以通过 SSH 连接该手机了:

ssh -P 8022 [email protected]
  • u0_a117 改为你实际的用户名
  • 192.168.0.13 改为你实际的IP

安装 debian

termux 自带的是一个非完整的 Linux 环境,好在我们可以在不需要对手机进行 root 的情况下,通过 proot-distro 安装完整的 Linux 环境,比如 debian 系统。

# 更新 termux 软件源
pkg update && \
# 安装 proot-distro
pkg install proot-distro && \
# 使用 proot-distro 安装 debian
proot-distro install debian

安装好之后,便可以登录 debian:

proot-distro login debian

proot-distro login 是以 root 身份登录 debian,所以享有完全的权限。首先要做的是给 debian 安装一些必要的工具:

# 更新软件源
apt update -y && \
# 更新软件包
apt upgrade -y && \
# 安装需要的工具
apt install -y wget curl unzip tmux build-essential cmake pkg-config libssl-dev libtool git

安装 Rust 环境

参照官网,我们可以在 debian 里一键安装 Rust 环境:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Code Server

安装

在 Code Server 的release页面,找到最新版本的压缩包下载。

# 版本
CODE_SERVER_VERSION='4.96.2'
# 下载
wget "https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/code-server-${CODE_SERVER_VERSION}-linux-arm64.tar.gz" && \
# 确保 ~/.local 存在
mkdir -p ~/.local && \
# 解压到 ~/.local
tar zxvf code-server-${CODE_SERVER_VERSION}-linux-arm64.tar.gz -C ~/.local
# 重命名
mv ~/.local/code-server-${CODE_SERVER_VERSION}-linux-arm64 ~/.local/code-server

注意:

  • 必须选择 arm64 架构,因为手机 CPU 就是这个架构
  • 本例使用的是 .tar.gz 压缩包,你也可以选择 .deb

运行

我们使用 tmux 来保证断开 SSH 之后 Code Server 依然在运行。首先创建 tmux 会话:

# 创建一个 tmux 会话
tmux new -s code-server

运行 Code Server:

~/.local/code-server/bin/code-server

修改配置

配置文件位于 ~/.config/code-server/config.yaml。根据你的需要进行更改

  • bind-addr:监听地址。为了让局域网能访问到,需要将监听的IP改为 0.0.0.0。比如:0.0.0.0:58080
  • auth:鉴权方式。由于我们是部署在局域网,给自己用的,完全没必要使用任何鉴权方式,所以将其改为 none
  • cert:证书路径。我们将在下一篇进行讲解。

修改配置之后,需要重新启动 Code Server。

启用 SSL

由于 Code Server 是以 Web 形式运行,而很多功能需要 HTTPS,比如复制/粘贴、预览 Markdown、执行 REST Client 等。我们将在下一篇博文讨论如何在局域网签发 SSL 证书。

自问自答

为什么不用 VSCODE 的远程 SSH 连接,而用 Code Server?

因为 termux 并不是完整的 Linux 环境,而 VSCODE 远程 SSH 连接需要在服务端安装对应的软件,termux 并不满足它的条件,所以只能退而求之,使用 VSCODE 的 Web 版本──Code Server。

你也可以尝试在 proot-distro 安装的 Linux 里安装 SSH 服务,它应该满足 VSCODE 的要求,但需要配置的地方可能很多,本文不作尝试。

相较于云服务器,使用手机有什么优势?

手机基本上都是 4G RAM 起步,内部存储更是 64G 起步,普通的 VPS 根本没法和它比。试想一下,购买一台相同配置的 VPS 每年需要花费多少钱?

另外,手机都是通过局域网连接,而包括 VPS 在内的云服务器都是公网连接,甚至是跨洲绕全球的连接,网络响应不是一个级别的。

Featured ones: