1 Star 0 Fork 0

何亚红 / HEnvBox

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

说明

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

主要支持以下操作系统:

  • 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作为默认脚本解释器。

下载说明

本工程可通过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文件自动加载,因此用户直接打开终端即可使用相关工具。

推荐资源

软件

MIT License Copyright (c) 2023 何亚红 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

本人常用的开发环境。 展开 收起
Shell 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/HEYAHONG/HEnvBox.git
git@gitee.com:HEYAHONG/HEnvBox.git
HEYAHONG
HEnvBox
HEnvBox
master

搜索帮助