搭建Docker开发环境_Linux

news/2024/7/6 1:50:57 标签: linux, lunbancat2, RK3568, Docker, Debian

环境搭建

文章目录

  • 环境搭建
    • @[toc]
    • Docker
    • Python版本切换
    • 版本工具
      • Repo
      • Git
    • 开发
      • SDK代码拉取
        • 在线
        • 离线(推荐)
    • Debian
      • 安装软件包
      • 编译
      • 打包
    • 问题
      • 技巧

Docker_5">Docker

sudo apt  install docker.io

Docker_11">Docker运行权限

#添加docker group
sudo groupadd docker# 将当前用户添加到docker组
sudo gpasswd -a ${USER} docker# 重启docker服务:
sudo service docker restart
​
# 查看用户组及成员:
cat /etc/group | grep docker

Docker_27">Docker加速

# 编辑 Docker 配置文件
$ sudo vim /etc/docker/daemon.json
​
# 加入以下配置项
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ]
}# 重启docker
$ sudo service docker restart

Docker_47">Docker容器创建

# 推荐:Ubuntu 18.04 版本  
# 拉取Ubuntu镜像
docker pull ubuntu:18.04

# 进入关联源码目录挂载使用绝对路径,启动Docker
cd ~
docker run -it -v ${PWD}:${PWD} --privileged --name Ubuntu18_Lubancat2 ubuntu:18.04

# 环境依赖
apt-get update

# Docker 补充
apt install -y bc time rsync curl vim sudo

# 安装 SDK 构建所需要的软件包
apt install -y git ssh make gcc libssl-dev liblz4-tool u-boot-tools curl \
expect 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 python-pip libncurses5-dev python3-pyelftools \
dpkg-dev

# 添加用户
adduser gaoyang3513

# 为用户username添加sudo权限
sudo usermod -a -G sudo gaoyang3513

# sudo 免密,在sudoer.d目录新建docker-nopasswd
#    添加内容:gaoyang3513 ALL=(ALL) NOPASSWD: ALL
sudo visudo /etc/sudoers.d/docker-nopassswd

# 切换用户
su gaoyang3513

Python版本切换

# 添加,优先python3
update-alternatives --install /usr/bin/python python /usr/bin/python2 100
update-alternatives --install /usr/bin/python python /usr/bin/python3 150# 切换
update-alternatives --config python

版本工具

Repo

# 环境配置
mkdir -p ~/.local/bin/
export PATH=~/.local/bin/:$PATH

# 下载
curl https://storage.googleapis.com/git-repo-downloads/repo > .local/bin/repo

# 权限
chmod a+x .local/bin/repo

# 生效
source .profile

Git

git config --global user.name "gaoyang3513"
git config --global user.email "gaoyang3513@163.com"

git config --global core.editor vim

开发

SDK代码拉取

在线

#github地址
repo --trace init --depth=1 --repo-url https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -u https://github.com/LubanCat/manifests.git -b linux -m rk356x_linux_release.xml 

# 同步源码
repo --trace sync -c -j4

离线(推荐)

# 离线SDK,解压
cd SDK_RK3568_Linux_New 
7z x ../../01-Resource/01-鲁班猫/8-SDK源码压缩包/LubanCat_rk356x_Linux_SDK_20230711.7z

repo init --depth=1 -u https://github.com/LubanCat/manifests.git -b linux -m rk356x_linux_release.xml

# 检出.repo 目录下的 git 仓库并同步
repo sync -l -j10
# 不推荐同步
# repo sync -c -j10

Debian_153">Debian

安装软件包

sudo apt install binfmt-support qemu-user-static

# 安装 debian 根文件系统构建依赖的软件包,无视过程报错
sudo dpkg -i debian/ubuntu-build-service/packages/*
sudo apt-get install -f

编译

# 选择目标
#     10. BoardConfig-LubanCat-RK3568-debian-xfce.mk
./build.sh lunch

打包

# 一键编译 u-Boot, kernel, Rootfs, Recovery, 并打包为 update.img 镜像
./build.sh

问题

  • 错误1../build.sh: line 717: /usr/bin/time: No such file or directory
atp instal -y time
  • 错误2. 2023-09-08T01:18:53 You must install 'rsync' on your build machine

    apt install -y rsync
    
  • 错误3. fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle

    # vi ~/bin/repo
    ​
    - REPO_URL = 'https://gerrit.googlesource.com/git-repo'
    + REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
    

    或repo init时参数--repo-url指定,如:--repo-url https://mirrors.tuna.tsinghua.edu.cn/git/git-repo

  • 错误.Failed to run livebuild, please check your network connection.

    if [ -f binary-tar.tar.gz ]; then \
            tar -jcf linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 auto/ config/ configure; \
            sudo mv binary.contents linaro-buster-alip-`date +%Y%m%d`-1.contents; \
            sudo mv chroot.packages.live linaro-buster-alip-`date +%Y%m%d`-1.packages; \
            sudo mv binary-tar.tar.gz linaro-buster-alip-`date +%Y%m%d`-1.tar.gz; \
            md5sum linaro-buster-alip-`date +%Y%m%d`-1.build-log.txt linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 linaro-buster-alip-`date +%Y%m%d`-1.contents linaro-buster-alip-`date +%Y%m%d`-1.packages linaro-buster-alip-`date +%Y%m%d`-1.tar.gz > linaro-buster-alip-`date +%Y%m%d`-1.md5sums.txt; \
            sha1sum linaro-buster-alip-`date +%Y%m%d`-1.build-log.txt linaro-buster-alip-`date +%Y%m%d`-1.config.tar.bz2 linaro-buster-alip-`date +%Y%m%d`-1.contents linaro-buster-alip-`date +%Y%m%d`-1.packages linaro-buster-alip-`date +%Y%m%d`-1.tar.gz > linaro-buster-alip-`date +%Y%m%d`-1.sha1sums.txt; \
    fi
     Failed to run livebuild, please check your network connection. 
    VERSION=none TARGET=xfce SOC=rk356x ./mk-buster-rootfs.sh
    

    直接原因为binary-tar.tar.gz文件未生成,根本原因为qemu中挂载/proc目录失败,解决方案:参考1.docker 中使用mount命令报错:mount: permission denied

技巧

# 新开
docker exec -it Ubuntu20_RK3568 /bin/bash
  • Github加速

    参考1.

  • 百度网盘加速

    参考1.

  • sudoer修改

    参考1. 批量修改ubuntu用户sudo免密码


http://www.niftyadmin.cn/n/5038601.html

相关文章

虚拟人三维动画宣传片案例分享 | 广州“五羊”城市文化IP商业体裸眼3D广告影片

随着时代的发展元宇宙的助推,裸眼3D形式的宣传方式逐渐出现在大众眼前。以数字人IP的3D立体效果吸引大众目光,让其驻足拍照、录视频分享至社交平台,为企业品牌带来高频传播价值。 近日,广州“五羊”城市文化IP裸眼3D广告宣传片在广…

计算机毕业设计 基于SpringBoot餐厅点餐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

win10系统 C++环境 安装编译GRPC

第一步 下载源码、更新、cmake编译: 为了依赖的成功安装,采用gitee进行下载与更新。记得需要安装git软件。 安装命令: 在自己指定的目录下,鼠标右键,选择 git Bash Here 打开命令行 git clone -b v1.34.0 https://gi…

解决Oracle SQL语句性能问题——SQL语句改写(join、集合)

14. join改为exists join是Oracle支持的连接语法,有些场景中,该语法不但可以提高SQL语句的可读性,还可以使SQL语句获得很好的性能。但有些场景中,该语法会导致SQL语句产生次优的执行计划,从而引起SQL语句的性能问题。因此,为了解决相关SQL语句的性能问题,有时我们需要通…

基于香橙派和SU-03T 使用Linux实现语音控制刷抖音

硬件介绍 SU-03T之前在小车的时候使用过,详见:语音小车---6 最终整合_mjmmm的博客-CSDN博客 按照下图进行接线: 项目需求 通过语音指令来控制安卓手机刷抖音,可以实现视频切换和点赞等功能: 1. 开机播报“你好&a…

通信相关常识

MSISDN 手机号 “MSISDN” 是一个移动电话号码的标识,它是国际移动用户识别码(IMSI)和移动国家代码(MCC)以及移动网络代码(MNC)的组合。 MSISDN 是一个唯一的电话号码,用于标识移动…

linux之jq命令

jq命令用于linux命令行对json进行处理 参数 option -r:去掉字符串的引号"例子 tt.json文件如下: [{"metric": "httpcode","tags": {"cluster": "tt","domain": "www.baidu.…

自然语言处理实战项目19-基于ALBERT模型进行微调的项目-文本分类中的合同类型描述的分类

大家好,我是微学AI,今天给大家介绍一下自然语言处理实战项目19-基于ALBERT模型进行微调的项目-文本分类中的合同类型描述的分类。本文中,我主要将探讨如何使用预训练的ALBERT模型进行微调,以解决文本分类问题,特别是对合同类型的分类。在ALBERT这个模型中,Google研究人员…