• 使用Termux在安卓手机上搭建本地Git服务器


    一、安装安卓终端模拟器Termux

    https://github.com/termux/termux-app/releases
    
    • 1

    手机是arm 64位的,就下载 ‘termux-app_v0.118.0 github-debug_arm64-v8a.apk’,或者从F-Droid下载

    https://f-droid.org/repo/com.termux_117.apk
    
    • 1
    1. 安装完apk后如下
      在这里插入图片描述

    2. 更换源
      Termux是默认使用国外的镜像源,在中国访问国外服务器就会特别慢甚至连接不上,所以需要将镜像源换成中国的清华镜像源。
      使用下面的命令可以更换清华源

    sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list
    
    • 1

    或者

    sed -i 's@packages.termux.org@mirrors.ustc.edu.cn/termux@' $PREFIX/etc/apt/sources.list
    pkg up
    
    • 1
    • 2

    网上其他教程会指导使用下面的三个命令,但实践中发现不成功

    sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
    sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
    sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
    
    • 1
    • 2
    • 3

    命令执行完毕后用下面的命令进行更新

    apt update #更新包列表
    apt upgrade #更新安装的包文件
    
    • 1
    • 2
    1. 安装远程连接软件
      换完源就可以安装软件了,首先安装的肯定是ssh远程连接软件,不然每次都要在手机上点小键盘真的很难受。
      通过下面命令安装openssh软件
    apt install openssh -y
    #或下面的命令
    pkg install openssh
    
    • 1
    • 2
    • 3

    安装完成后就可以用电脑连接手机了,为了保证手机的ssh已经启用运行下面命令

    sshd
    
    • 1

    首先需要知道手机的ip地址

    ifconfig -a
    
    • 1

    如下显示结果

    wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.041.199.36  netmask 255.255.254.0  broadcast 10.041.199.255
    
    • 1
    • 2

    从终端显示的结果中找到ip地址:10.041.199.36
    电脑端连接手机的话,需要在手机端设置登录密码等,需要注意的是这里必须在同一个局域网才能连接,如果是在外网还需要做穿透。

    #查看用户名
    whoami
    #根据得到的用户名u0_a212设置密码
    passwd u0_a212
    
    • 1
    • 2
    • 3
    • 4

    然后就可以在电脑端愉快的登录手机了

    ssh admin@10.041.199.36 -p 8022
    
    • 1

    这里需要注意的是一般的SSH登录的端口号是22,但这里termux默认使用8022作为ssh端口号。所以在使用xshell软件进行远程登陆时记得修改。
    此外,这里的用户名可以填admin,也不一定需要用上面的用户名。

    1. 安装其他应用
      既然已经可以在电脑端操作手机了,那现在就可以着手准备在手机上配置Git服务器了。
    pkg install git vim termux-auth
    
    • 1

    二、配置Git服务

    Termux工作目录是/data/data/com.termux/files/home,相当于linux的~目录,这里一开始什么都没有。

    『注:/data/data/com.termux/files/是termux的“根目录”。android真正的根目录是/。但如果设备没有root,/data/data/com.termux/以上的目录大部分是没法访问的,会提示权限不够。』

    1. 访问外置SD卡或内部存储授权
    # 手机上termux中执行
    termux-setup-storage
    
    • 1
    • 2

    这个命令会在home目录下,生成一个storage目录,此目录中的子目录external-1对应外置SD卡中的一个特定目录。就实验手机而言, 这个特定目录是:外置SD卡/Android/data/com.termux/files/。
    Termux的配置文件是~/.termux/termux.properties ,wiki上有此配置文件的说明[1]。这里仅介绍刚安装完成后的初步设置。
    在这里插入图片描述

    1. 手机正式创建Git的服务仓库
    # 创建Git服务仓库(建议外置存储卡上,具体位置参考第四步的图)
    git init --bare  100_myStudyNoteRepo.git
    
    # 在home目录中,创建目录软链接
    ln -s <全路径>/100_myStudyNoteRepo.git  100_myStudyNoteRepo.git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    此外常用的文件路径都可以通过termux软链接到根目录

    ln -s /data/data/com.termux/files/home/storage/shared/tencent/TIMfile_recv TIM
    
    • 1
    1. PC端与手机文件关联起来
    # PC中执行
    ssh-keygen
    
    • 1
    • 2

    把生成的公钥~.ssh\id_rsa.pub 拷贝到手机的~.ssh 文件夹中,继续执行

    # 手机上termux中执行
    cat id_rsa.pub > authorized_keys
    
    # 可选操作:sshd_config中修改PasswordAuthentication no
    #这样做可以让笔记本终端直接进入手机的系统,但问题是会造成xshell等软件的进入困难
    vim $PREFIX/etc/ssh/sshd_config
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. PC端克隆仓库
    # u0_a212 前面查询到的用户名
    # 10.041.199.36 前面查询到的ip
    # 8022前面指定的端口
    # ~ 代表手机termux中的home目录
    git clone ssh://u0_a212@10.041.199.36:8022/~/100_myStudyNoteRepo.git
    
    • 1
    • 2
    • 3
    • 4
    • 5

    遇到的问题

    如果链接的无线网都是不一样的,可能会遇到如下报错:

    ECDSA host key for IP has changed and you have requested strict checking.Host key verification fail 
    
    • 1

    解决办法2个:

    • ssh-keygen -R 远程服务器ip
    • 找到本机而非服务器的 .ssh/文件夹,然后打开known hosts删掉对应的服务器的ip和端口对应的信息,然后在重新连接

    这样重新绑定后就可以继续上传仓库数据了


    ssh简单使用

    sshd服务启动、停止
    # 指定端口启动
    sshd -p 9876
    
    # 停止 ssh 服务,只需要 kill 杀掉进程即可
    pkill sshd
    
    # 查看sshd的日志
    logcat -s 'syslog:*'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    拓展

    手机用git软件连接github

    1. 在手机上创建密钥对
    ssh-keygen -t rsa -C "YOUR_EMAIL_ADDRESS"
    
    • 1
    1. 将上面的密钥对配置到github后,使用下面的命令登录到你的github账户。
    ssh -T git@github.com
    
    • 1

    至此,你就可以在手机上拉去代码和查看了

    其他

    1. 给终端配色
    sh -c "$(curl -fsSL https://html.sqlsec.com/termux-install.sh)"
    
    • 1

    脚本允许后先后有如下两个选项:
    分别是选择主题样式和字体

    Enter a number, leave blank to not to change: 14
    Enter a number, leave blank to not to change: 6
    
    • 1
    • 2

    该库会自动帮你安装zsh和oh-my-zsh管理工具,并将zsh设置为默认shell
    如果你不满意该主题,可输入chcolor命令更换色彩样式。
    运行chfont命令更换字体。

    
    
    • 1

    参考
    《让你的安卓手机运行Ubuntu——便携Linux》
    《安卓手机上安装Linux开源模拟器-Termux》
    《Android 手机的高级终端 Termux 安装、使用》
    《Termux详细教程》

  • 相关阅读:
    animate.css与vue中的v-if/v-show如何一起使用
    YOLOv3: An Incremental Improvement的译读笔记
    langchain介绍之-Prompt
    volatile类型变量提供什么保证?
    判断测试结束的标准有哪些?
    一元三次方程求解
    毫秒级精度计划任务管理、系统运维管理、定时执行任务、定时任务执行、任务定时执行软件 —— 定时执行专家
    禁用鼠标的侧边按键
    ATF SMC处理
    C++11多线程知识点思维导图
  • 原文地址:https://blog.csdn.net/u011795345/article/details/126834678