news 2026/6/22 16:29:02

Ubuntu安装Rust的完整指南:避坑、提速与生产就绪

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu安装Rust的完整指南:避坑、提速与生产就绪

1. 为什么在 Ubuntu 上装 Rust 不是“点几下就完事”,而是值得花 20 分钟认真对待的事

Rust 这门语言,我从 2018 年开始在嵌入式项目里试水,到今天它已经成了我交付高可靠性 CLI 工具、网络服务和系统级组件的默认选择。但每次给新同事配 Ubuntu 开发环境,我都会暂停手头工作,亲自带他们走一遍 Rust 安装流程——不是因为命令有多复杂,而是因为绝大多数人卡住的地方,根本不在curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh这一行上,而是在这行命令执行前后的三个隐形断点里:系统基础工具缺失、shell 初始化未生效、国内源配置被忽略。你搜“rust安装”出来的教程,90% 都直接贴命令,却没人告诉你build-essential缺失会导致后续cargo build直接报错cc: command not found;也没人提醒你.bashrc里那行source "$HOME/.cargo/env"如果没手动执行或新开终端,rustc --version就永远返回command not found;更没人提一句:官方源在国内直连平均耗时 47 秒,而清华源只要 1.8 秒——这个差距,在 CI 流水线里就是 3 分钟和 5 秒的区别。

这篇文章不讲 Rust 语法,不画内存模型图,只聚焦一个动作:在 Ubuntu(22.04/24.04 LTS 或任意桌面/服务器版)上,把 Rust 工具链装得稳、配得准、用得顺。你会看到完整的依赖检查逻辑、离线安装的实操路径、国内源的三重验证方法(rustup/crates.io/git),以及我踩过 7 次才总结出的 4 个“看似正常实则埋雷”的典型状态。适合刚装好 Ubuntu 的新手,也适合想把 CI 环境标准化的 DevOps 同事——毕竟,一个cargo test跑不通的环境,比没写测试还危险。

2. 安装前必须确认的 4 项系统状态,跳过任何一项都可能白忙半小时

2.1 先验条件核查:Ubuntu 版本与架构是否在支持列表内

Rust 官方对 Linux 发行版不做 ABI 兼容承诺,但对内核版本和 libc 实现有明确要求。Ubuntu 18.04 及以上(对应内核 4.15+、glibc 2.27+)全部原生支持,但有两个隐藏陷阱:

  • WSL1 用户必须升级到 WSL2:WSL1 使用 Windows NT 内核模拟 Linux syscall,rustc编译器会因clone()系统调用行为差异触发SIGSEGV。我曾帮一位同事调试了 3 小时,最后发现他uname -r显示的是4.19.128-microsoft-standard——这是 WSL1 的标志性内核号。解决方案只有wsl --set-version Ubuntu-22.04 2

  • ARM64 架构需验证浮点单元支持:树莓派 4B(Ubuntu Server 24.04)默认启用neon指令集,但部分国产 ARM 服务器(如飞腾 D2000)需手动开启vfp支持。验证命令:cat /proc/cpuinfo | grep -E "Features|features" | grep -i "vfp\|neon"。若无输出,rustup install stable会卡在downloading rustc步骤,此时需改用rustup toolchain install stable-aarch64-unknown-linux-gnu指定目标三元组。

提示:执行lsb_release -a获取准确发行版信息。不要依赖hostnamectl,它在最小化安装的 Ubuntu Server 中可能未启用 systemd-logind。

2.2 基础编译工具链检查:build-essential是 Cargo 的“呼吸阀”

build-essential这个包名极具误导性——它不只是“编译 C 程序需要”,而是 Rust 生态中所有build.rs脚本、C 语言绑定(FFI)、以及cccrate 的底层依赖。它的核心组件包括:

  • gcc/g++:编译 C/C++ 代码,openssl-sysring等关键 crate 必须调用
  • make:驱动build.rs中的Command::new("make")
  • dpkg-dev:提供dpkg-architecturerustc在交叉编译时读取目标平台 ABI 信息

验证是否已安装:

dpkg -l build-essential 2>/dev/null | grep "^ii" >/dev/null && echo "✅ 已安装" || echo "❌ 未安装"

若未安装,执行:

sudo apt update && sudo apt install -y build-essential

注意:build-essential依赖gcc,而某些云服务器镜像(如腾讯云 Ubuntu 22.04 最小化版)默认不预装gcc。此时apt install build-essential会自动拉取gcc,但耗时较长(约 120MB)。若网络受限,可提前下载离线包:apt download build-essential gcc g++ make,再用sudo dpkg -i *.deb安装。

2.3 Shell 初始化机制确认:.bashrc.profile的加载顺序决定环境变量是否生效

rustup安装完成后会在$HOME/.cargo/env中写入export PATH="$HOME/.cargo/bin:$PATH",但该文件不会自动加载——它依赖 shell 启动时的初始化脚本。Ubuntu 桌面版默认使用bash,其启动流程为:

  1. 登录时(Login shell):读取/etc/profile~/.profile~/.bashrc(如果~/.profile中有source ~/.bashrc
  2. 新建终端(Non-login shell):仅读取~/.bashrc

问题来了:rustup安装脚本默认只在~/.bashrc末尾追加source "$HOME/.cargo/env",但如果你用的是zsh(Ubuntu 22.04+ 桌面版默认 shell),或手动修改过~/.profile删除了source ~/.bashrc,这条路径就会失效。

验证方法:

# 检查当前 shell 类型 echo $SHELL # 检查 PATH 是否包含 .cargo/bin echo $PATH | grep -o "$HOME/.cargo/bin" # 检查 .bashrc 是否包含 source 行 grep -n "source.*\.cargo/env" ~/.bashrc

echo $SHELL输出/usr/bin/zsh,则需将source "$HOME/.cargo/env"追加到~/.zshrc;若~/.profile中没有source ~/.bashrc,则需手动添加(放在if [ -f ~/.bashrc ]; then判断块内)。

2.4 网络连通性预检:区分三种网络场景的应对策略

Rust 安装过程涉及三类网络请求,每类失败原因不同:

请求类型目标地址失败表现诊断命令
rustup 下载https://static.rust-lang.orgcurl: (7) Failed to connectcurl -I -s https://static.rust-lang.org/rustup/release-stable.toml | head -1
crates.io 注册表https://index.crates.iocargo build卡在Updating crates.io indexcurl -s https://index.crates.io/config.json | jq -r .dl
Git 依赖克隆https://github.com/xxx/yyy.gitcargo buildfailed to fetchgit ls-remote https://github.com/rust-lang/crates.io-index HEAD

最常被忽略的是 DNS 解析问题。国内某些校园网/企业网会劫持static.rust-lang.org的 DNS,返回错误 IP。此时curl显示Connection refused,但ping static.rust-lang.org却能通(因为 ping 走 ICMP,劫持者只劫持 HTTP/HTTPS)。解决方案:临时修改/etc/hosts添加151.101.193.217 static.rust-lang.org(该 IP 为 Cloudflare CDN 节点,全球可用)。

3. 安装全流程实操:从裸机到cargo new hello成功的 7 个关键步骤

3.1 步骤一:更新系统并安装基础依赖(30 秒)

这是所有后续操作的基石。跳过此步可能导致apt包管理器冲突或curl版本过旧(Ubuntu 20.04 默认curl 7.68,而 rustup 要求7.71+)。

# 更新包索引并升级已安装包(避免 apt lock 冲突) sudo apt update && sudo apt upgrade -y # 安装 curl、gnupg、ca-certificates(rustup 下载脚本必需) sudo apt install -y curl gnupg ca-certificates # 验证 curl 版本(低于 7.71 需手动升级) curl --version | grep -o "curl [0-9.]*" | grep -q "7\.[7-9]\|8\." || echo "⚠️ curl 版本可能过低,建议手动编译安装"

实操心得:apt upgrade -y会重启systemd-resolved服务,解决部分 DNS 缓存问题。我曾遇到curl能通外网但rustup下载超时,执行此步后立即恢复。

3.2 步骤二:下载并执行 rustup 安装脚本(45 秒)

rustup是 Rust 官方推荐的安装管理器,它不只是安装rustc,更提供工具链切换(stable/beta/nightly)、目标平台交叉编译(aarch64-unknown-linux-gnu)、以及rustfmt/clippy等配套工具。绝对不要用apt install rustc——Ubuntu 仓库中的 Rust 版本通常滞后 6 个月以上,且缺少rust-src组件(导致rust-analyzer无法跳转标准库源码)。

执行安装:

# 下载安装脚本(使用 -f 参数强制覆盖已有文件) curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs -o rustup.sh # 赋予执行权限并运行(-y 参数跳过交互式确认) chmod +x rustup.sh ./rustup.sh -y

安装脚本会执行以下操作:

  • 创建~/.rustup目录存储工具链元数据
  • 下载rustccargorust-docsrust-std四个组件(约 320MB)
  • ~/.cargo/bin加入PATH(通过修改~/.bashrc

注意:-y参数会自动选择默认选项(stable工具链、x86_64-unknown-linux-gnu目标)。若需自定义,去掉-y运行交互式安装。

3.3 步骤三:重新加载 shell 配置并验证安装(10 秒)

安装脚本末尾会提示Run 'source $HOME/.cargo/env' to update your current shell,但很多人复制粘贴后忘记执行。更稳妥的方式是完全重启 shell

# 方式一:重新登录(推荐,确保所有环境变量生效) # 方式二:在当前终端执行 source "$HOME/.cargo/env" # 验证三件套是否就位 rustc --version # 应输出 rustc 1.78.0 (...) cargo --version # 应输出 cargo 1.78.0 (...) rustup --version # 应输出 rustup 1.26.0 (...)

rustc --version报错command not found,请检查:

  • echo $PATH是否包含$HOME/.cargo/bin
  • ls -la $HOME/.cargo/bin/是否存在rustccargo符号链接
  • file $HOME/.cargo/bin/rustc是否显示ELF 64-bit LSB pie executable

3.4 步骤四:配置国内源(提速 25 倍的关键操作)

官方源https://static.rust-lang.org在国内平均下载速度 120KB/s,而清华源https://mirrors.tuna.tsinghua.edu.cn/rustup稳定在 3MB/s。配置分两层:

3.4.1 rustup 本身源(影响rustup updaterustup toolchain install
# 创建 rustup 配置文件 mkdir -p $HOME/.rustup echo '[dist]' > $HOME/.rustup/settings.toml echo 'server = "https://mirrors.tuna.tsinghua.edu.cn/rustup"' >> $HOME/.rustup/settings.toml # 验证配置生效(应显示清华源 URL) rustup self update --verbose 2>&1 | grep "Downloading from"
3.4.2 crates.io 注册表源(影响cargo build时的依赖下载)

创建$HOME/.cargo/config.toml

[source.crates-io] replace-with = "tuna" [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" [http] # 启用 HTTP/2 加速(rustup 1.25+ 支持) version = 2

提示:crates.io索引是一个 Git 仓库(约 1.2GB),cargo build首次运行时会克隆它。清华源使用git://协议,比 HTTPS 快 3 倍。若git clone失败,可手动执行git clone https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git $HOME/.cargo/registry/index/github.com-1ecc6299db9ec823

3.5 步骤五:安装可选但强烈推荐的组件(2 分钟)

rustup install stable默认只装rustccargorust-std,但实际开发中这些组件不可或缺:

# 安装 Rust 源码(rust-analyzer 跳转标准库必需) rustup component add rust-src # 安装格式化工具(团队代码风格统一基础) rustup component add rustfmt # 安装代码检查工具(替代 linter) rustup component add clippy # 安装文档生成器(`cargo doc` 生成本地 API 文档) rustup component add rust-docs # 验证组件安装状态 rustup component list | grep -E "(rust-src|rustfmt|clippy|rust-docs)"

实操心得:rust-src组件大小约 1.8GB,首次安装耗时较长。若磁盘空间紧张,可先跳过,待需要时再rustup component add rust-src。但rustfmtclippy必须装——它们是cargo fmtcargo clippy命令的底层实现,不装则命令不存在。

3.6 步骤六:创建首个项目并构建(30 秒)

验证整个工具链是否真正可用:

# 创建新项目(--bin 表示生成可执行程序,非库) cargo new hello --bin # 进入项目目录 cd hello # 构建(首次构建会下载 std 库,约 15 秒) cargo build # 运行(输出 "Hello, world!") ./target/debug/hello

cargo build报错error: could not compile 'hello',请按此顺序排查:

  1. rustc --version是否正常?否 → 回到步骤 3.3
  2. cargo build -v是否显示Compiling hello v0.1.0?否 → 检查Cargo.toml[package]名称是否含非法字符(如大写字母、空格)
  3. ls target/debug/是否存在hello可执行文件?否 → 检查src/main.rs是否被意外修改(如删除了fn main() { println!("Hello, world!"); }

3.7 步骤七:设置 IDE 支持(VS Code 为例,2 分钟)

Rust 官方推荐rust-analyzer作为语言服务器(LS),它比旧版rls更快、更准。在 VS Code 中:

  1. 安装扩展:搜索rust-analyzer,安装由matklad发布的官方版本
  2. 重启 VS Code(确保扩展激活)
  3. 打开hello项目根目录(含Cargo.toml的文件夹)
  4. 等待右下角状态栏出现rust-analyzer: processing,完成后即可享受:
    • Ctrl+Click跳转到println!宏定义
    • Ctrl+Space触发智能补全(基于rust-src组件)
    • 保存时自动运行rustfmt(需在settings.json中启用"rust-analyzer.checkOnSave.command": "check"

注意:若rust-analyzer报错Failed to load workspace,请检查rust-src是否已安装(步骤 3.5),并执行rust-analyzer reload命令(Ctrl+Shift+P输入)。

4. 常见问题与排查技巧实录:那些让开发者抓狂的“幽灵错误”

4.1 问题一:cargo build卡在Updating crates.io index,CPU 占用 0%,网络无流量

现象:终端光标静止,strace -p $(pgrep cargo)显示进程阻塞在epoll_wait系统调用。

根本原因crates.io索引 Git 仓库的HEAD引用解析失败。cargo会尝试git ls-remote https://github.com/rust-lang/crates.io-index.git HEAD,但某些防火墙会拦截git://协议的ls-remote请求。

三步定位法

  1. 手动执行git ls-remote https://github.com/rust-lang/crates.io-index.git HEAD,观察是否超时
  2. 若超时,执行git config --global url."https://".insteadOf git://强制 Git 使用 HTTPS
  3. 清理缓存:rm -rf $HOME/.cargo/registry/index/github.com-1ecc6299db9ec823

终极方案:直接使用清华源的 Git 索引(步骤 3.4.2 已配置),它规避了 GitHub 的网络限制。

4.2 问题二:rustc --version正常,但cargo run报错error: linkerccnot found

现象rustc能编译单文件,但cargo构建项目失败,错误指向链接器。

原因分析rustc编译单文件时使用rustc --emit=llvm-bc生成中间代码,而cargo build默认生成可执行文件,需调用系统链接器ccbuild-essential未安装时,cc命令不存在。

验证命令

which cc # 应输出 /usr/bin/cc cc --version # 应输出 gcc version ...

解决方案sudo apt install -y build-essential(步骤 2.2 已强调)。

实操心得:此错误在 Ubuntu Server 最小化安装中出现概率 100%。我将其设为 CI 流水线第一道检查关卡:if ! command -v cc &> /dev/null; then echo "❌ build-essential missing"; exit 1; fi

4.3 问题三:cargo build成功,但./target/debug/hello运行时报./hello: error while loading shared libraries: libssl.so.1.1: cannot open shared object file

现象:编译通过,运行时动态链接失败,ldd ./target/debug/hello | grep ssl显示libssl.so.1.1 => not found

原因:Rust 的openssl-syscrate 依赖系统 OpenSSL 库,而 Ubuntu 22.04+ 默认安装libssl3libssl.so.3),libssl.so.1.1已被移除。

兼容性修复

# 安装 OpenSSL 1.1 兼容包(Ubuntu 22.04+) sudo apt install -y libssl1.1 # 或者,让项目使用系统 OpenSSL 3(推荐) # 在 Cargo.toml 中添加: # [dependencies] # openssl = { version = "0.10", features = ["vendored"] } # 这会静态链接 OpenSSL,消除系统库依赖

4.4 问题四:rustup update提示error: could not download file from ...,但浏览器能打开对应 URL

现象rustup下载失败,curl -I却能获取 HTTP 200 响应头。

深度排查

  1. rustup使用reqwest库,其 TLS 栈与系统curl不同。curlopensslrustuprustls(纯 Rust 实现)
  2. 某些企业网 SSL 代理会向rustls返回不兼容的 TLS 扩展,导致握手失败

绕过方案

# 临时切换为 OpenSSL 后端(需安装 libssl-dev) RUSTUP_USE_OPENSSL=1 rustup update # 或者,强制使用系统证书(绕过 rustls 证书验证) RUSTUP_USE_OPENSSL=1 RUSTLS_NATIVE_CERTS=1 rustup update

4.5 问题五:cargo clippy报错error: unknown lints: clippy::pedantic,但rustup component add clippy已执行

现象clippy组件安装成功,但特定 lint 名称不识别。

原因clippy::pedantic是 Clippy 的“超级严格模式”,需显式启用。默认cargo clippy只运行clippy::styleclippy::correctness等基础 lint 组。

启用方式

# 方式一:命令行启用(临时) cargo clippy -- -D clippy::pedantic # 方式二:在 Cargo.toml 中配置(永久) # [lints.clippy] # pedantic = "deny"

注意:clippy::pedantic包含 200+ 条规则,首次启用会暴增 50+ 警告。建议逐步启用:先warn,修复后再deny

5. 进阶技巧与生产环境加固:让 Rust 环境真正“扛得住”

5.1 离线安装方案:在无外网的生产服务器上部署 Rust

当你的 Ubuntu 服务器处于金融级内网(无任何外网出口)时,rustup在线安装不可行。需准备三类离线包:

5.1.1 rustup 自身安装器(rustup-init二进制)

从 rustup releases 下载对应架构的rustup-init(如rustup-init-x86_64-unknown-linux-gnu),上传至服务器并赋予执行权限:

chmod +x rustup-init-x86_64-unknown-linux-gnu ./rustup-init-x86_64-unknown-linux-gnu -y --no-modify-path --default-toolchain none
5.1.2 Rust 工具链 tarball(rust-{version}-{target}.tar.gz

从 rust-lang.org 下载:

  • rust-1.78.0-x86_64-unknown-linux-gnu.tar.gz(编译器)
  • rust-src-1.78.0-x86_64-unknown-linux-gnu.tar.gz(源码)
  • rust-std-1.78.0-x86_64-unknown-linux-gnu.tar.gz(标准库)

解压并安装:

tar xzf rust-1.78.0-x86_64-unknown-linux-gnu.tar.gz ./rust-1.78.0-x86_64-unknown-linux-gnu/install.sh --prefix=$HOME/.rustup/toolchains/stable-x86_64-unknown-linux-gnu --disable-ldconfig
5.1.3 crates.io 离线索引(Git bare repo)

在有网机器上:

git clone --bare https://github.com/rust-lang/crates.io-index.git crates.io-index-bare tar czf crates.io-index-bare.tar.gz crates.io-index-bare

在服务器上:

tar xzf crates.io-index-bare.tar.gz mv crates.io-index-bare $HOME/.cargo/registry/index/github.com-1ecc6299db9ec823

5.2 多版本管理:在同一个 Ubuntu 上共存 stable/beta/nightly

rustup的核心价值在于工具链隔离。例如,cargo +nightly build会临时使用 nightly 工具链,不影响默认 stable。

常用操作

# 安装 beta 工具链 rustup toolchain install beta # 设置全局默认为 beta rustup default beta # 为特定项目设置 nightly(在项目根目录执行) rustup override set nightly # 查看所有工具链及状态 rustup toolchain list # 卸载不用的工具链(释放 2GB 空间) rustup toolchain uninstall nightly-2024-05-01

实操心得:rustup override会在项目目录生成.rust-toolchain.toml文件,内容为toolchain = "nightly-2024-05-01"。CI 流水线应优先读取此文件,而非硬编码工具链版本。

5.3 安全加固:禁用不安全的cargo install来源

cargo install默认从crates.io安装二进制 crate,但某些恶意 crate 会窃取 SSH 密钥。加固措施:

  1. 禁止全局安装:在~/.cargo/config.toml中添加:

    [install] # 禁用 cargo install,强制使用 cargo build --release # (需自行编译,但可审计源码)
  2. 白名单机制:使用cargo-binstall替代cargo install,它只安装预编译二进制:

    # 安装 cargo-binstall curl -L https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-gnu.zip --output cargo-binstall.zip unzip cargo-binstall.zip sudo mv cargo-binstall /usr/local/bin/ # 安装时自动校验签名 cargo binstall ripgrep

5.4 性能调优:让cargo build速度提升 40%

Ubuntu 默认的cc(GCC)编译器较慢。启用clang+lld链接器可显著提速:

# 安装 clang 和 lld sudo apt install -y clang lld # 在 ~/.cargo/config.toml 中配置 [target.x86_64-unknown-linux-gnu] linker = "clang" rustflags = [ "-C", "link-arg=-fuse-ld=lld", "-C", "link-arg=-Wl,--thinlto-cache-dir=/tmp/thinlto-cache" ]

实测数据:构建tokio示例项目,GCC 耗时 28.4s,Clang+LLD 耗时 17.1s,提速 39.8%。

6. 我的个人经验:从“能用”到“好用”的 3 个认知跃迁

第一次在 Ubuntu 上装 Rust,我花了 3 小时——因为执着于“一步到位”,反复重装rustup却忽略build-essential缺失。第二次,我学会了用strace跟踪cargo的系统调用,发现 80% 的问题都卡在 DNS 或证书验证上。到了现在,我给团队写了一键安装脚本,但它只做三件事:检查build-essential、配置清华源、验证cargo new hello。其余所有“高级功能”,都交给开发者按需启用。

最大的认知转变是:Rust 安装的本质不是“下载几个二进制文件”,而是建立一套可验证、可复现、可审计的工具链信任链rustup是这个链条的锚点,cargo是它的执行引擎,而build-essentialca-certificates是支撑这个引擎的物理基座。跳过基座检查,就像在流沙上盖楼——表面光鲜,地基一震就塌。

所以,下次当你看到curl | sh命令时,请先停 10 秒,执行dpkg -l build-essentialcurl -I https://static.rust-lang.org。这 10 秒,会为你省下未来 3 小时的调试时间。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 16:27:19

Apache Airflow命令注入漏洞CVE-2020-11978复现与安全编码实践

1. 项目概述:从一次靶场实战看Airflow的命令注入风险最近在整理内部安全测试案例库时,我又把目光投向了Apache Airflow这个老牌的调度平台。作为数据工程师和运维同学的老朋友,Airflow以其强大的DAG(有向无环图)编排能…

作者头像 李华
网站建设 2026/6/22 16:22:33

摄像头流媒体终极解决方案:go2rtc让多协议统一管理变得如此简单

摄像头流媒体终极解决方案:go2rtc让多协议统一管理变得如此简单 【免费下载链接】go2rtc Ultimate camera streaming application 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc 在智能家居和安防监控领域,你是否经常面临不同品牌摄像…

作者头像 李华
网站建设 2026/6/22 16:17:51

3个革命性方案重塑你的数据中心机柜管理策略

3个革命性方案重塑你的数据中心机柜管理策略 【免费下载链接】awesome-sysadmin A curated list of amazingly awesome open-source sysadmin resources. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-sysadmin 你是否曾在凌晨三点被紧急告警吵醒&#xf…

作者头像 李华
网站建设 2026/6/22 16:16:30

Ubuntu 18.04 部署 code-server 云 IDE 实战指南

1. 项目概述:在 Ubuntu 18.04 上部署一个真正可用的云端代码编辑器你有没有过这样的经历:临时需要改一段 Python 脚本,但手边只有公司配的 Windows 笔记本,没有装 VS Code 插件,连 SSH 连接都得翻三层跳板机&#xff1…

作者头像 李华
网站建设 2026/6/22 16:14:15

Background Music:macOS智能音频管理工具的高效应用指南

Background Music:macOS智能音频管理工具的高效应用指南 【免费下载链接】BackgroundMusic Background Music, a macOS audio utility: automatically pause your music, set individual apps volumes and record system audio. 项目地址: https://gitcode.com/gh…

作者头像 李华
网站建设 2026/6/22 16:12:38

告别繁琐操作:这款Windows USB设备管理工具让你的工作更高效

告别繁琐操作:这款Windows USB设备管理工具让你的工作更高效 【免费下载链接】USB-Disk-Ejector A program that allows you to quickly remove drives in Windows. It can eject USB disks, Firewire disks and memory cards. It is a quick, flexible, portable a…

作者头像 李华