Linux 开发环境初始化指南
本文整理了 Manjaro 和 Ubuntu 两种主流 Linux 发行版的开发环境初始化步骤,帮助你快速搭建一套开箱即用的开发工作站。
为什么同时提供两种发行版的配置?
- Manjaro:基于 Arch Linux,滚动更新,软件包最新,适合追求前沿技术的开发者
- Ubuntu:生态成熟,文档丰富,企业级支持好,适合稳定优先的开发场景
根据你的发行版选择对应章节即可。
一、基础配置
1.1 DNS 配置
配置 DNS 可以解决某些域名解析慢或无法访问的问题。
Manjaro
sudo sed -i 's|#DNS=|DNS=8.8.8.8|g' /etc/systemd/resolved.confUbuntu
- 编辑配置文件:
sudo nano /etc/systemd/resolved.conf- 修改为以下内容:
[Resolve]
DNS=8.8.8.8 8.8.4.41.2 环境变量管理
推荐使用 ~/.local_profile 集中管理环境变量,保持 .bashrc 和 .zshrc 整洁。
Manjaro
# 将以下内容添加到 shell 配置文件
cat >> ~/.zshrc << 'EOF'
# load local profile
source ~/.local_profile
EOF
cat >> ~/.bashrc << 'EOF'
# load local profile
source ~/.local_profile
EOF
# 创建环境变量文件
touch ~/.local_profileUbuntu
# Ubuntu 默认使用 bash,编辑 ~/.bashrc 即可
nano ~/.bashrc
# 添加环境变量后执行
source ~/.bashrc后续所有环境变量(Java、Rust、Node.js 等)都添加到 ~/.local_profile 中管理。
1.3 国内镜像源(加速下载)
Manjaro
# 交互式选择国内镜像源(会弹出窗口让你选择)
sudo pacman-mirrors -i -c China -m rank
# 刷新软件包缓存
sudo pacman -Syy --noconfirm
# 系统更新
sudo pacman -Syyu --noconfirm
# 清理旧缓存
sudo pacman -Sc --noconfirm
# 清理孤立包
sudo pacman -Rns $(pacman -Qtdq) --noconfirmUbuntu
# 更新软件包列表
sudo apt update -y
# 升级已安装的软件包
sudo apt upgrade -y二、版本控制工具
2.1 Git
Manjaro
sudo pacman -Syu --noconfirm gitUbuntu
sudo apt install -y git配置用户信息(所有发行版通用):
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"2.2 subversion (SVN)
Manjaro
sudo pacman -Syu --noconfirm subversionUbuntu
sudo apt install -y subversion三、开发工具
3.1 VSCode
Manjaro Manjaro 通过 AUR 安装 VSCode:
# 安装 AUR 助手 yay
sudo pacman -Syu --noconfirm yay
# 通过 AUR 安装 VSCode
yay -S --noconfirm vscodeUbuntu
从 VSCode 官网 下载 .deb 包安装:
sudo dpkg -i code_*.deb
sudo apt install -f # 修复依赖3.2 远程桌面工具
Manjaro
sudo pacman -Syu --noconfirm remminaUbuntu
sudo apt install -y remmina四、运行环境
4.1 Node.js
推荐使用版本管理器安装 Node.js,方便切换版本。Manjaro (fnm) fnm 是用 Rust 编写的 Node.js 版本管理器,速度极快。
# 创建目录
mkdir -p /gt/data/.fnm
# 添加环境变量
cat >> ~/.local_profile << 'EOF'
# fnm
export FNM_NODE_DIST_MIRROR=https://mirrors.tuna.tsinghua.edu.cn/nodejs-release
export FNM_DIR=/gt/data/.fnm
eval "$(fnm env --use-on-cd)"
EOF
source ~/.local_profile
# 安装编译工具
sudo pacman -Syu --noconfirm base-devel
# 通过 cargo 安装 fnm(需要先安装 Rust)
cargo install fnm
# 安装 LTS 版本
source ~/.local_profile
fnm install --ltsUbuntu (nvm) nvm 是最流行的 Node.js 版本管理器。```bash
使用国内镜像安装 nvm
curl -o- https://gitee.com/cardone/nvm/raw/master/install.sh | bash
重新加载配置
source ~/.bashrc
安装 node.js 20
nvm install 20
设置 npm 淘宝镜像
npm config set registry http://registry.npmmirror.com
**配置 npm 和 pnpm 镜像**(通用)
```bash
# npm 镜像
npm config set registry http://registry.npmmirror.com
npm config get registry
# 安装 pnpm
npm install pnpm -g
# pnpm 镜像和存储路径
mkdir -p /gt/data/.pnpm # Manjaro
# 或 mkdir -p /es/stores/.pnpm-store # Ubuntu
pnpm config set store-dir /gt/data/.pnpm
pnpm config set registry http://registry.npmmirror.com/
pnpm config get registry4.2 Docker
Docker 是容器化开发的基础设施。Manjaro
# 清理旧数据(如有)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /gt/docker/data-root
# 创建数据目录
sudo mkdir -p /gt/docker/data-root
sudo chmod -R 777 /gt/docker
sudo mkdir -p /etc/docker
# 配置 Docker daemon
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/gt/docker/data-root",
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 安装 Docker
sudo pacman -Syu --noconfirm docker docker-compose
# 启动并设置开机自启
sudo systemctl start docker.service
sudo systemctl enable docker.service
# 验证安装
sudo docker info
# 将当前用户加入 docker 组(免 sudo)
sudo usermod -aG docker $USERUbuntu
# 清理旧版本
sudo apt purge -y docker*
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo apt autoremove -y
# 创建数据目录
sudo mkdir -p /es/docker
sudo chmod -R 777 /es/docker
sudo mkdir -p /etc/docker
sudo rm -rf /es/docker/data-root
# 配置 Docker daemon
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"data-root": "/es/docker/data-root",
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://huecker.io",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 安装 Docker 官方脚本
sudo apt install -y curl
sudo curl -fsSL https://test.docker.com -o install-docker.sh
sudo sh install-docker.sh
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER添加用户到 docker 组后,需要重新登录才能生效。
4.3 Java
Manjaro
# 添加环境变量
cat >> ~/.local_profile << 'EOF'
# java
export JAVA_HOME=/gt/middlewares/graalvm-jdk-23_linux-x64_bin/graalvm-jdk-23.0.1+11.1
export CLASSPATH={JAVA_HOME}/lib
export PATH=${PATH}:${JAVA_HOME}/bin
EOF
source ~/.local_profile
java -versionUbuntu
# 创建目录
mkdir -p /es/middlewares
# 解压 JDK(假设已下载)
tar -zxvf /es/tmp/graalvm-jdk-22_linux-x64_bin.tar.gz -C /es/middlewares
# 添加环境变量
cat >> ~/.bashrc << 'EOF'
export JAVA_HOME="/es/middlewares/graalvm-jdk-22.0.1+8.1"
export GRAALVM_HOME="/es/middlewares/graalvm-jdk-22.0.1+8.1"
EOF
source ~/.bashrc
java -version推荐使用 GraalVM ,它是 Oracle 的高性能 JDK,支持多语言运行时。
4.4 Rust
Manjaro
# 添加环境变量(使用国内镜像加速)
cat >> ~/.local_profile << 'EOF'
# rustup
export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup
export RUSTUP_DIST_SERVER=https://rsproxy.cn
# rust
. "$HOME/.cargo/env"
EOF
source ~/.local_profile
# 安装 Rust
curl https://sh.rustup.rs -sSf | sh
# 配置 crates.io 镜像
cat >> $HOME/.cargo/config.toml << 'EOF'
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
replace-with = 'rsproxy-sparse'
[source.rsproxy-sparse]
registry = "sparse+https://rsproxy.cn/index/"
[net]
git-fetch-with-cli = true
EOF
# 安装镜像源切换工具
cargo install crmUbuntu
# 使用国内镜像安装
export RUSTUP_DIST_SERVER=https://rsproxy.cn
export RUSTUP_UPDATE_ROOT=https://rsproxy.cn/rustup
curl https://sh.rustup.rs -sSf | sh
source ~/.cargo/env4.5 C++ 开发环境
Manjaro
sudo pacman -Syu --noconfirm clang base-devel gcc gdb cmake pkg-configUbuntu
sudo apt install -y build-essential gcc g++ gdb cmake五、桌面环境
5.1 中文输入法(Manjaro)
# 安装 fcitx5 输入法框架
sudo pacman -S --noconfirm fcitx5 fcitx5-configtool fcitx5-qt fcitx5-gtk fcitx5-chinese-addons fcitx5-rime fcitx5-material-color
# 添加环境变量
cat >> ~/.local_profile << 'EOF'
# fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"
EOF
source ~/.local_profile
# 打开输入法配置工具
fcitx5-configtool5.2 蓝牙修复
如果蓝牙无法正常工作,尝试重载驱动:
sudo rmmod btusb && sleep 1 && sudo modprobe btusb六、桌面应用开发
6.1 Tauri 环境(Manjaro)
Tauri 是用 Rust 构建桌面应用的框架。```bash
sudo pacman -Syu —noconfirm
sudo pacman -S —needed —noconfirm
webkit2gtk
base-devel
curl
wget
file
openssl
appmenu-gtk-module
gtk3
libappindicator-gtk3
librsvg
---
## 七、AI 工具
### 7.1 ollama(本地运行大模型)
ollama 让在本地运行大语言模型。```bash
# 创建模型存储目录
mkdir -p /gt/data/.ollama/model
# 添加环境变量
cat >> ~/.local_profile << 'EOF'
# ollama
export OLLAMA_MODELS=/gt/data/.ollama/model
EOF
source ~/.local_profile
# 安装 ollama
curl -fsSL https://ollama.com/install.sh | sh
# 下载常用编程模型
ollama pull qwen2.5-coder:3b
ollama pull qwen2.5-coder:7b
ollama pull deepseek-r1:8bqwen2.5-coder:3b— 轻量级,适合日常代码补全qwen2.5-coder:7b— 平衡版,代码能力更强deepseek-r1:8b— 推理模型,适合复杂逻辑分析
八、快速检查清单
完成以上配置后,运行以下命令验证安装:
# 版本控制
git --version
svn --version
# 运行环境
node --version
npm --version
pnpm --version
docker --version
java -version
rustc --version
cargo --version
gcc --version
# 工具
code --version # VSCode九、常见问题
Q: 为什么推荐使用国内镜像?
a: 国内访问国外服务器速度慢且不稳定,镜像可以显著提升下载速度。常用镜像:
| 工具 | 镜像地址 |
|---|---|
| npm | http://registry.npmmirror.com |
| Docker | https://docker.m.daocloud.io |
| Rust | https://rsproxy.cn |
| Node.js | https://mirrors.tuna.tsinghua.edu.cn/nodejs-release |
q: Docker 提示权限不足怎么办?
a: 确保已将用户加入 docker 组,并重新登录:
sudo usermod -aG docker $USER
# 重新登录或重启q: 如何更新所有软件?
Manjaro
sudo pacman -SyuUbuntu
sudo apt update && sudo apt upgrade