【信创】统信UOS 银河麒麟离线部署Python3.11完整方案

统信UOS 离线部署Python3.11完整方案

目标:在能上网的UOS机器把全部依赖deb + Python源码一次性下载到本地文件夹,打包拷贝到内网断网UOS(x86_64/arm64飞腾都适用),内网机器全程不需要联网

核心要点:

  1. 外网机下载所有deb依赖包,不安装;
  2. 下载Python3.11源码;
  3. 打包整个目录,拷贝内网;
  4. 内网本地apt安装deb包,再编译Python,依然用altinstall保护系统Python。

一、外网可联网统信UOS机器操作

1. 创建工作目录(所有文件都放这里,最后整个文件夹打包带走)

bash 复制代码
mkdir -p ~/python311_offline/{debs,src}
cd ~/python311_offline

2. 下载编译Python所需全部依赖deb包(只下载,不安装)

bash 复制代码
sudo apt update
# 下载所有依赖包到 debs 目录
sudo apt install -y --download-only build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev liblzma-dev tk-dev
# 复制缓存里所有deb到我们本地debs文件夹
sudo cp /var/cache/apt/archives/*.deb ~/python311_offline/debs/

apt下载的deb默认缓存在/var/cache/apt/archives/,上面命令全部拷贝出来。

3. 下载Python3.11源码包到src目录

bash 复制代码
cd ~/python311_offline/src
wget [https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz](https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz)

4. (可选,推荐)导出依赖清单,方便校验

bash 复制代码
cd ~/python311_offline
dpkg -l | grep -E "build-essential|zlib1g-dev|libncurses5-dev|libgdbm-dev|libnss3-dev|libssl-dev|libreadline-dev|libffi-dev|libsqlite3-dev|libbz2-dev|liblzma-dev|tk-dev" > pkg_list.txt

5. 打包整个离线包

bash 复制代码
cd ~
tar -zcvf python311_offline.tar.gz python311_offline

python311_offline.tar.gz U盘拷贝到内网电脑。


二、内网断网统信UOS机器操作

  1. 把压缩包传到内网机器,解压
bash 复制代码
tar -zxvf python311_offline.tar.gz
cd ~/python311_offline
  1. 本地安装所有deb依赖
bash 复制代码
cd debs
sudo dpkg -i *.deb
# 如果出现依赖缺失报错,执行下面修复
sudo apt -f install

⚠️ 内网机器如果完全断网,apt -f install无法联网拉包,所以外网下载那一步一定要确保所有依赖完整

若内网执行dpkg -i *.deb报依赖缺少,说明外网下载漏包,外网机重新执行下载命令。

  1. 解压源码,编译安装
bash 复制代码
cd ../src
tar -xf Python-3.11.9.tgz
cd Python-3.11.9

./configure --prefix=/usr/local/python3.11 --enable-optimizations --with-ensurepip=install
make -j$(nproc)
sudo make altinstall
  1. 软链接(可选)
bash 复制代码
sudo ln -s /usr/local/python3.11/bin/python3.11 /usr/bin/python3.11
sudo ln -s /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3.11
  1. 验证
bash 复制代码
python3.11 --version
pip3.11 --version

三、离线额外补充:pip离线安装whl包(如果你后续还要装python库)

如果你还需要numpy等python包,外网机下载whl放到离线包里:

外网机器执行:

bash 复制代码
mkdir -p ~/python311_offline/whl
python3.11 -m pip download numpy -d ~/python311_offline/whl

内网安装whl:

bash 复制代码
pip3.11 install --no-index --find-links=./whl numpy

⚠️ 重要提醒(架构匹配!)

外网下载deb的机器CPU架构,必须和内网UOS机器完全一致!

  • 内网是飞腾arm64 → 外网必须也是arm64统信UOS去下载deb
  • 内网x86_64 → 外网必须x86_64统信UOS
    如果架构不一样,deb包无法在内网安装!

四、一键脚本版本(外网一键下载全部包,复制保存为download_py311_offline.sh

bash 复制代码
#!/bin/bash
set -e
WORKDIR=~/python311_offline
mkdir -p ${WORKDIR}/{debs,src,whl}
sudo apt update
sudo apt install -y --download-only build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev liblzma-dev tk-dev
sudo cp /var/cache/apt/archives/*.deb ${WORKDIR}/debs/
cd ${WORKDIR}/src
wget [https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz](https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz)
cd ${WORKDIR}
dpkg -l | grep -E "build-essential|zlib1g-dev|libncurses5-dev|libgdbm-dev|libnss3-dev|libssl-dev|libreadline-dev|libffi-dev|libsqlite3-dev|libbz2-dev|liblzma-dev|tk-dev" > pkg_list.txt
cd ~
tar -zcvf python311_offline.tar.gz python311_offline
echo "离线包生成完成: ~/python311_offline.tar.gz"

赋予执行:

bash 复制代码
chmod +x download_py311_offline.sh
./download_py311_offline.sh

内网安装脚本 install_py311_offline.sh

bash 复制代码
#!/bin/bash
set -e
cd debs
sudo dpkg -i *.deb
cd ../src
tar -xf Python-3.11.9.tgz
cd Python-3.11.9
./configure --prefix=/usr/local/python3.11 --enable-optimizations --with-ensurepip=install
make -j$(nproc)
sudo make altinstall
sudo ln -s /usr/local/python3.11/bin/python3.11 /usr/bin/python3.11
sudo ln -s /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3.11
echo "Python3.11安装完成"
python3.11 --version
相关推荐
陈皮波比茶1 小时前
k8s 快速入门
java·kubelet
Json____1 小时前
基于 Spring Boot + Vue3 的校园自习室座位预约系统实战
java·管理系统·it学习·wwwoop.com
刘广睿1 小时前
视频抽帧做图文笔记:帧选择策略与自动化封面挑选
图像处理·音视频·短视频·效率工具·python3.11
计算机毕设定制辅导-无忧学长1 小时前
《基于Java的旧物回收管理系统设计与实现》
java·开发语言
墨狂之逸才1 小时前
Android WebView 初始缩放:什么时候该设置 100%,什么时候不要设置
android
彧azz1 小时前
Java学习语法篇:键盘录入
java·笔记·学习
xcl09251 小时前
24小时自助健身房系统开发:从架构设计到落地实践
java·spring boot
淡淡的香烟1 小时前
AndroidKMP之导航和WebView
android
焦虑的说说2 小时前
jvm专题
java