【挑战】手机Termux搭建React Native开发环境

2023-05-16

在这里插入图片描述
我这里选用alpine来做开发环境,主要因为它体积小巧,方便移植和分享。如果只是我自己使用的话,我更喜欢使用ubuntu或者archlinux。alpine做开发环境,可能会遇到的问题就是中文语言环境的问题了吧。等遇到这样的问题在想办法解决吧!

Termux

Termux是一个Android终端模拟器和Linux环境应用程序,可直接运行而无root安装。自动安装了最小的基本系统-使用APT软件包管理器可以使用其他软件包。

安全的。 使用OpenSSH的ssh客户端访问远程服务器。Termux在漂亮的开源解决方案中将标准软件包与精确的终端仿真相结合。

功能打包。 在Bash,fish或Zsh和nano,Emacs或Vim之间选择。通过您的短信收件箱中的Grep。使用curl访问API端点,并使用rsync将联系人列表的备份存储在远程服务器上。

可定制的。 通过Debian和Ubuntu GNU / Linux已知的APT软件包管理系统安装所需的软件包。为什么不从安装Git并同步您的点文件开始呢?

可探索的。 您是否曾经坐在公交车上,想知道tar到底接受了哪些参数?Termux中提供的软件包与Mac和Linux上的软件包相同-在手机上安装手册页,并在一个会话中阅读手册,而在另一个会话中进行实验。

附带电池。 您能想象比读书线驱动的Python控制台更强大,更优雅的袖珍计算器吗?最新版本的Perl,Python,Ruby和Node.js均可用。

准备扩大规模。 连接蓝牙键盘,并在需要时将设备连接到外部显示器-Termux支持键盘快捷键并具有完整的鼠标支持。

可修补的。 通过使用Clang编译C文件进行开发,并使用CMake和pkg-config构建您自己的项目。如果您遇到困难并需要调试,则GDB和strace均可用。

Termux下载

Termux官网:
https://termux.com/

官网推荐下载地址:
https://f-droid.org/packages/com.termux/

该版本需要 Android 7.0 及以上版本。我使用华为P9和坚果R1都可以正常使用。

SSH远程管理

为了操作方法,我建议使用电脑ssh连接手机中的 termux来操作,连接方法见:
安装openssh

apt update
apt install openssh

启动sshd服务

sshd

这样手机上就安装好了 ssh并启动了服务。

在这里插入图片描述

设置自动启动ssh服务

echo "sshd" >> ~/.bashrc

手机查看当前用户名

whoami

我的显示结果为:

u0_a100

在这里插入图片描述

注意这个用户名每个人是不一样的。

手机查看当前ip

ifconfig -a

在这里插入图片描述

我的手机当前的ip为 :192.168.2.108
修改密码

passwd

我这里设置的密码 termux2021,密码你可以自行设置
pc连接ssh
命令如下:

ssh -p 8022 u0_a100@192.168.2.108

或者你也可以使用xshell,Termiux之类的工具远程。
输入我新设置的密码 termux2021,成功进来啦!!!

设置自动启动ssh服务

echo "sshd" >> ~/.bashrc

至此我们ssh服务就配置完成了,后面我们就可以用电脑通过ssh来玩安装在手机中的linux了。

安装Linux发行版

Termux提供了一个proot-distro软件包,用于管理Termux内部的Linux发行版。据说几乎没有性能损失。

您可以通过执行以下命令安装该实用程序
安装proot-distro

pkg install proot-distro

目前,它支持以下发行版:
Alpine Linux(别名:alpine)-最小的可用发行版。
Arch Linux(别名:archlinux)
Debian 10 Buster(别名:debian-buster)
Kali Nethunter(别名:nethunter)-当前只有最小的构建。
Ubuntu 18.04 / 20.04(别名:ubuntu-18.04 / ubuntu-20.04)
要安装发行版,只需运行以下命令(假设已安装proot-distro):

# 查询支持哪些发行版本
proot-distro list
proot-distro install <alias>

我安装的 是alpine,如下命令:

proot-distro install alpine

安装alpine体积会更小,下载量仅2.5M左右。很适合在空间比较小的手机上使用。随着docker的兴起
alpine越来越多被使用。

命令执行结果如下:

~ $ proot-distro install alpine
[*] Installing Alpine Linux 3.13.1...
[*] Downloading rootfs tarball...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   647  100   647    0     0    378      0  0:00:01  0:00:01 --:--:--   378
100 2558k  100 2558k    0     0   526k      0  0:00:04  0:00:04 --:--:--  876k

[*] Checking integrity, please wait...
[*] Extracting rootfs, please wait...
[*] Writing '/data/data/com.termux/files/usr/var/lib/proot-distro/installed-rootfs/alpine/etc/profile.d/termux-proot.sh'...
[*] Writing resolv.conf file (NS 1.1.1.1/1.0.0.1)...
[*] Writing hosts file...
[*] Registering Android-specific UIDs and GIDs...
[*] Running distro-specific configuration steps...
[*] Installation finished.

Now run 'proot-distro login alpine' to log in.

就这么简单,我们竟然在手机上安装了alpine linux。
进入alpine linux

proot-distro login alpine

执行结果如下:

~ $ proot-distro login alpine
localhost:~# 

出现了root和#的标识了,这意味着我们现在可以为所欲为了!

切换国内源

默认源太慢了,我们还是切换一下国内的源下载软件会快很多。
切换到中科大的源,一条命令搞定:

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

其实就是修改/etc/apk/repositories中的地址,修改后内容如下:

cat /etc/apk/repositories
https://mirrors.ustc.edu.cn/alpine/v3.13/main
https://mirrors.ustc.edu.cn/alpine/v3.13/community

详细了解见:
《alpinelinux使用国内源》
https://blog.csdn.net/lxyoucan/article/details/117166318
/etc/apk/repositories

安装软件

以安装neofetch为例

apk add neofetch

在这里插入图片描述

设置中文环境

x86版本的alpine我设置成功了。详细见:《alpine linux配置中文语言环境》https://blog.csdn.net/lxyoucan/article/details/117165981

Termux版本的,也就是arm版本的,这一步我几经努力最终还是失败告终。不是不行,是需要自己去编译 glibc。没有中文其实影响也不算大,先这样吧。这样体积还能小一些。

配置开发环境

node.js

React Native的开发是离不开node.js的。我后面用到的nvim.coc也依赖这个。那就先安装一下吧!

apk add nodejs

查一下node的版本

localhost:~# node -v
v14.16.1

安装npm

apk add npm

查一下npm的版本

localhost:~# npm -v
6.14.12

切换淘宝源

# 使用nrm工具切换淘宝源
npx nrm use taobao
# 如果之后需要切换回官方源可使用
npx nrm use npm

万里长征第一步。

vim

我这里用vim做为IDE使用。

apk add vim

expo

#首次使用要安装一下expo命令行工具
npm install --global expo-cli
# 初始化一个项目
expo init my-project

总结

限于手机的性能有限,在手机上开发有点太卡了。一个expo安装了10 分钟!!!初始化一个项目也慢的受不了,都不知道有没有在运行。我决定放弃使用纯手机做APP开发。

参考文档

https://reactnative.cn/docs/environment-setup

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【挑战】手机Termux搭建React Native开发环境 的相关文章

  • IntelliJ IDEA自定义代码段

    前言 IntelliJ IDEA的代码段能提高不少开发效率 xff0c 除了使用默认的代码段 xff0c 那么如何自定义代码段呢 xff1f 操作演示 自定义代码段 Preferences Editor gt Live Templates
  • Centos7如何安装nginx新版本

    前言 应该有不少小伙伴安装nginx使用下面命令安装的吧 xff1f yum span class token function install span epel release yum span class token function
  • CentOS7设置时区与时间同步

    文章目录 一键脚本设置时区根据网络同步时间手动设置时间参考 一键脚本 直接整段复制粘贴到命令即可 span class token comment 设置时区为上海 span timedatectl set timezone Asia Sha
  • CentOS中使用brew安装新软件

    因为CentOS为了追求系统稳定 自带的软件管理器安装的软件相对会比较旧 软件比较旧有它的好 也有不好的地方 比如 yum安装vim目前最新的版本也只是7 4 现在很多插件都要求vim 8以上版本了 这时只能自己源码编译安装vim就很麻烦
  • CentOS安装最新版本curl

    CentOS系统自带的curl版本 xff1a span class token function curl span version span class token function curl span 7 29 0 span clas
  • CentOS中使用Homebrew报错ELF: x: Error

    报错信息如下 apex localhost hello hello P k ELF x Error 1484067991 原因分析 Homebrew安装的gcc 和 glibc 与系统自带的库冲突了 解决办法 brew uninstall
  • CentOS7升级gcc-10.3.0

    因为Centos中使用yum安装软件版本一般比较旧 最近在研究在Centos使用brew安装新版软件 CentOS自带的gcc版本比较老旧了 使用brew安装的软件小部分打开会报错 所以尝试升级一下gcc看看是否能解决问题 注意 GCC是L
  • Centos6.8更新curl7.76

    我想在CentOS6 8中安装linuxbrew xff0c curl版本过低 xff0c 只好升级一下了 安装依赖项软件包 xff08 后续升级需要 xff09 yum span class token function install
  • CentOS6.8安装python3+ranger

    个人比较喜欢使用ranger做文件管理器用 xff0c 需要python3支持 CentOS6 8无法直接使用yum安装python3 xff0c 那我们就编译安装吧 xff01 准备工作 依赖 yum span class token f
  • newFixedThreadPool(1)和newSingleThreadPool()的区别

    最近在学习线程池遇到一个有意思的问题 xff0c 在这里记录一下 xff0c 若大佬们觉得不够精准欢迎留言私信 xff01 查看newSingleThreadPool 源码如下图 xff1a 注释中被圈中的大概意思是指newSingleTh
  • macOS开机iterm2 + oh my zsh会显示xcodebuild

    现象 系统 xff1a macOS Big Sur11 2 3 每次重启电脑后 xff0c 首次打开iterm2 会显示 xcodebuild要等待3到5秒才可以 下次重启前在打开iterm2就不会出现xcodebuild 如何去优化这个体
  • no such file or directory: /usr/local/share/zsh/site-functions/_brew_cask

    现象 执行命令 xff1a span class token function source span zshrc 报错如下 xff1a compinit 503 no such file or directory usr local sh
  • 黑苹果macOS Big Sur更新11.3后usb3.0无法使用解决办法

    现象 macOS Big Sur 11 2 usb都正常使用 xff0c 更新到macOS Big Sur 11 3后发现usb3 0无法使用了 xff0c usb2 0还是正常的 解决办法 修改配置文件 EFI OC config pli
  • React Native 学习笔记

    iOS模拟器切换软键盘 如果您使用的是iOS模拟器 xff0c 则可以连接硬件键盘 xff0c 并将其与 任何输入字段 这可以通过Shift 43 43 K切换到软键盘 输入法键盘遮挡问题解决 操作演示如上图 xff0c 解决问题关键代码如
  • linuxbrew安装pip3+ranger

    因为brew install ranger安装出来的ranger是基于python2的 xff0c nvim中无法使用rnvimr插件 所以需要使用pip3安装一下ranger 在centos7 中使用linuxbrew安装的python3
  • Expo使用隧道穿透远程开发记录

    expo启动项目默认是使用的端口是19000 而且expo自带一个免费的隧道穿透功能 但是这个免费的隧道穿透毕竟是国外的不稳定 既然官方都支持隧道穿透了 xff0c 自定义隧道应该也是可以的吧 xff01 如何能稳定远程开发呢 xff1f
  • vim中React JSX语法高亮插件vim-jsx-pretty

    项目地址 https github com MaxMEllon vim jsx pretty 安装方法 vim plug为例 xff0c vimrc加入 Plug span class token string 39 yuezk vim j
  • Error: ENOSPC: System limit for number of file watchers reached

    现象 RN开发使用expo创建项目遇到如下错误 Logs for your project will appear below Press Ctrl 43 C to exit node 18489 DEP0066 DeprecationWa
  • vmware中CentOS7使用NAT模式主机无法通过ip连接虚拟机(记录)

    背景 有客户遇到了个问题我帮其远程解决 xff0c 我把大概的解决思路记录一下 客户先遇到了个问题 xff1a vmware中CentOS7因为使用NAT模式无法上网 xff0c 所以一直使用桥接模式上网 使用桥接的模式虽然可以上网但是虚拟
  • Windows下oracle client安装exp导出imp导入表

    下载Windows 32位客户端 下载页面 xff1a https www oracle com cn database enterprise edition downloads oracle db11g win32 html 下载完成以后

随机推荐

  • kali新手入门教学(1)--安装后的配置

    第一次写博客 xff0c 可能经验不是很足 xff0c 有不到位的地方还请各位见谅 最近在自学kali 然后kali是一个更新较快的系统 xff0c 虽然网上教程也很多 xff0c 但有的可能过时了 xff0c 所以我就把我这段时间的经验分
  • CentOS7安装mysql8笔记

    全新安装MySQL的步骤 以下说明假定您尚未使用第三方分发的RPM软件包将MySQL安装在您的系统上 xff1b 实操记录 我仅在CentOS Linux release 7 9 2009 Core 下进行测试 xff0c 其他环境仅供参考
  • mysql数据库安装教程合集

    CentOS7安装mysql8笔记 https blog csdn net lxyoucan article details 116854446 archlinux使用docker运行mysql实例 https blog csdn net
  • CentOS7使用docker跑mysql8笔记

    什么是docker Docker 是一个开放源代码软件 xff0c 是一个开放平台 xff0c 用于开发应用 交付 xff08 shipping xff09 应用 运行应用 Docker允许用户将基础设施 xff08 Infrastruct
  • x509: certificate has expired or is not yet valid.

    CentOS7中使用docker运行报错如下 xff1a root 64 localhost sudo docker run hello world Unable to find image hello world latest local
  • archlinux配置Xfce+fcitx5中文输入法

    因为图形界面我用的相对比较少 xff0c 所以喜欢安装小巧一些的桌面管理器 Centos中我比较喜欢使用openbox xff0c 但在是archlinux不知道在openbox使用中文输入法 xff0c 搞了半天也没解决 xff0c 不想
  • vim自动关闭标签

    一行代码搞定 inoremap span class token operator lt span buffer span class token operator gt span span class token operator lt
  • vim中jsx语法高亮

    没安装高亮插件前 安装插件vim jsx pretty xff08 卡顿 xff09 安装插件 Plug span class token string 39 yuezk vim js 39 span Plug span class tok
  • vmware安装alpine linux

    alpinelinux之前都没听过 xff0c 后来因为termux和docker发现这个发布版本 对这个发行布的最大印象就是小 为什么要在vmware中安装alpine linux xff0c 因为它小哇 xff01 主要好奇它安装后到底
  • alpine安装oh my zsh

    今天在vmware中安装了alpine 第一件事情就想安装oh my zsh 毕竟用了就回不去的东西 vmware安装alpine linux https blog csdn net lxyoucan article details 117
  • alpine linux配置中文语言环境

    alpine默认是没有语言环境的 没有中文不舒服不说 有时可能还会遇到中文乱码 那就来尝试一下安装中文语言环境吧 xff01 检查语言环境 查看当前语言环境 span class token keyword echo span span c
  • kali新手入门教学(11)--ddos攻击

    DDOS 全名是 Distribution Denial of service 分布式拒绝服务攻击 xff0c 指借助于客户 服务器技术 xff0c 将多个计算机联合起来作为攻击平台 xff0c 对一个或多个目标发动 DoS 攻击 xff0
  • alpinelinux使用国内源

    alpinelinux默认的源实在太慢了 xff0c 那就切换成国内的镜像吧 xff01 我个人比较喜欢中科大的源 xff0c 快 xff0c 稳 xff01 中科大源 一般情况下 xff0c 将 etc apk repositories
  • alpine安装图形界面Xfce

    alpine安装图形界面Xfce xff0c 这个官方文档很细 xff1a https wiki alpinelinux org wiki Xfce Setup Prerequisites 我只是做个记录 xff0c 做个笔记好日后观看 s
  • alpine中使用linuxbrew会怎么样?

    之前我写的文章中已经提到了 xff0c 使用apk安装的软件包都没有中文 如果我在alpine中使用brew安装软件是不是就变相的解决了中文软件包的问题了呢 xff1f 但是使用alpine本身就是因为它小巧 xff0c 这样一来就忘记了初
  • RN踩坑‘await‘ expressions are only allowed within async functions and at the top levels of modules.

    以前很少在循环中执行ajax xff0c 今天突然遇到个场景用到 习惯使用map来遍历了 xff0c 结果在map中遍历无法使用await方法 一时有点懵 xff01 xff01 xff01 后来发现普通的for循环中可以遍历 虽然不清楚为
  • RN踩坑this.setState未生效

    出错代码 目标是修改this state citys为初始化城市 xff0c 但是发现并没有初始化成功 xff01 span class token keyword this span span class token punctuatio
  • macos下IDEA中svn每次都要输入密码

    有一次把brew卸载重新安装了 xff0c 导致svn也要重新安装 xff0c 重新安装完以后发现IDEA中每次打开使用svn就要输入一次密码 这样太麻烦了 现象 项目Value操作系统macOS Big Sur 11 3IDEAIntel
  • React Native天气预报APP

    expo扫码运行 或者复制下面地址 exp exp host 64 lxyoucan weather ts 效果展示 同时显示多个城市的天气情况 xff0c 并按温度进行排序 点击任何一个城市 xff0c 显示天气详情信息 项目地址 htt
  • 【挑战】手机Termux搭建React Native开发环境

    我这里选用alpine来做开发环境 xff0c 主要因为它体积小巧 xff0c 方便移植和分享 如果只是我自己使用的话 xff0c 我更喜欢使用ubuntu或者archlinux alpine做开发环境 xff0c 可能会遇到的问题就是中文