有时我们不得不在 没有互联网 的环境中开展开发工作,这篇文章记录一些配置离线开发环境的经验 Ubuntu 开发环境准备

  • 下载常用的软件
  • 定义常用依赖
    deps+=(git neovim silversearcher-ag jq p7zip tmux zsh curl wget)
    deps+=(python3 python3-pip python3-virtualenv)
    # 编译python 所需要的依赖
    deps=(zlib1g-dev libncurses5-dev libgdbm-dev \
    	libnss3-dev libssl-dev libreadline-dev \
    			libffi-dev libsqlite3-dev libbz2-dev)
    # docker 相关
    deps+=(docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin )
    # 常用的binary 依赖
    deps+=(libpq-dev clang)
  • 更新下载镜像
    sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
    sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
     
    ## 更新 Docker下载镜像
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg \
    	|	gpg --dearmor -o /etc/apt/keyrings/docker.gpg
     
    echo \
    "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
    "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
     tee /etc/apt/sources.list.d/docker.list \> /dev/null
     
    ## 离线下载deb包
    apt-get install apt-rdpends
    for str in ${deps[@]}; do
    	apt-get download \
    		$(apt-rdepends "$str" \
    			|grep -v "^ "|grep -v "^libc-dev$" | grep -v "^debconf-2.0" \
    			| grep -v "^dbus-session-bus" | grep -v "^default-dbus-session-bus") 
    done

Windows 开发环境准备 (Windows Server 2019 或 Windows 10)

  • 在Windows中离线安装 WSL id:: 653a1182-0795-4286-9de8-640e10f92bb6 > 重点参考微软官方文档
    • 启用Windows功能 logseq.order-list-type:: number
      # Windows 10
      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
       
      # Windows Server 
      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
       
      # 启用虚拟机功能 (安装WSL2 所需要的)
      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
       
       
    • 下载Linux 内核升级包 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi logseq.order-list-type:: number > 应该就是个普通的Exe文件,点击安装即可
    • 开启wsl2 logseq.order-list-type:: number
      wsl --set-default-version 2
      
    • Downloading distributions 下载Linux 发行版安装包 logseq.order-list-type:: number 下载到的安装包应该是*.appbundle 文件,大小1GB左右,下载完成后将扩展名修改为APPX Ubuntu 22.04下载地址: https://aka.ms/wslubuntu2204
    • 安装 appx文件 logseq.order-list-type:: number
      • 如果是 Windows 10 logseq.order-list-type:: number

        Add-AppxPackage .\ubuntu.appx
      • 如果是 Windows Server logseq.order-list-type:: number

        # 1.将appx重命名成Zip 然后解压
        Rename-Item .\Ubuntu.appx	.\Ubuntu.zip
        Expand-Archive .\Ubuntu.zip .\Ubuntu
        # 这一步完成后,在 Ubuntu 文件夹
        #	1. 下如果有 ubuntu.exe, 点击运行它即可
        #	2.	如果有一堆appx 文件,就再用 重命名为zip 解压这个方法处理一次,直到看到ubuntu.exe
        # 2. 将解压后的 `Ubuntu`目录添加到系统环境变量
  • 在Windows中离线安装 Docker > + 重点参考Install Docker Desktop on Windows | Docker Docs
    • 请确保已经完成了
    • 下载 docker_desktop 安装包 https://docs.docker.com/desktop/install/windows-install/ logseq.order-list-type:: number
    • 再次确保已经安装了 WSL logseq.order-list-type:: number
    • 安装 Docker logseq.order-list-type:: number Docker 镜像离线下载
  • 在联网的机器上 pull 镜像,并用 docker save 保存
    •   docker pull postgres:16
        docker save postgres:16	\> postgres-16.tar
      
  • 在离线机器上用 docker load 保存
  • 常用镜像
    postgres:16
    node:18
    node:21
    redis:7
    clickhouse/clickhouse-server:23
    sonatype/nexus3:3.61.0
    

[offline npm镜像避坑](offline npm镜像避坑.md)