L

Lararu.Blog

Make It Happen.

  • 首页
  • DEVOPS
  • Python-Dev
  • Docker
  • 关于
Home 安卓手机termux安装ubuntu或者Alpine Linux
文章

安卓手机termux安装ubuntu或者Alpine Linux

Posted 2025-04-28 Updated 2025-05- 14
By Administrator
13~17 min read

系统初始化

#!/bin/bash

# Termux 初始化脚本 - 模块化版本

# 检查是否为 Termux 环境
check_termux_environment() {
    if [[ "$PREFIX" != "/data/data/com.termux/files/usr" ]]; then
        echo "此脚本仅适用于 Termux 环境!"
        exit 1
    fi
}

# 配置存储权限
configure_storage_permission() {
    echo "配置存储权限..."
    termux-setup-storage
    if [ $? -ne 0 ]; then
        echo "存储权限配置失败,请手动运行 termux-setup-storage"
        exit 1
    fi
}

# 更新包管理器
update_package_manager() {
    echo "更新包管理器..."
    pkg update -y
    if [ $? -ne 0 ]; then
        echo "包管理器更新失败"
        exit 1
    fi
}

# 安装常用软件包
install_common_packages() {
    echo "安装常用软件包..."
    pkg install -y \
        wget \
        curl \
        git \
        nano \
        unzip \
        zip \
        termux-services \
        tmux  # 追加tmux

    if [ $? -ne 0 ]; then
        echo "常用软件包安装失败"
        exit 1
    fi
}

# 安装并启用 OpenSSH
install_and_enable_ssh() {
    echo "安装 OpenSSH 服务器..."
    pkg install openssh -y
    if [ $? -ne 0 ]; then
        echo "OpenSSH 安装失败"
        exit 1
    fi

    echo "启用并启动 OpenSSH 服务..."
    sv-enable sshd
    if [ $? -ne 0 ]; then
        echo "OpenSSH 服务启用失败,请手动运行 sv-enable sshd"
        exit 1
    fi

    # 启动 OpenSSH 服务
    echo "启动 OpenSSH 服务..."
    sshd
    if [ $? -ne 0 ]; then
        echo "OpenSSH 服务启动失败"
        exit 1
    fi

    # 配置 SSH 密钥对(如果不存在)
    if [ ! -f "$HOME/.ssh/id_rsa" ]; then
        echo "生成 SSH 密钥对..."
        mkdir -p "$HOME/.ssh"
        chmod 700 "$HOME/.ssh"
        ssh-keygen -t rsa -b 4096 -f "$HOME/.ssh/id_rsa" -N ""
        if [ $? -ne 0 ]; then
            echo "SSH 密钥生成失败"
            exit 1
        fi
    fi
}

# 配置 Python 开发环境
config_pythondev() {
    echo "安装 Python 开发所需的软件包..."
    pkg install -y python3 clang

    if [ $? -ne 0 ]; then
        echo "Python 开发所需软件包安装失败"
        exit 1
    fi

    echo "配置 Python pip 环境变量..."
    echo 'export LDFLAGS="-L/data/data/com.termux/files/usr/lib"' >> ~/.bashrc
    echo 'export CFLAGS="-I/data/data/com.termux/files/usr/include"' >> ~/.bashrc
    source ~/.bashrc
}

# 主函数 - 执行所有模块
main() {
    check_termux_environment
    configure_storage_permission
    update_package_manager
    install_common_packages
    install_and_enable_ssh
    config_pythondev

    echo "初始化完成!现在可以使用 Termux 环境了。"
    echo "OpenSSH 已启用并启动,可以通过 SSH 客户端连接到 $(hostname) 的 22 端口。"
}

# 执行主函数
main

pkg install root-repo

pkg install openssh

sv-enable sshd

pkg install termux-services
pkg i termux-services

# 安装依赖
pkg install python clang libxml2 libxml2-dev libxslt libxslt-dev

# 使用 pip 安装时需要加环境变量指明头文件路径:

LDFLAGS="-L/data/data/com.termux/files/usr/lib" \
CFLAGS="-I/data/data/com.termux/files/usr/include" \
pip install lxml

Ubuntu

#!/bin/bash

# 安装依赖模块
install_dependencies() {
    echo "正在安装依赖..."
    pkg update
    pkg upgrade -y
    pkg install apt -y
    pkg install wget -y
    pkg install qemu-system-x86_64 -y
}

# 获取 Termux 存储权限模块
setup_termux_storage() {
    echo "正在设置 Termux 存储权限..."
    termux-setup-storage
    if [ $? -ne 0 ]; then
        echo "设置 Termux 存储权限失败,脚本将退出。"
        exit 1
    fi
}

# 创建ubuntusrv文件夹并进入该工作文件夹
mkdir_dir(){
    echo "正在设置 Termux 存储权限..."
    mkdir ubuntusrv && cd ubuntusrv
}

# 下载 Ubuntu ISO 镜像模块
download_iso() {
    echo "正在下载 Ubuntu 22.04 LTS ISO 镜像..."
    wget https://releases.ubuntu.com/22.04/ubuntu-22.04.5-live-server-amd64.iso -O ubuntu.iso
}

# 创建虚拟硬盘模块
create_virtual_disk() {
    echo "正在创建虚拟硬盘..."
    qemu-img create -f qcow2 ubuntu.qcow2 10G
}

# 编写启动脚本模块
write_startup_script() {
    echo "正在编写启动脚本..."
    echo '#!/bin/bash' > start_vm.sh
    echo 'qemu-system-x86_64 -hda ubuntu.qcow2 -cdrom ubuntu.iso -m 1G -boot d' >> start_vm.sh
}

# 赋予脚本执行权限模块
grant_script_permission() {
    echo "正在赋予脚本执行权限..."
    chmod +x start_vm.sh
}

# 启动虚拟机进行安装模块
start_installation() {
    echo "正在启动虚拟机进行安装..."
    ./start_vm.sh
}

# 修改启动脚本以便后续从虚拟硬盘启动模块
modify_startup_script() {
    echo "正在修改启动脚本以便后续从虚拟硬盘启动..."
    echo '#!/bin/bash' > start_vm.sh
    echo 'qemu-system-x86_64 -hda ubuntu.qcow2 -m 1G' >> start_vm.sh
}

# 主函数,按顺序调用各模块
main() {
    setup_termux_storage
    mkdir_dir
    install_dependencies
    download_iso
    create_virtual_disk
    write_startup_script
    grant_script_permission
    echo "请在启动的虚拟机中完成 Ubuntu 的安装过程..."
    start_installation
    read -p "安装完成后,请按任意键继续..." -n 1 -r
    modify_startup_script
    echo "Ubuntu 22.04 LTS 已经安装完成!现在您可以使用 start_vm.sh 脚本启动 Ubuntu 系统。"
}

# 执行主函数
main

Alpine Linue方式

pkg update -y && pkg upgrade -y

pkg install qemu-utils qemu-common qemu-system-x86_64-headless wget -y

mkdir alpine && cd alpine

wget http://dl-cdn.alpinelinux.org/alpine/v3.20/releases/x86_64/alpine-virt-3.20.2-x86_64.iso

qemu-img create -f qcow2 alpine.img 5G

qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -cdrom alpine-virt-3.20.2-x86_64.iso -nographic alpine.img

setup-interfaces

ifup eth0

wget https://raw.githubusercontent.com/cyberkernelofficial/docker-in-termux/main/answerfile

sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk

setup-alpine -f answerfile

qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img


nano run_qemu.sh

#!/bin/bash
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 -drive if=pflash,format=raw,read-only=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd -netdev user,id=n1,dns=8.8.8.8,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 -nographic alpine.img

参考资料:

https://github.com/cyberkernelofficial/docker-in-termuxx

License:  CC BY 4.0
Share

Further Reading

OLDER

docker部署Gotify

NEWER

韩国Emart全球供应链研究

Recently Updated

  • Mac OS 系统优化
  • docker部署FileGator
  • flask 发邮件项目
  • docker部署nginx
  • ubuntu server安装podman

Trending Tags

Python-dev Ubuntu Database PVE DevOps Docker Docker-compose

Contents

©2025 Lararu.Blog. Some rights reserved.

Using the Halo theme Chirpy