一、开发环境搭建
一、环境搭建
1、实体环境
-
预安装编译环境
sudo apt-get update && sudo apt-get install git ssh make gcc libssl-dev \ liblz4-tool expect expect-dev g++ patchelf chrpath gawk texinfo chrpath \ diffstat binfmt-support qemu-user-static live-build bison flex fakeroot \ cmake gcc-multilib g++-multilib unzip device-tree-compiler ncurses-dev \ libgucharmap-2-90-dev bzip2 expat gpgv2 cpp-aarch64-linux-gnu libgmp-dev \ libmpc-dev bc python-is-python3 python2 python3 libgbm-dev libwayland-egl-backend-dev -
python版本
PYTHON3_VER=3.6.15 echo "wget https://www.python.org/ftp/python/${PYTHON3_VER}/Python-${PYTHON3_VER}.tgz" echo "tar xf Python-${PYTHON3_VER}.tgz" echo "cd Python-${PYTHON3_VER}" echo "sudo apt-get install libsqlite3-dev" echo "./configure --enable-optimizations" echo "sudo make install -j8" # 查看当前系统安装的Python版本有哪些 ls /usr/bin/python* # 将python链接到python3 sudo ln -sf /usr/bin/python3 /usr/bin/python # 重新查看默认Python版本 python -V -
升级make版本
make -v # GNU Make 4.2 # Built for x86_64-pc-linux-gnu sudo apt update && sudo apt install -y autoconf autopoint -
升级lz4版本
lz4 -v # *** LZ4 command line interface 64-bits v1.9.3, by Yann Collet *** git clone https://gitee.com/mirrors/LZ4_old1.git cd LZ4_old1 make sudo make install sudo install -m 0755 lz4 /usr/bin/lz4 -
升级git版本
git -v # git version 2.38.0 sudo apt update && sudo apt install -y libcurl4-gnutls-dev # 或者 git clone https://gitee.com/mirrors/git.git --depth 1 -b v2.38.0 cd git make git -j8 make install sudo install -m 0755 git /usr/bin/git
2、基于docker
2.1、构建镜像
-
编辑Dockerfile
# 设置基础镜像 # FROM ubuntu:18.04 FROM ubuntu:22.04 # 设置作者信息 LABEL maintainer="<work_mo@outlook.com>" ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Shanghai # 设置环境变量,用于非交互式安装,并设置代理(根据需要替换代理地址和端口) # ENV DEBIAN_FRONTEND=noninteractive \ # http_proxy=http://127.0.0.1:8080 \ # https_proxy=http://127.0.0.1:8080 \ # no_proxy="localhost,127.0.0.1" # 备份源列表文件 RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak # 使用 USTC 源替换默认的源 # RUN echo "deb http://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse\n\ # deb http://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse\n\ # deb http://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse\n\ # deb http://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse" \ # > /etc/apt/sources.list && \ # apt-get clean # 将源列表中的 http://.*ubuntu.com 替换为 http://mirrors.aliyun.com RUN sed -i 's@http://.*ubuntu.com@http://mirrors.aliyun.com@g' /etc/apt/sources.list && \ apt-get clean RUN rm -rf /var/lib/apt/lists/lock && \ rm -rf /var/cache/apt/archives/lock && \ rm -rf /var/lib/dpkg/lock* # 更新并安装必要的软件包 RUN apt-get update -y && \ apt-get upgrade -y && \ apt-get install -y \ bc binfmt-support bison bsdmainutils build-essential chrpath cmake cpio curl \ device-tree-compiler diffstat expat expect fdisk file flex gawk git iputils-ping \ libegl1-mesa libelf-dev libgmp-dev libgucharmap-2-90-dev liblz4-tool libmpc-dev \ libncurses-dev libsdl1.2-dev libssl-dev locales mesa-common-dev net-tools \ patchelf python2 python2-dev python3 python-is-python3 python3-git python3-jinja2 \ python3-pexpect python3-pip python3-pyelftools python3-subunit qemu-user-static \ repo rsync ssh strace swig vim socat sudo texinfo time tree unzip wget lz4 \ libncurses5 libncurses5-dev zip libgbm-dev libwayland-egl-backend-dev # RUN ln -s /usr/bin/python3 /usr/bin/python # 生成本地化语言支持 RUN locale-gen en_US.UTF-8 ENV LANG=en_US.UTF-8 # 添加用户并配置 sudo 权限 RUN useradd -c 'mo user' -m -d /home/mo -s /bin/bash mo && \ usermod -a -G sudo mo && \ sed -i -e '/%sudo\tALL=(ALL:ALL) ALL/c\%sudo ALL=(ALL) NOPASSWD: ALL' /etc/sudoers USER mo # 设置docker工作目录为/home/mo WORKDIR /home/mo # 删除不必要的软件包和缓存 # RUN sudo apt-get autoclean && apt-get autoremove && rm -rf /var/lib/apt/lists/* # 输出构建完成的消息 RUN echo "docker image build complete !" -
创建镜像
sudo docker build -t mo_img .
2.2、新建并启动容器
docker run --privileged -it --name mo_img_sdk -u mo -v /home/主机sdk路径:/home/mo/sdk mo_img /bin/bash -c "cd /home/mo/sdk && exec /bin/bash"
# docker run --privileged -it --name mo_img_sdk -u mo -v D:\file\work\project\docker\ubuntu22\sdk:/home/mo/sdk mo_img /bin/bash -c "cd /home/mo/sdk && exec /bin/bash"
2.3、常用指令
1、查询
# 列出所有本地镜像
docker images -a
# 列出所有本地容器
docker ps -a
2、运行容器
docker start xxx
docker attach xxx
3、容器导入导出
# 导出
docker export 7691a814370e > user_env.tar
# 导入
cat user_env.tar | docker import - user_env:v1.0
# 运行导入的镜像
docker run -it user_env:v1.0 /bin/bash
4、删除
# 删除镜像
docker rmi xxx
# 删除容器
docker rm xxx

浙公网安备 33010602011771号