# scripts **Repository Path**: my919/scripts ## Basic Information - **Project Name**: scripts - **Description**: 个人环境一键搭建脚本 - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-24 - **Last Updated**: 2026-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # scripts 个人环境一键搭建脚本,支持 **Linux**(.sh)与 **Windows**(PowerShell `.ps1`),适用于 CentOS Stream / RHEL 系及 Windows 10+。Linux 脚本使用 **sh** 解释器,多数安装到用户目录**无需 sudo**(如 Go、Gradle、Maven、Rust、Node、Vue3、Hexo、FFmpeg 等);数据库/中间件类脚本仍可能需 root。部分脚本整合自 [gitee.com/my919/deploy](https://gitee.com/my919/deploy)。 --- ## 授权执行脚本 首次使用前,请为脚本添加可执行权限: ```bash # 一键授权所有脚本(Linux) chmod +x src/python/python.sh src/jdk/jdk.sh src/golang/golang.sh src/rust/rust.sh src/ffmpeg/ffmpeg.sh src/node/node.sh src/git/git.sh src/openjdk/openjdk.sh src/hexo/hexo.sh src/vue3/vue3.sh src/emqx/emqx.sh chmod +x src/mvn/mvn.sh src/gradle/gradle.sh src/zk/zk.sh src/kafka/kafka.sh chmod +x src/mysql/mysql.sh src/mongodb/mongodb.sh src/pgsql/pgsql.sh src/redis/redis.sh src/clickhouse/clickhouse.sh chmod +x src/solr/solr.sh src/pulsar/pulsar.sh src/openclaw/openclaw.sh src/ollama/ollama.sh src/k8s/k8s.sh chmod +x src/mac/*.sh ``` 或按需单独授权,例如:`chmod +x src/golang/golang.sh` --- ## 目录结构 所有安装脚本位于 **`src/`** 目录下(按组件分子目录)。 | 目录 | 说明 | Linux | Windows | |------|------|--------|--------| | `src/python/` | Python | python.sh | python.ps1 | | `src/jdk/` | Oracle JDK | jdk.sh | jdk.ps1 | | `src/golang/` | Go | golang.sh | golang.ps1 | | `src/rust/` | Rust(rustup) | rust.sh | rust.ps1 | | `src/ffmpeg/` | FFmpeg 音视频处理 | ffmpeg.sh | ffmpeg.ps1 | | `src/node/` | Node.js(nvm 管理) | node.sh | node.ps1 | | `src/git/` | Git(源码编译 / Windows 安装包) | git.sh | git.ps1 | | `src/openjdk/` | OpenJDK(Eclipse Temurin) | openjdk.sh | openjdk.ps1 | | `src/hexo/` | Hexo 博客框架 | hexo.sh | hexo.ps1 | | `src/vue3/` | Vue3 开发工具链(Vue CLI、Vite、create-vue) | vue3.sh | vue3.ps1 | | `src/mvn/` | Apache Maven | mvn.sh | mvn.ps1 | | `src/gradle/` | Gradle | gradle.sh | gradle.ps1 | | `src/zk/` | ZooKeeper | zk.sh | zk.ps1 | | `src/kafka/` | Apache Kafka(依赖 ZK) | kafka.sh | kafka.ps1 | | `src/emqx/` | EMQX MQTT Broker | emqx.sh | emqx.ps1 | | `src/mysql/` | MySQL | mysql.sh | mysql.ps1 | | `src/mongodb/` | MongoDB | mongodb.sh | mongodb.ps1 | | `src/pgsql/` | PostgreSQL | pgsql.sh | pgsql.ps1 | | `src/redis/` | Redis | redis.sh | redis.ps1 | | `src/clickhouse/` | ClickHouse 列式数据库 | clickhouse.sh | clickhouse.ps1 | | `src/solr/` | Apache Solr | solr.sh | solr.ps1 | | `src/pulsar/` | Apache Pulsar | pulsar.sh | pulsar.ps1 | | `src/openclaw/` | OpenClaw(AI 编程助手) | openclaw.sh | openclaw.ps1 | | `src/ollama/` | Ollama(本地大模型运行时) | ollama.sh | ollama.ps1 | | `src/k8s/` | Kubernetes(基于徐晓伟 k8s.sh) | k8s.sh | k8s.ps1 | | `src/mac/` | macOS 部署脚本(来自 deploy) | git.sh, golang.sh 等 | - | --- ## 通用选项 多数脚本支持以下选项(数据库类为 `--install-standalone` / `--install-cluster`): | 选项 | 说明 | |------|------| | `--help` / `-h` | 显示帮助与当前配置 | | `--install` / `-i` | 安装(多数无需 sudo,数据库/中间件类可能需 root) | | `--uninstall` / `-u` | 卸载 | 数据库与消息队列(MySQL / MongoDB / PostgreSQL / Redis / Solr / Pulsar)额外支持: - `--install-standalone`:单机 - `--install-cluster`:集群(同机多端口或主从/副本集) --- ## 脚本列表与版本 | 脚本 | 说明 | 版本 | |------|------|------| | **运行环境** | | | | `src/python/python.sh` `.ps1` | Python,pip + 阿里云镜像 | 3.14.3 | | `src/jdk/jdk.sh` `.ps1` | Oracle JDK,JAVA_HOME | 23.0.2 | | `src/golang/golang.sh` `.ps1` | Go,阿里云镜像 | 1.26.1 | | `src/rust/rust.sh` `.ps1` | Rust(rustup + stable,默认 USTC 镜像) | rustup latest | | `src/ffmpeg/ffmpeg.sh` `.ps1` | FFmpeg 音视频处理(系统包或 BtbN 静态版) | BtbN latest | | `src/node/node.sh` `.ps1` | Node.js(nvm),npm 镜像 | nvm 0.40.4 / 1.2.2 | | `src/git/git.sh` `.ps1` | Git,kernel.org 源码 / for Windows | 2.53.0 | | `src/openjdk/openjdk.sh` `.ps1` | OpenJDK LTS(Eclipse Temurin) | 21 | | `src/hexo/hexo.sh` `.ps1` | Hexo 博客框架(依赖 Node.js) | npm latest | | `src/vue3/vue3.sh` `.ps1` | Vue3 工具链(Vue CLI、Vite、create-vue) | npm latest | | **构建工具** | | | | `src/mvn/mvn.sh` `.ps1` | Maven(安装后自动写入 ~/.bashrc 等) | 3.9.14 | | `src/gradle/gradle.sh` `.ps1` | Gradle(腾讯云镜像、sha256 校验,安装后自动写入环境) | 9.4.0 | | **中间件** | | | | `src/zk/zk.sh` `.ps1` | ZooKeeper 单机(默认华为云镜像,可设 ZK_MIRROR) | 3.9.4 | | `src/kafka/kafka.sh` `.ps1` | Kafka 单机(依赖 ZK,默认阿里云镜像) | 3.9.2 | | `src/emqx/emqx.sh` `.ps1` | EMQX MQTT Broker(Windows 用 Docker) | 6.1.1 | | **数据库** | | | | `src/mysql/mysql.sh` `.ps1` | MySQL 单机/主从集群 | 8.4.8 | | `src/mongodb/mongodb.sh` `.ps1` | MongoDB 单机/副本集 | 8.2.5 | | `src/pgsql/pgsql.sh` `.ps1` | PostgreSQL 单机/主从 | 系统包 / 18 | | `src/redis/redis.sh` `.ps1` | Redis 单机/Cluster(6 节点) | 7.4.8 / 5.0.14.1 | | `src/clickhouse/clickhouse.sh` `.ps1` | ClickHouse 单机(Linux tgz 安装;Windows 用 Docker) | 23.8.15.43 | | **搜索与消息** | | | | `src/solr/solr.sh` `.ps1` | Apache Solr 单机/SolrCloud(默认阿里云镜像) | 10.0.0 | | `src/pulsar/pulsar.sh` `.ps1` | Apache Pulsar 单机/集群 | 4.1.3 | | **工具** | | | | `src/openclaw/openclaw.sh` `.ps1` | OpenClaw(AI 编程助手,npm 安装) | npm latest | | `src/ollama/ollama.sh` `.ps1` | Ollama(官方 install 脚本 / winget 卸载) | ollama.com latest | | **容器编排** | | | | `src/k8s/k8s.sh` | Kubernetes 单机/集群(standalone/cluster/node,含 containerd、Calico 等) | v1.35.2 | | `src/k8s/k8s.ps1` | kubectl 客户端(Windows) | 1.35.2 | --- ## 安装与使用 ### Linux - 多数脚本无需 root,可直接执行;需 root 的(如 JDK 装到 /usr/local、Python 编译、数据库服务)请加 `sudo`。 - 建议使用 `sh 脚本名 --install` 以统一用 sh 解释器运行。 ```bash # 运行环境(Go/Gradle/Maven/Rust/Node/Vue3/Hexo/FFmpeg 等无需 sudo) sh src/golang/golang.sh --install sh src/gradle/gradle.sh --install sh src/mvn/mvn.sh --install sh src/rust/rust.sh --install sh src/node/node.sh --install sh src/vue3/vue3.sh --install sh src/hexo/hexo.sh --install sh src/ffmpeg/ffmpeg.sh --install # 以下需 root 或安装到系统目录 sudo ./src/python/python.sh --install sudo ./src/jdk/jdk.sh --install sudo ./src/git/git.sh --install sudo ./src/openjdk/openjdk.sh --install # 中间件(Kafka 需先装 ZK) sudo ./src/zk/zk.sh --install sudo ./src/kafka/kafka.sh --install sudo ./src/emqx/emqx.sh --install # 数据库(单机 / 集群) sudo ./src/mysql/mysql.sh --install-standalone sudo ./src/mysql/mysql.sh --install-cluster sudo ./src/mongodb/mongodb.sh --install-standalone sudo ./src/pgsql/pgsql.sh --install-standalone sudo ./src/redis/redis.sh --install-standalone sudo ./src/clickhouse/clickhouse.sh --install-standalone # Solr / Pulsar(需 JDK;Pulsar 集群需先启 ZK) sudo ./src/solr/solr.sh --install-standalone sudo ./src/pulsar/pulsar.sh --install-standalone # OpenClaw(需 Node.js 22+) ./src/openclaw/openclaw.sh --install # Ollama(本地大模型;官方脚本,安装一般需能 sudo) sh src/ollama/ollama.sh --install # 安装并拉取默认免费模型(qwen2.5:7b / llama3.1:8b / glm4:9b,可用 OLLAMA_PULL_MODELS 改列表) sh src/ollama/ollama.sh --install-with-models # 手动下载 ollama-linux-amd64.tar.zst 后离线安装(见 sh src/ollama/ollama.sh --help) sudo sh src/ollama/ollama.sh --install-from /path/to/ollama-linux-amd64.tar.zst # Kubernetes(徐晓伟 k8s.sh,单机 standalone / 集群 cluster / 节点 node) sudo ./src/k8s/k8s.sh standalone ``` ### Windows - 使用 **PowerShell 7**(`pwsh`)或 **Windows PowerShell 5.1**。在仓库根目录执行,例如: `pwsh -File .\src\golang\golang.ps1 --help` 若提示「无法加载,因为在此系统上禁止运行脚本」,请加:`-ExecutionPolicy Bypass`(仅当前进程)。 - **编码**:`.ps1` 为 **UTF-8(带 BOM)**,以便 **Windows PowerShell 5.1** 在中文区域下正确解析(无 BOM 时易被当成系统 ANSI 导致整脚本报错)。 - **勿在 Git Bash 中直接跑 `.ps1`**(应使用上述 `pwsh -File`);在 **WSL** 请用对应的 `.sh` 脚本。 - 各 **`*.ps1` 自包含**:原公共逻辑(路径、下载、PATH 等)已内联在**同一文件顶部**;无 `src\windows` 目录,单文件即可 `pwsh -File` 执行。若需统一调整公共函数,请批量编辑各 `.ps1` 或自行抽出共享模块。 - 依赖 **curl.exe**(Windows 10+ 通常自带)、**tar.exe**(解压 tgz)、系统 **PowerShell**;JDK/ZK/Kafka/Solr/Pulsar 等需先配置 **`JAVA_HOME`**。 - 安装根目录由 **`APP_ROOT`** 控制,默认 **`C:\app`**。PowerShell 示例:`$env:APP_ROOT='E:\tools'` 后再执行脚本。 ```powershell pwsh -File .\src\python\python.ps1 --install pwsh -File .\src\jdk\jdk.ps1 --install pwsh -File .\src\golang\golang.ps1 --install pwsh -File .\src\rust\rust.ps1 --install pwsh -File .\src\ffmpeg\ffmpeg.ps1 --install pwsh -File .\src\node\node.ps1 --install pwsh -File .\src\git\git.ps1 --install pwsh -File .\src\openjdk\openjdk.ps1 --install pwsh -File .\src\hexo\hexo.ps1 --install pwsh -File .\src\vue3\vue3.ps1 --install pwsh -File .\src\mvn\mvn.ps1 --install pwsh -File .\src\gradle\gradle.ps1 --install pwsh -File .\src\zk\zk.ps1 --install pwsh -File .\src\kafka\kafka.ps1 --install pwsh -File .\src\emqx\emqx.ps1 --install pwsh -File .\src\mysql\mysql.ps1 --install-standalone pwsh -File .\src\mongodb\mongodb.ps1 --install-standalone pwsh -File .\src\pgsql\pgsql.ps1 --install-standalone pwsh -File .\src\redis\redis.ps1 --install-standalone pwsh -File .\src\clickhouse\clickhouse.ps1 --install-standalone pwsh -File .\src\solr\solr.ps1 --install-standalone pwsh -File .\src\pulsar\pulsar.ps1 --install-standalone pwsh -File .\src\openclaw\openclaw.ps1 --install pwsh -File .\src\ollama\ollama.ps1 --install pwsh -File .\src\ollama\ollama.ps1 --install-with-models pwsh -File .\src\k8s\k8s.ps1 --install ``` **从 HTTP 拉取并执行(可选,仅可信 URL)**:`(irm …).Content | Invoke-Expression` **无法把 `--install`、`--help` 等传给脚本**(脚本里的 `$args` 不会带上),因此要带参数时必须先 **下载到临时文件**,再用 **`pwsh -File` / `powershell -File`** 执行。 **不 clone 整库**:同上,换 raw 地址即可;无需额外目录。 **本仓库地址**([Gitee 浏览 `golang.ps1`](https://gitee.com/my919/scripts/blob/master/src/golang/golang.ps1)): - **Raw 直链**:`https://gitee.com/my919/scripts/raw/master/src/golang/golang.ps1` - **raw 根**(拼其它脚本):`https://gitee.com/my919/scripts/raw/master` → `.../src/<组件>/<组件>.ps1` 多行示例(在已打开的 PowerShell 里粘贴;把 `--install` 改成 `--help` 等即可): ```powershell $u = 'https://gitee.com/my919/scripts/raw/master/src/golang/golang.ps1' $p = Join-Path $env:TEMP ('gitee-' + [guid]::NewGuid().ToString('n') + '.ps1') Invoke-WebRequest $u -OutFile $p -UseBasicParsing $pwsh = Get-Command pwsh -ErrorAction SilentlyContinue $exe = if ($pwsh) { $pwsh.Source } else { 'powershell.exe' } & $exe -NoProfile -ExecutionPolicy Bypass -File $p --install Remove-Item $p -Force -ErrorAction SilentlyContinue ``` 等价**一行**(从 **cmd** 或「运行」调用时常见;末尾 `-File $p` 后的参数按脚本修改): ```powershell powershell -ExecutionPolicy Bypass -Command "& { $u='https://gitee.com/my919/scripts/raw/master/src/golang/golang.ps1'; $p=Join-Path $env:TEMP ('gitee-'+[guid]::NewGuid().ToString('n')+'.ps1'); Invoke-WebRequest $u -OutFile $p -UseBasicParsing; $c=Get-Command pwsh -ErrorAction SilentlyContinue; $e=if($c){$c.Source}else{'powershell.exe'}; & $e -NoProfile -ExecutionPolicy Bypass -File $p --install; Remove-Item $p -Force -ErrorAction SilentlyContinue }" ``` **`node.ps1` 带第二参数(版本)**:把上面 `-File $p --install` 换成 `-File $p --install lts`(多行、一行两处同理)。 若脚本**完全不需要参数**,仍可用: `powershell -ExecutionPolicy Bypass -Command "(Invoke-WebRequest 'https://gitee.com/my919/scripts/raw/master/src/golang/golang.ps1' -UseBasicParsing).Content | Invoke-Expression"`。需要 **`--help`、`--install`** 等任意参数时,请用上面的 **`-File`** 方式。 ### macOS - 使用 `src/mac/` 目录下的脚本,需先设置 `APP_ROOT`(如 `export APP_ROOT=/usr/local`) - 依赖 Homebrew(脚本会自动安装) ```bash export APP_ROOT=/usr/local ./src/mac/git.sh ./src/mac/golang.sh ./src/mac/nodejs.sh ./src/mac/openjdk.sh ./src/mac/python.sh ./src/mac/hexo.sh ``` ### 环境变量 - **Maven / Gradle**:安装时会自动将 `source 安装目录/env.sh` 追加到 `~/.bashrc`、`~/.zshrc` 或 `~/.profile`(若存在),新开终端即可使用 `mvn`、`gradle`;当前终端安装完成后也已加载。 - **Go**:安装到 `~/.local/go`,需手动将 `source ~/.local/go/env.sh` 加入 shell 配置,或安装后执行一次。 - **Rust / Node**:Rust 安装到 `~/.cargo`,Node 为 nvm,安装脚本会提示执行 `source ~/.cargo/env` 或 `source ~/.nvm/nvm.sh`;**当前终端立即使用 Node 建议**:`source ./src/node/node.sh --install`。 - **其他**:按脚本末尾提示执行 `source` 或重新打开终端;Windows 请新开 **PowerShell** 以加载用户环境变量。 --- ## 依赖关系 | 组件 | 依赖 | |------|------| | Maven / Gradle / ZK / Kafka / Solr / Pulsar | **JDK**(建议先执行 `src/jdk/jdk.sh` 或 `src/jdk/jdk.ps1`) | | Kafka | **ZooKeeper**(可先 `src/zk/zk.sh --install`) | | EMQX | 无(Linux 二进制;Windows 需 Docker) | | Pulsar 集群 | **ZooKeeper**(可先 `src/zk/zk.sh --install`,并设置 `ZOOKEEPER_SERVERS`) | | OpenClaw | **Node.js 22+**(可先 `src/node/node.sh --install` 或 `src/node/node.ps1 --install`) | | Ollama | 无(Linux 需 curl;官方脚本会配置 systemd;Windows 需网络拉取 install.ps1) | | Hexo | **Node.js**(可先 `src/node/node.sh --install`) | | Vue3 | **Node.js**(可先 `src/node/node.sh --install`) | --- ## CPU 架构适配 脚本会自动检测 CPU 架构并下载对应二进制: | 架构 | Linux (uname -m) | Windows (%PROCESSOR_ARCHITECTURE%) | |------|------------------|------------------------------------| | x86_64 / amd64 | x86_64 | AMD64 | | ARM64 | aarch64, arm64 | ARM64 | 支持架构的脚本:golang、jdk、openjdk、python、mysql、mongodb、git、k8s 等。PostgreSQL Windows 目前仅 x64(EDB 未提供 ARM64)。 ## 使用说明 - **权限与路径**:Go、Gradle、Maven、Rust、Node、Vue3、Hexo、FFmpeg 等安装到用户目录(如 `~/.local/gradle`、`~/.local/maven`、`~/.local/go`),无需 root;JDK、Python、Git、数据库/中间件等仍可能需 `sudo`。各脚本顶部有可配置变量(如 `INSTALL_DIR`、`GRADLE_MIRROR`),按需修改。 - **镜像与加速**:Gradle 默认腾讯云(`GRADLE_MIRROR`);Rust 默认 USTC(`RUSTUP_DIST_SERVER`);ZooKeeper 默认华为云(`ZK_MIRROR`);Kafka、Solr 默认阿里云(`KAFKA_MIRROR`、`SOLR_MIRROR`);Node/npm 使用 npmmirror。 - **路径与端口**:数据库/中间件脚本的安装目录、端口等见脚本内变量,按需修改。 - **集群**:MySQL/MongoDB/PostgreSQL/Redis/Solr/Pulsar 支持 `--install-cluster`;Linux 上多为同机多端口,Windows 可参考 Linux 或使用 Docker。 - **OpenClaw**:安装后需配置 AI 提供商 API Key(如 OpenAI、Anthropic、Google 等)。 - **Ollama**:默认 API 为 `http://127.0.0.1:11434`;拉取模型:`ollama pull <模型名>`。Linux 若 `ollama.com` 下载慢:`OLLAMA_FAST_MIRROR=1 sh src/ollama/ollama.sh --install`(依次试 ghproxy.cn / ghproxy.net;若镜像返回 403 会自动改走官方)。也可设置 `OLLAMA_DOWNLOAD_MIRROR`(见 `sh src/ollama/ollama.sh --help`)。 --- ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request