当前位置: 首页 > news >正文

蓝易云 :Deepin添加Ubuntu源

下面给你一套**“可控变更、可回滚、最小化影响面”**的方案:在 Deepin 上“引入 Ubuntu 源”时,不把系统升级成“混血发行版”,而是通过<span style="color:#e53935">Pinning(优先级锁定)</span>做“按需取包”。这样才能把风险压到可运营范围内。🛡️


先讲结论:直接全量加 Ubuntu 源 = 高风险变更

Deepin 的仓库体系本质是 Debian 系路线(例如 Deepin 20 的仓库就明确基于 Debian 10)。(deepin.org)
把 Ubuntu 源当“主仓库”使用,常见后果是:依赖树被重排、核心库被替换、系统组件被牵引升级,最终出现桌面崩、软件冲突、无法升级等连锁反应。⚠️

风险评估表(给你做变更决策用)

变更方式风险等级影响面建议
直接把 Ubuntu 源写进 sources 并常规升级系统级(glibc/systemd/mesa 等都可能被拉动)不建议
Ubuntu 源 +<span style="color:#e53935">Pinning</span>仅针对少数包取用可控(仅指定包)推荐
不加 Ubuntu 源,改用容器/编译/第三方包格式业务级最推荐 ✅

标准工作流(建议你按“变更单”思路执行)🚀

识别系统基线 → 备份源配置 → 安装密钥环 → 追加Ubuntu源(仅一份list) → 配置Pinning(默认拒绝Ubuntu包) → 更新索引 → 仅安装指定包 → 验收 → 留回滚点

1) 识别你的 Deepin 基线(避免“源写错版本线”)

cat /etc/os-release cat /etc/debian_version uname -m apt-cache policy | sed -n '1,80p'

逐条解释:

  • cat /etc/os-release:确认 Deepin 版本与发行信息(这是变更的“基线记录”)。

  • cat /etc/debian_version:判断底层 Debian 版本线,避免“依赖代际不匹配”。

  • uname -m:确认架构(常见是x86_64/amd64),决定源的arch选择。

  • apt-cache policy:查看当前 APT 识别到的仓库与优先级,为后续 Pinning 校验做证据链。


2) 备份 sources(先留回滚点,别裸奔)

sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%F) sudo cp -a /etc/apt/sources.list.d /etc/apt/sources.list.d.bak.$(date +%F) sudo mkdir -p /etc/apt/preferences.d

解释:

  • 两次cp -a:完整保留权限与结构,出现异常可一键恢复。

  • preferences.d:后面要放<span style="color:#e53935">Pinning</span>配置文件,做到“策略可审计”。


3) 准备 Ubuntu 仓库签名信任(避免 “NO_PUBKEY”)

sudo apt update sudo apt install -y ubuntu-keyring

解释:

  • ubuntu-keyring:提供 Ubuntu 仓库签名信任锚点;Ubuntu 的安全文档也明确说明其用于引导全局信任密钥环。(documentation.ubuntu.com)

  • 这一步的价值是:你后面加源后,apt update才能通过签名校验,不会卡在公钥错误上。


4) 追加 Ubuntu 源(只加一份、只做“候选池”)

注意:你要求“不要插入链接”,所以这里用占位符。你只要把镜像地址和版本代号填进去即可。

创建文件:

sudo tee /etc/apt/sources.list.d/ubuntu.list >/dev/null <<'EOF' deb [arch=amd64] <UBUNTU_MIRROR_URL> <UBUNTU_CODENAME> main universe deb [arch=amd64] <UBUNTU_MIRROR_URL> <UBUNTU_CODENAME>-updates main universe deb [arch=amd64] <UBUNTU_MIRROR_URL> <UBUNTU_CODENAME>-security main universe EOF

逐条解释:

  • tee ... ubuntu.list:把 Ubuntu 源单独放一个文件,便于开关与回滚。

  • arch=amd64:限定架构,减少无关索引与误匹配(如果你的uname -m不是 amd64,就不要这样写)。

  • main universe:先从最常用仓库开始,不要一口气把所有组件都开全,降低引入面。

  • -updates / -security:保证安全与更新通道完整(否则装出来的软件可能卡在旧版本)。


5) 关键一步:Pinning(默认拒绝 Ubuntu 包,按需放行)🔒

创建 Pinning 文件:

sudo tee /etc/apt/preferences.d/99-ubuntu-pin >/dev/null <<'EOF' Package: * Pin: release o=Ubuntu Pin-Priority: 100 EOF

解释:

  • Pin: release o=Ubuntu:按“发布方”为 Ubuntu 的包统一降权(如何定义与匹配规则属于 APT 标准机制)。(manpages.debian.org)

  • <span style="color:#e53935">Pin-Priority: 100</span>:含义是“除非没有更合适来源,否则不主动安装该来源版本”;它能阻止系统被 Ubuntu 包带着跑偏。优先级区间规则在 APT 机制里有明确定义。(douglasrumbaugh.com)

管理口径:这一步就是把 Ubuntu 源定位为“备选供应商”,而不是“主供应商”。

仅放行某一个包(示例)

sudo tee /etc/apt/preferences.d/20-allow-somepkg >/dev/null <<'EOF' Package: <PKG_NAME> Pin: release o=Ubuntu Pin-Priority: 501 EOF

解释:

  • 只对<PKG_NAME>提升优先级,让它可以从 Ubuntu 源被选中;其余包依旧拒绝。

  • <span style="color:#e53935">501</span>的目的:让它在候选版本中“可被安装”,但又不至于把全系统升级策略改写。(douglasrumbaugh.com)


6) 更新索引 + 验证候选版本(一定要验收)

sudo apt update apt-cache policy <PKG_NAME>

解释:

  • apt update:拉取索引并触发签名校验,验证“源可用 + 信任链正确”。

  • apt-cache policy:检查该包的候选版本来自哪里(Deepin/Ubuntu),确认 Pinning 是否生效,这是验收证据

安装指定包(两种方式二选一):

sudo apt install -y <PKG_NAME>

或(更强控制:指定版本号)

sudo apt install -y <PKG_NAME>=<VERSION_STRING>

解释:

  • 第一种:让 APT 在 Pinning 规则下自动决策(适合你已经放行的包)。

  • 第二种:强制指定版本号,属于“强管控变更”,最适合生产/关键桌面环境。


7) 回滚方案(出问题别硬扛,快速止血)🧯

sudo rm -f /etc/apt/sources.list.d/ubuntu.list sudo rm -f /etc/apt/preferences.d/99-ubuntu-pin sudo rm -f /etc/apt/preferences.d/20-allow-somepkg sudo apt update

解释:

  • 删除源文件 + 删除 Pinning:恢复到变更前的仓库策略。

  • apt update:刷新索引,确保系统不再引用 Ubuntu 候选池。

  • 如果已经装过 Ubuntu 包:建议用apt-cache policy找到 Deepin 仓库版本号,再用apt install 包=版本号拉回(这是可审计回滚)。


最后的务实建议(少踩坑就是赚钱)😄

  • 想“装软件更全”,最稳的路径通常是:容器 / 独立打包 / 编译安装,而不是把系统仓库混起来。

  • 如果你坚持引入 Ubuntu 源:务必执行<span style="color:#e53935">Pinning 默认拒绝</span>,并且只放行“少量、明确的包”,把变更从“系统级”降维到“业务级”。

如果你把这三项贴出来:/etc/os-releaseapt-cache policy头 80 行、以及你想从 Ubuntu 装的包名清单,我可以直接给你生成一份“按你当前 Deepin 版本线定制”的<UBUNTU_CODENAME>推荐与 Pinning 放行模板,确保策略更贴合你环境。

http://www.jsqmd.com/news/330252/

相关文章:

  • 探寻2026优质水性香薰:实力精油供应商深度评测,喷雾香薰/疗愈香氛/油性香氛精油/香薰纸片,精油OEM企业有哪些
  • 2026年市面上有实力的投影机出租供应厂家推荐,6000流明投影机/全息投影机/34000流明投影机,投影机出租厂家推荐
  • 端菜鸟别再乱用getElement了!querySelector全家桶真香指南(附避坑技巧)
  • 蓝易云 :Spring redis使用报错Read timed out排查解决
  • 基于Spring Boot的房屋租赁系统设计-开题报告(2)
  • 蓝易云 :Docker创建Consul并添加权限控制
  • 基于SpringBoot的毕业设计选题管理系统设计与实现 开题报告
  • 基于Spring Boot的商城系统的设计与实现 开题报告
  • [特殊字符] 思源笔记 S3 插件 v1.0.2 更新:手把手教你配置 PicList 导出
  • 欧姆龙 CP1E 与四台 E700 变频器通讯那些事儿
  • 基于单片机与12864显示屏的多种函数波形信号发生器设计
  • 基于Spring Boot框架的智慧物业后台管理系统的设计与实现-开题报告
  • 上班必备摸鱼神器——摸了吗
  • 【阵列优化】遗传算法稀布阵列天线中的应用【含Matlab源码 15034期】
  • 基于PCA主成分分析的BP神经网络回归预测
  • 全协议嵌入式读卡器模块是一款工业级射频前端解决方案 其技术规格说明书:支持125KHz/13.56MHz双频段,兼容ISO14443A/B/C、ISO15693、iClass等全协议栈。
  • 带负载转矩前馈补偿的永磁同步电机无感FOC:探索与实践
  • 【天线】随机虚拟天线阵列黎曼几何的MVDR波束成形仿真整合随机VAA、HPD矩阵黎曼几何和MVDR波束成形技术【含Matlab源码 15031期】
  • 多编组列车仿真:基于Fluent与Simpack的奇妙联动
  • 导师推荐10个降AIGC网站,千笔帮你轻松降AI率
  • 【信息融合】卡尔曼滤波多车辆GNSS UWB融合定位【含Matlab源码 15033期】
  • 基于MATLAB/Simulink的光伏逆变器仿真模型搭建与探索
  • 【计算机毕设】基于Python的Django-html基于混沌系统敏感文本信息加密算法研究
  • 对比一圈后!碾压级的AI论文网站 —— 千笔·专业论文写作工具
  • 【Linux】应用层自定义协议与序列化
  • 聚焦2026!城南核心地段现房交付成婚房热门之选,南都新城/实景现房/新房/现房/学区房/新楼盘/婚房,婚房实力厂家推荐
  • 实时数据库在智能交通与车路协同中的应用
  • 鸿蒙HarmonyOS 6应用开发:从零基础到App上线
  • 2026年市面上靠谱的环链气动葫芦直销厂家怎么选,牧田气动葫芦/气动葫芦/固定式气动葫芦,环链气动葫芦制造厂家哪家靠谱
  • 看完就会:全网爆红的AI论文写作软件 —— 千笔·专业学术智能体