Linux服务器环境配置与Python开发环境搭建完全指南
本文基于CentOS 7/8和Ubuntu 22.04 LTS系统涵盖系统管理、环境配置、Python安装、深度学习框架部署等实战内容。一、系统基础信息查看1.1 查看操作系统版本在开始任何配置之前首先需要确认操作系统类型和版本# CentOS/RHEL 系统cat/etc/redhat-release# 通用方法适用于所有Linux发行版cat/etc/os-releaseUbuntu 22.04 LTS 输出示例PRETTY_NAMEUbuntu 22.04.5 LTS NAMEUbuntu VERSION_ID22.04 VERSION22.04.5 LTS (Jammy Jellyfish) VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian1.2 查看服务器硬件配置# 查看CPU详细信息lscpu# 查看每插槽核心数线程数lscpu|grepCore(s) per socket# 查看CPU核心总数lscpu|grepCPU(s):# 查看NUMA节点信息多路服务器必备numactl--hardware# 查看特定进程运行在哪个CPU核心ps-opid,psr,comm-p[PID]二、系统初始化配置2.1 防火墙与SELinux配置生产环境建议内网环境可关闭防火墙公网环境建议开放特定端口而非完全关闭。# 关闭防火墙并禁用开机启动systemctl disable firewalld--now# 查看防火墙状态systemctl status firewalld# 配置SELinux为宽容模式Permissivesed-is/SELINUXenforcing/SELINUXpermissive/g/etc/selinux/config setenforce0# 验证SELinux状态getenforce2.2 配置YUM镜像源CentOS备份现有仓库文件sudomkdir-p/etc/yum.repos.d/backupsudomv/etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/配置阿里云基础源cd/etc/yum.repos.d/curl-oCentos_Base.repo https://mirrors.aliyun.com/repo/Centos-7.reposed-i-e/mirrors.cloud.aliyuncs.com/d-e/mirrors.aliyuncs.com/dCentos_Base.repo配置SCLSoftware Collections源用于安装高版本GCCvim/etc/yum.repos.d/CentOS-SCLo-scl.repo[centos_sclo]nameCentos_sclobaseurlhttps://mirrors.tencent.com/centos/7.9.2009/sclo/x86_64/sclo/gpgcheck0enabled1[centos_sclo_rh]nameCentos_sclo_rhbaseurlhttps://mirrors.tencent.com/centos/7.9.2009/sclo/x86_64/rh/gpgcheck0enabled1清理缓存yum clean all三、GCC编译器升级3.1 为什么需要升级GCCCentOS 7默认GCC版本为4.8.5许多现代Python库如gensim、TensorFlow等需要GCC 5才能编译安装。3.2 安装DevToolset高版本GCC# 安装SCL仓库如果尚未安装sudoyuminstallcentos-release-scl# 安装GCC 9或更高版本如devtoolset-11sudoyuminstalldevtoolset-9-gcc devtoolset-9-gcc-c# 临时启用GCC 9当前会话sclenabledevtoolset-9bash# 验证版本gcc-v# 永久启用添加到.bashrcechosource /opt/rh/devtoolset-9/enable~/.bashrc注意如果遇到No package devtoolset-9-gcc available错误请确保已正确配置SCL源见2.2节。四、Python环境搭建4.1 安装系统依赖CentOS/RHELyum update-yyuminstall-ygcc openssl-devel bzip2-devel libffi-devel zlib-develwgetmakeyuminstall-ygcc openssl openssl-develmakeautomake autoconf gcc-c bzip2-devel sqlite-develUbuntu/Debianapt-getupdateapt-getinstall-ybuild-essential libssl-dev libbz2-dev libsqlite3-dev4.2 方案一源码编译安装Python适用于需要特定Python版本或自定义编译选项的场景# 下载Python源码以3.9为例wgethttps://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgztar-xzfPython-3.9.18.tgzcdPython-3.9.18# 配置编译选项./configure--prefix/usr/local/python3.9 --enable-optimizations# 编译安装使用多核加速make-j$(nproc)sudomakealtinstall# 创建软链接ln-s/usr/local/python3.9/bin/python3.9 /usr/bin/python3.9ln-s/usr/local/python3.9/bin/pip3.9 /usr/bin/pip3.94.3 方案二Anaconda安装推荐Anaconda是数据科学场景的最佳选择预装了数百个科学计算包# 下载Anaconda安装脚本2024年最新版wgethttps://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh# 验证文件完整性强烈推荐sha256sum Anaconda3-2024.02-1-Linux-x86_64.sh# 执行安装bashAnaconda3-2024.02-1-Linux-x86_64.sh# 按照提示完成安装最后初始化conda# 安装完成后重启终端或执行source~/.bashrc五、Conda环境管理实战5.1 基础命令# 查看所有环境condaenvlist# 创建新环境指定Python版本conda create--namemyenvpython3.9# 激活环境conda activate myenv# 退出当前环境conda deactivate# 删除环境conda remove--namemyenv--all5.2 配置国内镜像源Conda镜像源配置# 添加清华镜像源conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/# 设置搜索时显示通道地址conda config--setshow_channel_urlsyes# 清除镜像源如需恢复官方源conda config --remove-key channelsPip镜像源使用单次安装# 清华源pipinstallnumpy-ihttps://pypi.tuna.tsinghua.edu.cn/simple/# 阿里云pipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple/# 华为云pipinstallscikit-learn-ihttps://repo.huaweicloud.com/repository/pypi/simple/国内常用镜像源汇总镜像站地址清华https://pypi.tuna.tsinghua.edu.cn/simple/阿里云https://mirrors.aliyun.com/pypi/simple/中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣https://pypi.douban.com/simple/华为云https://repo.huaweicloud.com/repository/pypi/simple/5.3 深度学习环境配置示例# 创建专用环境conda create--namedlpython3.9conda activate dl# 安装PyTorchGPU版根据CUDA版本调整pipinstalltorch2.6.0-ihttps://pypi.tuna.tsinghua.edu.cn/simple/# 安装Transformers等NLP库pipinstalltransformers4.53.0-ihttps://pypi.tuna.tsinghua.edu.cn/simple/# 数据处理库pipinstallpandas1.5.3 scikit-learn1.3.2-ihttps://pypi.tuna.tsinghua.edu.cn/simple/# 中文NLP工具pipinstalljieba-ihttps://pypi.tuna.tsinghua.edu.cn/simple/常见依赖冲突解决方案# 升级conda解决导入问题conda update--all# 安装特定版本numpy避免兼容性问题pipinstallnumpy2.0gensim3.7.3-ihttps://pypi.tuna.tsinghua.edu.cn/simple/六、文件传输与远程操作6.1 SCP跨平台文件传输Windows → Linux# 传输文件夹递归scp-rC:/本地/文件夹 用户名服务器IP:/目标/路径# 传输单个文件scpC:/本地/文件.txt 用户名服务器IP:/目标/路径/# 实际示例scp-rC:/学习/AI/Pytorch版本/roberta_chinese haichao10.4.101.107:/home/haichao/project/dataLinux → Linux# 从远程服务器下载scp-ruserremote_host:/remote/path /local/path# 使用压缩传输-C加速scp-rC/local/path userhost:/remote/path6.2 实用文件操作命令# 查找包含特定字符的文件夹find.-name*关键词*-typed# 查找并删除特定文件谨慎使用find.-maxdepth1-name*temp*-typef-delete# 批量删除使用通配符rm-f*备份文件*# 创建嵌套目录mkdir-p项目/代码/模型/日志# 快速创建空文件touchtrain.py test.py config.yaml# 查看大文件内容morelarge_file.log# 操作d下翻、b上翻、q退出七、进程管理与系统维护7.1 进程管理# 查找特定进程ps-ef|greppython# 精确杀死进程推荐pkill-9-fpython train.py# 组合命令查找并杀死ps-ef|grepMatServer|xargskill-9# 查看GPU进程需安装nvidia-sminvidia-smi7.2 历史命令管理# 查看历史命令history# 清空当前会话历史不写入文件history-c# 删除历史记录文件rm-rf~/.bash_history# 暂停记录历史执行敏感命令前setohistory# 执行敏感命令...# 恢复记录set-ohistory7.3 网络配置# 清除网络接口配置故障排查时使用sudoipaddr flush dev eno2sudoiproute flush dev eno2# 查看网络接口状态ipaddr show八、深度学习训练优化技巧8.1 梯度累积解决显存不足# 保持小批量但累积梯度accumulation_steps4# 累积4个批次的梯度optimizer.zero_grad()fori,(inputs,labels)inenumerate(dataloader):outputsmodel(inputs)losscriterion(outputs,labels)lossloss/accumulation_steps# 归一化损失loss.backward()if(i1)%accumulation_steps0:optimizer.step()optimizer.zero_grad()8.2 混合精度训练提速省显存fromtorch.cuda.ampimportautocast,GradScaler scalerGradScaler()fordata,targetindataloader:optimizer.zero_grad()withautocast():outputmodel(data)losscriterion(output,target)scaler.scale(loss).backward()scaler.step(optimizer)scaler.update()九、软件安装方式汇总安装方式适用场景命令示例apt/dpkgUbuntu离线/在线安装sudo dpkg -i package.deb/sudo apt-get install packageyum/rpmCentOS/RHELsudo yum install package/rpm -ivh package.rpmcondaPython数据科学环境conda install numpypipPython包管理pip install torch源码编译自定义需求./configure make make install十、最佳实践与注意事项10.1 安全建议避免使用root直接操作日常操作使用普通用户必要时用sudo谨慎使用rm -rf尤其注意*通配符的使用定期备份重要配置和代码使用Git管理10.2 性能优化使用NUMA绑定多路服务器将进程绑定到特定CPU和内存节点IO优化大数据集使用SSD或内存盘tmpfs监控资源使用htop、iotop、nvidia-smi监控资源使用10.3 故障排查# 查看系统日志journalctl-xe# 查看最后登录信息last# 查看磁盘空间df-h# 查看目录大小du-sh/path/to/dir# 查看内存使用free-h结语本文涵盖了从Linux系统初始化到Python深度学习环境搭建的完整流程。在实际生产环境中建议文档化将所有配置步骤写成脚本便于复现容器化使用Docker封装环境避免在我机器上能跑的问题自动化使用Ansible等工具批量管理服务器希望这份指南能帮助你高效搭建Linux服务器环境如有问题欢迎在评论区交流。参考文档CentOS官方文档Anaconda官方指南PyTorch安装指南本文基于实际生产环境整理命令均经过验证。系统版本CentOS 7.9 / Ubuntu 22.04 LTS

相关新闻

T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他

T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他

两拇炒诙一般而言,代码可分为同步与异步两类。两者同样需要等待操作完成:同步会阻塞当前线程,直至操作结束后再继续执行后续逻辑;异步则不阻塞当前线程,而是在发起操作时预先注册完成后的处理逻辑,待操作完…

2026/7/5 23:00:06 阅读更多 →
JVM对象分配:如何在高并发下安全高效地分配内存

JVM对象分配:如何在高并发下安全高效地分配内存

Java堆是所有线程共享的。如果多个线程同时分配对象,对堆内存分配指针的并发修改必须加锁。但全局加锁太慢,会严重影响吞吐量。 JVM的做法是分层处理,尽量避免加锁,非要加也用最轻的方式。 栈上分配(最快) …

2026/7/6 2:07:54 阅读更多 →
所见即所得富文本编辑器实现原理

所见即所得富文本编辑器实现原理

投儆幌估类型/构造 描述 主要用途 注意事项 值元组 (Value Tuples) 轻量级值类型,支持多值返回、命名元素和解构 方法返回多个值、临时数据分组 值类型,栈分配;.NET Framework需引用System.ValueTuple包 概述 值元组基于System.ValueTuple&am…

2026/5/17 9:25:31 阅读更多 →

最新新闻

Minecraft 1.21终极中文体验:Masa模组全家桶完整汉化指南

Minecraft 1.21终极中文体验:Masa模组全家桶完整汉化指南

Minecraft 1.21终极中文体验:Masa模组全家桶完整汉化指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Minecraft 1.21中Masa模组的英文界面而烦恼吗?ma…

2026/7/7 21:25:32 阅读更多 →
Python算法交易系统实战:从行情接入到实盘执行的工业级架构

Python算法交易系统实战:从行情接入到实盘执行的工业级架构

1. 这不是“学Python”,而是用Python解决真实交易场景里的硬问题如果你在搜索“Python for finance tutorial”时,看到的教程还在教你怎么用print("Hello World")、怎么写for循环,那它根本没资格叫“金融级Python”。真正的金融场景…

2026/7/7 21:23:32 阅读更多 →
BilibiliDown:一键下载B站视频,打造你的个人离线视频库

BilibiliDown:一键下载B站视频,打造你的个人离线视频库

BilibiliDown:一键下载B站视频,打造你的个人离线视频库 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/…

2026/7/7 21:17:28 阅读更多 →
【Java课程设计/毕业设计】基于前后端分离的餐饮营收统计系统的设计与实现 基于 SpringBoot 的智慧餐饮点餐服务系统的设计与实现【附源码、数据库、万字文档】

【Java课程设计/毕业设计】基于前后端分离的餐饮营收统计系统的设计与实现 基于 SpringBoot 的智慧餐饮点餐服务系统的设计与实现【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/7 21:15:27 阅读更多 →
Python魔法方法:解释器级对象行为契约详解

Python魔法方法:解释器级对象行为契约详解

1. 这不是语法糖,是Python的底层操作系统接口 “Introducing Python Magic Methods”——光看标题,很多人会下意识划走:又是那种讲 __init__ 和 __str__ 的入门教程?但如果你真这么想,就错过了Python最硬核、最常被…

2026/7/7 21:13:27 阅读更多 →
AWS Amplify Gen 2 实战指南:代码即架构的全栈开发范式

AWS Amplify Gen 2 实战指南:代码即架构的全栈开发范式

1. 为什么我三年内用 Amplify 重构了 7 个生产项目——一个全栈开发者的真实视角你有没有过这种体验:凌晨两点,对着一个刚上线的 React 管理后台抓狂。前端页面跑得飞快,但用户一点击“导出报表”,整个 UI 就卡死三秒——因为后端…

2026/7/7 21:13:27 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻