1 Star 0 Fork 0

何亚红 / HEnvBox

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ReadMe.md 16.79 KB
一键复制 编辑 原始数据 按行查看 历史
何亚红 提交于 2024-05-02 17:52 . 更新说明

说明

本工程主要用于快速配置本人常用的开发环境。

主要支持以下操作系统:

  • Windows 10及更新版本,架构为x86_64。
  • Ubuntu 22.04,架构为x86_64。
  • Debian 12,架构为x86_64。
  • Deepin V23,架构为x86_64。

对于Windows而言,本人常用MSYS2作为开发环境。

对于Linux而言,本人常使用ubuntu,其余基于Linux内核的操作系统可能只有编译环境,而不包含其它工具(如KiCadGIMPDia等)。

目标环境功能

注意:下述功能仅为目标,并非在所有支持的操作系统有效。

  • 支持基于wxWidgets的GUI程序编译。
  • 支持基于Qt的GUI程序编译。
  • 支持基于opencv的程序编译。
  • 支持基于boost的程序编译。
  • 支持常用的构建系统/构建工具,如make、autotools(automakeautoconf)、ninjacmakesconsxmake
  • 支持常用的Kconfig配置工具,如kconfig-frontends、python-kconfiglib。
  • 支持Qemu测试。
  • 支持arm裸机程序开发(采用arm-none-eabi-gcc工具链)。
  • 支持riscv裸机程序开发(采用riscv64-unknown-elf-gcc工具链)。
  • 支持使用crosstool-ng创建自定义工具链。
  • 支持基于openwrt/buildroot的固件程序编译。
  • 无论是Windows还是Linux,均采用bash作为默认脚本解释器。
  • 支持使用常用的编程语言编译程序,如C、C++、Go等。

下载说明

本工程可通过git工具下载,但需要注意的是,下载前请确认未启用git的autocrlf选项,否则可能导致安装异常。

存储空间

由于是创建开发环境,则会尽可能多地安装软件,故占用空间较大。

Windows推荐200G以上空间(本工程目录),Linux推荐100G以上空间(本工程目录+系统软件包安装目录)。

一般情况下,本工程将下载的软件放入本地程序根路径所在目录,但在某些系统中(如Linux),将使用系统软件包管理工具安装软件,此时下载的软件将占用系统空间。

工具

gitee_com_mirror

备份gitee.com的用户、组织或企业的公开仓库的工具。

可用于在线软件的实现,即在gitee.com上创建一个组织放在线软件包,再使用此工具同步。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

配置

本工具通过文件进行配置,工具根目录为 本地程序根路径/gitee.com,所有文件均需放置此目录。

具体配置文件如下:

  • config.sh:配置文件,一般用于声明变量。
  • user.list:用户列表,每行表示一个用户。
  • org.list:组织列表,每行表示一个组织
  • enterprise.list:企业列表,每行表示一个企业。
config.sh

本配置文件为bash脚本文件,可用于配置一些变量:

  • REPO_USE_SSH:当此变量非空时表示使用ssh备份,需要先手动配置ssh,即确保可使用git clone通过ssh备份。
  • GITEE_COM_ACCESS_TOKEN:gitee.com私人令牌,配置好私人令牌可避免一些速率限制(尤其是多人共享一个公网IP上网时)。

使用

本工具可手动调用gitee_com_mirror启动,如需自动运行,请确保先导入了HEnvBox的配置文件。

除了通过配置用户、组织或企业的列表备份相应文件,也支持用户直接将仓库(非bare仓库,仓库目录不能含有空格)放在工具根目录下,启动工具后会自动更新仓库。

github_com_mirror

备份github.com的用户或组织的公开仓库的工具。

可用于在线软件的实现,即在github.com上创建一个组织放在线软件包,再使用此工具同步。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

配置

本工具通过文件进行配置,工具根目录为 本地程序根路径/github.com,所有文件均需放置此目录。

具体配置文件如下:

  • config.sh:配置文件,一般用于声明变量。
  • user.list:用户列表,每行表示一个用户。
  • org.list:组织列表,每行表示一个组织
config.sh

本配置文件为bash脚本文件,可用于配置一些变量:

  • REPO_USE_SSH:当此变量非空时表示使用ssh备份,需要先手动配置ssh,即确保可使用git clone通过ssh备份。

使用

本工具可手动调用github_com_mirror启动,如需自动运行,请确保先导入了HEnvBox的配置文件。

除了通过配置用户、组织的列表备份相应文件,也支持用户直接将仓库(非bare仓库,仓库目录不能含有空格)放在工具根目录下,启动工具后会自动更新仓库。

注意:由于国内github.com连接不稳定,建议配置好git的代理上网与系统代理上网再使用此工具同步。

gitea_mirror

备份使用gitea自建站的用户或组织的公开仓库的工具。

可用于在线软件的实现,即在使用gitea自建的站点上创建一个组织放在线软件包,再使用此工具同步。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

配置

本工具通过文件进行配置,工具根目录为 本地程序根路径/gitea,所有文件均需放置此目录。

具体配置文件如下:

  • config.sh:配置文件,一般用于声明变量。
  • site.list:站点列表,每行一个站点,每个站点的站点目录为站点URL去掉/并使用_替换:后的字符串,如http://gitea.hyhsystem.cn:3000/的站点目录为http_gitea.hyhsystem.cn_3000。
  • [站点目录]/user.list:用户列表,每行表示一个用户。
  • [站点目录]/org.list:组织列表,每行表示一个组织
config.sh

本配置文件为bash脚本文件,可用于配置一些变量:

  • REPO_USE_SSH:当此变量非空时表示使用ssh备份,需要先手动配置ssh,即确保可使用git clone通过ssh备份。

使用

本工具可手动调用gitea_mirror启动,如需自动运行,请确保先导入了HEnvBox的配置文件。

除了通过配置用户、组织或企业的列表备份相应文件,也支持用户直接将仓库(非bare仓库,仓库目录不能含有空格)放在工具根目录下,启动工具后会自动更新仓库。

ftp_gnu_org_mirror

下载(镜像)ftp.gnu.org的软件。将其下载到本地目录。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

配置

本工具通过文件进行配置,工具根目录为 本地程序根路径/ftp.gnu.org,所有文件均需放置此目录。

具体配置文件如下:

  • config.sh:配置文件,一般用于声明变量。
  • dir.list:需要镜像的目录,每行表示一个,如下载nettle目录则为nettle。
  • file.list:需要镜像的文件,每行表示一个,如下载gcc-13.2.0.tar.gz则为gcc/gcc-13.2.0/gcc-13.2.0.tar.gz。
config.sh

本配置文件为bash脚本文件,可用于配置一些变量:

  • RSYNC_URL:rsync网络镜像URL。

RSYNC_URL一般可选择以下选项:

  • rsync://ftp.gnu.org/gnu/
  • rsync://rsync.mirrors.ustc.edu.cn/gnu/
  • rsync://mirrors.tuna.tsinghua.edu.cn/gnu/

使用

本工具可手动调用ftp_gnu_org_mirror启动,如需自动运行,请确保先导入了HEnvBox的配置文件。

kernel_org_mirror

下载(镜像)kernel.org的软件。将其下载到本地目录。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

配置

本工具通过文件进行配置,工具根目录为 本地程序根路径/kernel.org,所有文件均需放置此目录。

具体配置文件如下:

  • config.sh:配置文件,一般用于声明变量。
  • dir.list:需要镜像的目录,每行表示一个,如下载software目录则为software。
  • file.list:需要镜像的文件,每行表示一个,如下载linux-6.5.tar.xz则为linux/kernel/v6.x/linux-6.5.tar.xz。
config.sh

本配置文件为bash脚本文件,可用于配置一些变量:

  • RSYNC_URL:rsync网络镜像URL。

RSYNC_URL一般可选择以下选项:

  • rsync://rsync.kernel.org/pub/
  • rsync://rsync.mirrors.ustc.edu.cn/kernel.org/

使用

本工具可手动调用kernel_org_mirror启动,如需自动运行,请确保先导入了HEnvBox的配置文件。

crosstool-ng

crosstool-ng是一款交叉编译工具链创建工具

对于比较流行的编译目标(如arm-none-eabi)的交叉编译工具链,各个系统厂商或者MSYS2官方可能会收录相关软件包。

若官方未收录或者期待使用较新的交叉编译工具链,可采用crosstool-ng编译。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 MSYS2 (Windows)

准备工作

  • 必须有较为良好的网络链接,如有条件可配置代理上网。
  • 对于Windows(Windows 10及更新版本)用户而言,MSYS2的crosstool-ng需要目录支持大小写,可在创建目录后使用fsutil file setCaseSensitiveInfo 新创建的目录创建一个支持大小写的NTFS目录后使用该目录编译。

交叉编译工具链(受crosstool-ng支持的)编译流程

  • 准备一个文件夹,文件夹要支持大小写。文件夹所在磁盘剩余空间根据需要编译的目标而确定,推荐Windows上200G,Linux上100G。
  • 使用ct-ng list-samples列出支持的范例,选择合适的范例,如过没有完全匹配的就选择相近的范例。
  • 使用ct-ng menuconfig进行Kconfig配置,此配置可修改生成的编译工具链的元组,如果上一步未选择到合适的范例可在此步选择。此步配置一些路径信息。
  • 使用ct_ng_path_patch修改相关路径,这步的主要目的为将相关目录修改至HEnvBox目录,并非必须。
  • 使用ct-ng build编译,期间可能遇到很多问题,如果是下载问题可尝试多次编译或者配置代理上网。

openwrt_path_patch

修改openwrt或者基于openwrt的工程的目录,有如下功能:

  • 将所有工程的dl目录指向同一个目录,共用下载目录,减少下载量。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)

buildroot_path_patch

修改buildroot或者基于buildroot的工程的目录,有如下功能:

  • 将所有工程的dl目录指向同一个目录,共用下载目录,减少下载量。

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)

cutecom-ng_install

cutecom-ng安装脚本。本安装脚本主要安装个人魔改版cutecom-ng。

源代码链接:

运行环境

本工具需要在已安装好HEnvBox的环境下运行。具体运行环境要求如下:

  • Bash (Linux)
  • MSYS2 UCRT64 (64位Windows)
  • MSYS2 MINGW32 (32位Windows)

EnvCheck

环境检查相关脚本,具体见tools/EnvCheck.

环境变量

本工程主要使用环境变量进行脚本操作:

名称 说明 备注
HENVBOX_ROOT_PATH 根路径 此路径的格式由操作系统决定
HENVBOX_TYPE 类型 对于windows而言,其值固定为win32,对于其它系统而言,其值为uname -s返回的值。
HENVBOX_LOCAL_ROOT_PATH 本地程序根路经 此路径的格式由操作系统决定
HENVBOX_LOCAL_BINDIR_PATH 本地程序根二进制可执行文件路经 此路径的格式由操作系统决定
HENVBOX_LOCAL_ROOT_PATH_UNIX 本地程序根路经,Unix格式 此路径专用于MSYS2
HENVBOX_LOCAL_BINDIR_PATH_UNIX 本地程序根二进制可执行文件路经,Unix格式 此路径专用于MSYS2
HENVBOX_TOOLS_PATH tools路径 此路径的格式由操作系统决定
HENVBOX_TOOLS_TYPE tools类型 对于windows而言,其值可选msys32或msys64。对于其它系统而言,其值为软件包管理工具名称或者默认值common。

注1:本地程序表示需要从网络上下载到本地安装的程序,tools目录为自带工具或者工具安装资源。

注2:所有环境变量在cmd中可使用set查看,在Linux或者MSYS2中可使用env查看。

脚本说明

Windows

  • config.bat:在cmd窗口中使用call config.bat路径 可配置环境。
  • install.bat:安装或者更新软件包,可多次调用,为防止异常不要同时执行多个实例。
  • upgrade.bat:更新软件包,可多次调用。
  • uninstall.bat:卸载安装,主要用于删除右键信息
  • Kconfiglib.bat:配置Kconfig,在首次正确安装后可使用,用于配置可选项,采用python-kconfiglib配置。

Linux

  • config.sh:在bash中使用. config.bat路径 可配置环境。
  • install.sh:安装或者更新软件包,可多次调用,为防止异常不要同时执行多个实例。
  • upgrade.sh:更新软件包,可多次调用。
  • uninstall.sh:卸载安装,主要用于删除.bashrc信息。注意:为保证系统稳定性,不会删除已安装的软件包。
  • menuconfig.sh:配置Kconfig,在首次正确安装后可使用,用于配置可选项,采用kconfig-frontends配置。

安装

Windows

保证目录可写(可参考MSYS2对目录的要求),确保安装路径中没有空格与中文。

以管理员权限执行install.bat,等待安装完成(注意:由于第一次更新pacman可能主动关闭窗口,若第一次安装时间小于10分钟且右键菜单打不开,需要重新运行安装脚本)。

完成后可在目录的右键菜单中找到HEnvBox选项。在需要使用各种MSYS2中的工具时可使用右键菜单打开HEnvBox。

Linux

使用具有管理员权限的账户(可使用sudo提权)执行install.sh,等待安装完成,期间可能要求输入用户密码。

使用

Windows

  • 默认情况下,使用Msys2的UCRT64环境。如需编译32位应用,可使用Msys2的MINGW32环境(由于较多应用停止支持32位,因此此环境可能功能不全)。
  • 如需保持工具的更新,请定期执行更新脚本,若太长时间(如几个月)不更新,可能因为GPG签名过期而无法更新。
  • 若出现Msys2相关子菜单无法打开,有可能是未安装完成,再次执行安装脚本即可。
  • 对于Windows11而言,右键菜单与之前版本不一致,需要按住Shift键再使用右键打开菜单。

Linux

对于Linux而言,当安装完成后,本工程会通过用户.bashrc文件自动加载,因此用户直接打开终端即可使用相关工具。

推荐资源

软件

1
https://gitee.com/HEYAHONG/HEnvBox.git
git@gitee.com:HEYAHONG/HEnvBox.git
HEYAHONG
HEnvBox
HEnvBox
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891