资讯动态

Ubuntu 26.04 GPU工作站开发环境搭建:驱动、CUDA与IDE全配置指南

发布时间:2026/9/15 3:32:21 来源:尧图企业网站定制
准备装一台 Ubuntu 26.04 的 GPU 工作站时我发现网上教程要么只讲驱动安装要么只讲 IDE 配置很少有把整套开发工具链串起来的。这篇文章直接聊我在多次裸机安装 Ubuntu 26.04 并搭好 GPU 工作站时的完整流程从 NVIDIA 驱动、CUDA 工具链到 VSCode、PyCharm 双 IDE再到 Navicat 数据库客户端一整套开发工具链的安装配置与避坑记录。适合在 Linux 上做深度学习、大模型微调或数据开发的工程师也适合刚入手 NVIDIA GPU 工作站的新手照着操作就能跑通。1. 准备阶段系统安装前必须处理的几件事1.1 版本选择为什么是 26.04 LTS 而不是滚动更新版本很多新手上来就问“ Ubuntu 是不是越新越好”其实不是。26.04 属于长期支持版本官方维护周期长达五年这对工作站来说太重要了。你装的是开发环境不是玩具系统NVIDIA 驱动、CUDA 工具链、数据库客户端这些基础组件都依赖稳定的系统底座一旦升级到非 LTS 版本驱动和内核头文件对不上是家常便饭。如果你现在用的是 24.04 LTS 或者其他 LTS 版本本文所有操作步骤同样适用只是软件源地址和版本号略有差异。另外别在 VMware 虚拟机里折腾 GPU 直通。虚拟机做 GPU 透传要额外配置 vSphere 或者 KVM 的 PCIe passthrough加上驱动兼容问题调试成本极高实际体验也远不如物理机。如果你手头是真工作站建议直接物理安装省下大量时间。1.2 镜像下载与磁盘分区建议Ubuntu 官方镜像可以从官网下载国内用户建议走清华或者阿里云镜像站速度有明显提升。下载 26.04 桌面版 ISO 后用 Rufus 或 Ventoy 写盘这一步不多说。安装过程中有两个关键点分区时如果主板支持 UEFI建议创建独立的 EFI 分区如果不确定直接选“清除整个磁盘并安装 Ubuntu”最省心后续再挂载数据盘。/根分区建议给 200GB 以上。深度学习环境的依赖包、CUDA 工具链、Docker 镜像都会占用大量空间我见过不少人因为根分区只有 80GB装完 PyTorch 和 CUDA 后系统直接满了非常被动。针对 AI 开发场景我比较推荐一个内存和磁盘都充裕的配置/给 300GB/home给剩余空间。如果内存小于 32GB建议划一个至少 32GB 的 swap 分区。大模型训练时显存不够会退到内存内存不够会退到 swap缺了 swap 系统会直接 OOM进程被杀掉之前跑的数据全废。1.3 装完系统第一件事换源和基础更新Ubuntu 26.04 默认软件源在国外国内访问很慢。安装完成后第一件事就是把 apt 源切换到清华源或者阿里源。新版 Ubuntu 的软件源配置文件路径是/etc/apt/sources.list.d/ubuntu.sources修改前先备份。sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak sudo vim /etc/apt/sources.list.d/ubuntu.sources把其中的http://archive.ubuntu.com/ubuntu/替换为https://mirrors.tuna.tsinghua.edu.cn/ubuntu/保存后执行sudo apt update sudo apt upgrade -y这一步会升级内核和系统组件时间比较长建议放那儿等它跑完。升级完重启一下系统确保内核版本和驱动编译环境是最新的。基础环境准备好以后再开始处理 GPU 相关的部分。2. GPU 层驱动、CUDA 工具链与深度学习框架验证2.1 NVIDIA 驱动安装一条命令稳定搞定GPU 工作站的核心就是显卡驱动。Ubuntu 26.04 上装 NVIDIA 驱动我推荐直接用 apt 安装不推荐去官网下载.run文件手动装。原因很简单apt 版本会和内核模块自动匹配手动.run安装一旦遇到内核升级驱动模块就会因为版本不匹配而失效需要重新编译这对新手来说是灾难。先确认显卡型号lspci | grep -i nvidia然后查看系统推荐的驱动版本ubuntu-drivers devices输出中会列出可用驱动和推荐版本直接执行sudo apt install nvidia-driver-550驱动版本根据自己的显卡选择新显卡建议 550 及以上。装完后重启sudo reboot进入系统后验证nvidia-smi如果显示类似下面的信息说明驱动已经正常识别--------------------------------------------------------------------------------------- | NVIDIA-SMI 550.120 Driver Version: 550.120 CUDA Version: 12.4 | ---------------------------------------------------------------------------------------这里有个非常重要的前提安装过程中如果提示 Secure Boot 相关问题建议在 BIOS 里关闭 Secure Boot或者按照提示注册 MOK 密钥。我踩过这个坑不处理的话驱动会被内核拒绝加载nvidia-smi直接报错最后只能回到 BIOS 重来。2.2 CUDA 工具链用官方 apt 源安装而不是靠系统自带驱动装完后系统里已经有一个最小化的 CUDA runtime但对于开发环境你还得单独安装完整的 CUDA Toolkit。最稳妥的方式是添加 NVIDIA 官方 apt 源这样可以保证版本和驱动兼容后续升级也方便。先把官方源加进来wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2604/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt update然后安装指定版本的 CUDA Toolkit我这里用 12.4 举例sudo apt install cuda-toolkit-12-4安装完成后在~/.bashrc里追加环境变量export PATH/usr/local/cuda-12.4/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-12.4/lib64:$LD_LIBRARY_PATH然后重新加载配置source ~/.bashrc nvcc --version看到Cuda compilation tools, release 12.4就说明 CUDA 工具链没问题了。这里要注意一点apt install nvidia-cuda-toolkit也可以装但 Ubuntu 仓库里的 CUDA 版本通常比官方源旧很多而且可能和最新 PyTorch 不兼容。我建议直接用官方 apt 源安装省得后面反复折腾版本匹配问题。2.3 PyTorch GPU 验证两行代码确认环境可用驱动和 CUDA 都就绪后就可以装深度学习框架了。这里用 Python 虚拟环境来隔离项目依赖推荐直接用venv或 Conda。我自己的习惯是装 Miniconda因为它对 Python 版本管理和依赖隔离更顺手。创建环境并安装 PyTorch GPU 版本conda create -n dl python3.10 -y conda activate dl pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124如果网络环境不太好也可以用清华 PyPI 源加速但 GPU 版本的 PyTorch 建议还是从官方源下因为清华源的 PyTorch 索引更新有时候会滞后导致装到 CPU 版本。验证 GPU 是否可用python -c import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))如果输出True并且正确显示显卡型号说明 GPU 环境已经打通。这一步是判断环境是否正常最直接的方法也是后续跑模型前必做的检查。另外如果你要使用 PaddleOCR 这类国内常用的 OCR 工具安装 GPU 版本时注意指定 paddlepaddle-gpupip install paddlepaddle-gpu paddleocr安装后同样可以用paddle.utils.run_check()来验证 Paddle 是否识别到 GPU。这一步不是必须的但我在实际项目中经常遇到只装了 CPU 版 Paddle结果跑推理时 GPU 占用率为 0 的坑所以单独拿出来提醒一下。2.4 多卡与老显卡共存场景的处理经验很多工作站不止一张显卡我就在一台机器上装过 RTX 4090 和 Tesla P40 共存的情况。这种场景下最关键的问题是驱动版本选择Tesla P40 这类老架构显卡在新驱动上也能跑但如果你用的是更老的 Kepler 架构卡就得用 470 或更旧的驱动分支。实际操作时装了新版驱动后老卡不识别是很正常的建议在ubuntu-drivers devices输出里确认每张卡推荐的驱动版本是否一致。如果你还需要在服务器上跑虚拟化比如用 Docker 跑 GPU 容器那还需要装 NVIDIA Container Toolkitsudo apt install nvidia-container-toolkit sudo systemctl restart docker这样容器里才能正确调用宿主机的 GPU。这一步在后面的 PyCharm 配合 Docker 使用时非常有用。3. 开发工具链VSCode PyCharm 双 IDE 配置3.1 VSCode不要用 snap 版本直接用 deb 包VSCode 在 Ubuntu 上的安装方式主要有两种snap 商店安装和官网下载 deb 包。我强烈建议从官网下载 deb 包安装。原因有三点snap 版本每次启动都有延迟在 GPU 工作站上体验很不跟手。snap 版对中文输入法框架fcitx5的支持一直有问题经常打字没有候选框。deb 包安装后可以调用系统 Python 环境和 C 编译器配合 Remote-SSH 也更稳定。安装命令很简单wget https://code.visualstudio.com/sha/download?buildstableoslinux-deb-x64 -O vscode.deb sudo apt install ./vscode.deb装完后启动 VSCode先去扩展市场把这几类插件装好Python 和 PylancePython 开发必备提供智能提示、代码补全。Jupyter在 VSCode 里直接跑 notebook 很方便。Remote-SSH远程连接服务器开发的关键尤其在 GPU 工作站上你完全可以在本地写代码在远程机器上跑实验。Docker管理容器配合 GPU 容器化开发。C/C Extension Pack如果还要改 CUDA 或 C 代码这个必须装。VSCode 的 Python 解释器选择是个小坑。按CtrlShiftP输入Python: Select Interpreter选择你创建的 Conda 环境路径例如~/miniconda3/envs/dl/bin/python。如果不选VSCode 默认会用系统 Python可能不是你想要的虚拟环境后面跑代码各种包找不到。3.2 PyCharm什么时候用社区版什么时候值得上专业版PyCharm 分社区版和专业版。社区版免费支持 Python 开发、调试、测试对大部分数据分析和脚本开发完全够用。专业版付费增加了数据库工具、远程解释器、Docker 支持、前端开发等能力。对专职做 AI 训练的人来说专业版的核心价值在于远程解释器——你可以在本地写代码远程服务器上执行调试器直接连到远程进程这对 GPU 服务器开发真的是刚需。安装 PyCharm 建议用 JetBrains Toolbox方便管理多个 IDE 版本wget https://download-cdn.jetbrains.com/toolbox/jetbrains-toolbox-*.tar.gz tar -xzf jetbrains-toolbox-*.tar.gz ./jetbrains-toolbox然后在 Toolbox 里选择 PyCharm Professional 版本安装即可。如果只用社区版也可以直接下载 tar.gz 包解压运行。PyCharm 首次创建项目时建议解释器选“Existing environment”指定第一步创建的 Conda 环境。这样你在 PyCharm 终端里装的包和在 VSCode 里用的是同一套环境不会出现两边依赖不一致的问题。安装第三方包时可以直接在Terminal里执行pip install pandas或者用专业的插件包管理界面。新手最容易踩的坑就是用 PyCharm 的“Python Packages”工具安装了包但实际运行环境是另一个解释器导致ModuleNotFoundError。记住一个原则解释器选什么路径安装的包就必须在哪个环境里别用界面里的 Install 就完事要确认环境路径。3.3 双 IDE 联动与效率技巧有人问既然 PyCharm 功能那么全为什么还要装 VSCode。我的体会是VSCode 轻量、启动快、适合改脚本、看日志、对比文件PyCharm 适合大型项目的调试、重构和数据库操作。两个 IDE 共用同一个项目目录和专业版配置后完全可以无缝切换。日常开发中我习惯用 PyCharm 调试核心训练脚本因为它的断点、变量监控、步进功能比 VSCode 直观得多而 VSCode 则用来快速编辑配置文件、远程 SSH 临时改代码因为它远程开发体验更顺滑。如果你同时用两台机器开发可以在 VSCode 里打开设置同步PyCharm 也可以登录 JetBrains 账号同步配置这样换机不换手感。4. 数据库客户端Navicat 17 安装与数据库日常运维4.1 Navicat 17 安装AppImage 方式最省事Navicat 是一款跨平台的数据库管理工具支持 MySQL、PostgreSQL、MariaDB、Redis 等常用数据库。Ubuntu 上安装 Navicat 官方提供 AppImage 格式不需要像 Windows 那样执行安装程序下载后直接可运行。先去官网下载 Navicat 17 for Linux 版本然后在终端执行chmod x navicat17-premium-en.AppImage ./navicat17-premium-en.AppImage如果运行时报错缺少 FUSE 库需要先安装依赖:sudo apt install libfuse2t64然后重新运行 AppImage 即可。需要说明的是Navicat 是商业软件官方提供 14 天全功能试用。对于个人开发者或者公司项目建议直接购买正式授权或者使用免费的替代方案。这里我想特别提醒网上流传的“破解版”、“注册码”、“永久许可证”很多来自来路不明的渠道一方面存在后门和恶意代码风险另一方面也涉及版权和许可合规问题强烈不建议碰。如果预算有限可以使用 DBeaver Community 作为开源替代功能上覆盖日常开发足够了。4.2 连接 MySQL / PostgreSQL 的实战配置数据库客户端装好了还得配合数据库服务使用。这里以 MySQL 和 PostgreSQL 为例用 Ubuntu 自带的 apt 装好服务端sudo apt install mysql-server -y sudo systemctl enable --now mysql sudo apt install postgresql postgresql-contrib -y sudo systemctl enable --now postgresql然后打开 Navicat点击左上角“连接”选择 MySQL。填连接参数时主要注意这几项主机名/端口如果是本机就填localhost和3306。用户名/密码MySQL 默认 root 用户在 Ubuntu 上经常是auth_socket认证要在命令行里先给 root 设置密码sudo mysql ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; FLUSH PRIVILEGES;数据库名称如果暂时没有库可以不填连接成功后会自动加载现有数据库列表。PostgreSQL 连接时注意默认用户是postgres端口为5432。初始化用户和密码sudo -u postgres psql ALTER USER postgres WITH PASSWORD 你的密码;Navicat 17 相比旧版界面变化不大但底层对 MySQL 8 和 PostgreSQL 15 的兼容性更好同时也增加了数据模型设计和自动化任务的入口。日常最常用的功能是查询编辑器和数据传输前者适合写 SQL后者适合把测试库数据同步到开发库省去手工导出的麻烦。4.3 数据库连接常见报错与排查我整理过一份 Navicat 连接数据库时最常遇到的报错排查表按照这个思路基本都能解决报错信息可能原因处理方法2003 - Cant connect to MySQL server on ...MySQL 服务未启动或端口被防火墙拦截systemctl status mysql确认 3306 端口监听ufw allow 33062059 - Authentication plugin caching_sha2_passwordMySQL 8 默认认证插件与 Navicat 低版本不兼容升级 Navicat 到 17或把用户认证改回mysql_native_passwordAccess denied for user ...用户名或密码错误或授权表异常用命令行重新ALTER USER设置密码PostgreSQL: password authentication failed密码或者加密方式不对检查pg_hba.conf中认证方式是scram-sha-256还是md5连接后看不到数据库列表用户只有单库权限用超级管理员用户连接或者给当前用户授权GRANT ALL PRIVILEGES ON *.*4.4 Navicat 配合开发流程的经验心得很多 AI 项目不只是训练模型还要处理数据入库、特征存储、模型结果回写等环节。我的习惯是PyCharm 里写 Python 代码负责从数据库拉数据VSCode 里改 SQL 脚本做数据探查Navicat 则用来做可视化的表结构和数据修改。三者配合效率比只用一个 IDE 加命令行客户端高很多。另外如果你总在服务器上手工敲mysql -u root -p看数据建议把常用连接配置都在 Navicat 里存好它能自动保存连接信息下次直接点一下就连上省去记忆主机、端口、用户名和密码的麻烦。5. 日常优化与问题排查实录5.1 字体、中文输入法、桌面体验调优GPU 工作站大部分时间都在跑训练但你总要在编辑器里写代码。默认的 Ubuntu 字体对中文和代码符号的支持一般我推荐代码字体使用 JetBrains Mono 或 Sarasa Mono SC更纱黑体。尤其在 VSCode 和 PyCharm 中把字体设置为 Sarasa Mono SC中英文混排时对齐效果非常接近 macOS 的体验这是很多开发者反复测试出来的结论。字体安装sudo vim /etc/fonts/local.conf加入?xml version1.0? !DOCTYPE fontconfig SYSTEM fonts.dtd fontconfig match targetpattern test namefamilystringmonospace/string/test edit namefamily modeprepend bindingstrong stringSarasa Mono SC/string /edit /match /fontconfig中文输入法建议使用fcitx5 智能拼音或者直接安装搜狗输入法 Linux 版。搜狗输入法官方提供了 deb 包安装后重启即可。安装步骤很简单但注意要先安装 fcitx 输入法框架不然搜狗输入法装完也可能无法激活sudo apt install fcitx5 fcitx5-chinese-addons如果你在 Ubuntu 上需要运行微信可以安装官方 Linux 版本或通过 Snap 商店安装。桌面端体验虽然不如 Windows 版完善但日常工作沟通够用了。不推荐用 Wine 跑 Windows 版微信崩溃频率太高纯属浪费生命。5.2 SSH 无法连接与权限问题排查有一类问题几乎每个 Ubuntu 用户都会遇到装完系统后 SSH 连接不上。如果是使用ssh userhost连不上按这个顺序排查检查 SSH 服务是否启动sudo systemctl status ssh如果没有安装执行sudo apt install openssh-server -y。防火墙是否放行sudo ufw allow OpenSSH。确认 SSH 服务监听端口sudo netstat -tlnp | grep 22。如果用密钥登录提示Permission denied (publickey)大概率是~/.ssh/authorized_keys文件权限不对把目录权限设为 700、文件权限设为 600chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys这组权限问题调试了我一整个下午后来才意识到是权限太开放导致 OpenSSH 拒绝加载密钥。另外/home目录如果是加密目录或者挂载在独立分区上也会导致 SSH 读取密钥失败这类问题比较冷门遇到的话可以看/var/log/auth.log。5.3 GPU 性能监控与日常维护要点GPU 工作站的日常维护重点不在磁盘清理而在监控温度、显存和功耗。最轻量的工具是自带的nvidia-smi可以配合watch命令实时刷新watch -n 1 nvidia-smi如果觉得nvidia-smi不够直观推荐安装nvtop显示效果接近 Linux 下的htopsudo apt install nvtop这个工具能同时监控多个 GPU 的利用率、温度和风扇转速跑大模型时一眼就能看出是不是真的有卡在计算而不是只在空转。还有一个特别推荐的参数开启 GPU 持久化模式这条命令可以避免 GPU 在无任务时反复切换性能状态对多卡环境尤其有用sudo nvidia-smi -pm 1NVIDIA 驱动在默认情况下每次任务结束后显卡会很快进入低功耗状态下次调用时需要重新初始化可能会带来几百毫秒到几秒不等的启动延迟。开启持久化模式后驱动常驻任务调度更稳定对推理服务的延迟优化帮助明显。最后分享两个小细节一是 Python 包下载速度问题。即使 PyTorch 用了官方源其他包最好也全局配置国内 PyPI 镜像不然装个小包都要等半天pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple二是在跑训练任务时尽量别开中文输入法有时候按键会和 IDE 快捷键冲突造成莫名其妙的卡顿。这个不算技术问题但确实会影响编码体验。整个工具链搭建下来其实并不复杂最难的部分是驱动和 CUDA 环境匹配只要按照顺序装好后面的 IDE 和数据库客户端基本畅通无阻。这套流程我在多台不同配置的机器上重复过从系统安装到能跑 PyTorch一个下午足够。如果你在配置过程中遇到报错别慌先看日志再查服务状态大多数问题都能在这篇文章里找到对应解法。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价