软件交付形式、兼容性与授权边界
一、四种常见的软件交付形式同一个软件可能以四种形态到你手里交付形式谁负责依赖和升级常见位置仓库 DEB/RPM包管理器/usr 、/etc单独下载的 DEB/RPM包管理器结合当前仓库由软件包决定预编译程序或压缩包管理员/opt 、/usr/local源码构建管理员由编译参数决定责任划分很清晰前两种由包管理器负责依赖和升级出问题容易追溯后两种由管理员自己负责包括依赖、升级、卸载的全过程。二、什么时候才用预编译或源码仓库没有所需版本或功能时才考虑预编译程序或源码构建。也就是说优先级是仓库包优先。仓库里的版本经过验证依赖自动处理卸载干净。预编译程序和源码构建是补位手段不是首选。源码项目的常见流程是 configure 或 cmake然后 make最后 make install不同项目选择其中一种配置工具。课件以 Nginx 为例指定安装目录和运行身份生成编译规则文件 Makefile再编译并安装。三、二进制兼容编译好的程序不能随便搬家已经编译好的程序里写死了它期望的发行版、CPU 架构和运行库。课件总结了四个检查维度发行版与版本Ubuntu、Debian、Rocky 等系统库有差异。CPU 架构amd64、arm64、ppc64le、riscv64 等。运行库与 ABIC 库版本和 ABI 不匹配就无法运行。来源与签名确认文件来源可信。对应的检查命令命令作用cat /etc/os-release查看发行版uname -m查看 CPU 架构dpkg --print-architecture查看系统包架构file /opt/nginx/sbin/nginx显示二进制文件的 CPU 架构ldd /opt/nginx/sbin/nginx显示运行时需要的共享库dpkg -S /opt/nginx/sbin/nginx查询文件属于哪个包特别说明第三组的结果源码安装到 /opt/nginx 的文件dpkg -S 查不到记录因为它是源码安装不归 APT 管理。这也从侧面印证了包管理器只认自己安装的东西。把 Nginx 迁移到麒麟、openEuler 等系统时先查看发行版和 CPU 架构再确认依赖库是否满足要求。已经编译好的程序不能默认直接运行条件不明确时在目标系统重新编译更稳妥。四、软件源不只是地址镜像、缓存与离线4.1 镜像站常用 Ubuntu 镜像包括阿里云、清华大学、中国科学技术大学、南京大学和 Ubuntu 官方。要区分两种地址软件仓库供 APT 下载软件包和索引ISO 下载站提供系统安装镜像两种地址不能混用。4.2 两个缓存目录目录保存内容/var/lib/apt/lists仓库索引/var/cache/apt/archives下载的软件包4.3 离线下载Ubuntu 只下载软件包用 sudo apt install --download-only tree Rocky 安装 dnf-plugins-core 插件后用 dnf download --resolve --alldeps --destdir ./packages tree 下载包及依赖。课件强调离线准备要记录发行版本、CPU 架构、仓库快照时间和软件包校验值。只复制一个主软件包通常不能构成可重复的离线安装方案。这句话的意思是离线安装的难点从来不在主包而在主包背后的一串依赖。五、版本管理保持、比较与升级影响5.1 固定版本sudo apt-mark hold tree 可以锁定软件包不让它被升级apt-mark showhold 查看锁定了哪些apt-mark unhold 解除锁定。适合场景某个版本经过验证很稳定不想被例行升级打破。5.2 比较版本返回 0 表示当前版本不低于 1.7。这是脚本化判断版本是否达标的通用写法。5.3 升级前的影响检查apt changelog tree | head -n 30 查看更新日志systemctl --failed 查看失败的服务test -f /var/run/reboot-required cat /var/run/reboot-required 检查是否需要重启。升级前先看这三样避免升级带来的意外。六、授权边界sudo 不必给完整的 root课件 D.5 的核心思想sudo 可以把固定管理任务授权给指定用户不必提供完整的 root 权限。流程是管理用户 yangge 通过 sudoers 策略获得受限管理动作。策略要回答四个问题谁、在哪台主机、可切换为哪些身份、允许执行哪些命令。sudo -l 可以验证当前授权。课件示例创建了一条只允许执行 apt update 和 apt install tree 的规则验证后立即删除临时规则。配套的告诫很严肃不要为包管理器添加任意参数通配。软件包维护脚本会以 root 身份运行软件来源和允许安装的包名都属于授权边界。七、DNF另一套世界的对应物Rocky、RHEL、AlmaLinux 和 openEuler 常用 RPM/DNF。管理任务和 APT 一一对应管理任务Ubuntu / DebianRocky / RHEL更新仓库索引apt updatednf makecache搜索软件包apt search treednf search tree查看包信息apt show treednf info tree安装软件包apt install treednf install tree删除软件包apt remove treednf remove tree查询是否安装dpkg -l treerpm -q tree查询文件归属dpkg -S /usr/bin/treerpm -qf /usr/bin/treeDNF 还有三个特色能力软件包组dnf group install 一次准备一类工作环境安装前要查看组内软件和事务影响、事务历史dnf history 可以查询软件包操作记录dnf history undo ID 会重新计算依赖不等同于文件系统快照执行前还要确认仓库是否保留所需版本、补充查询dnf repolist、dnf list --showduplicates tree、dnf provides */tree。八、下篇小结交付形式有四种仓库包优先预编译和源码是补位手段。二进制兼容看四件事发行版、CPU 架构、运行库与 ABI、来源签名条件不明确就在目标系统重新编译。版本可以 hold 固定可以脚本化比较升级前要查日志、失败服务和重启要求。sudo 授权可以精确到具体命令包管理命令的来源和包名都是授权边界。DNF 与 APT 任务一一对应包组、事务历史是其特色

相关新闻

ZFSP 系列三相变频电源技术参数与接线规范

ZFSP 系列三相变频电源技术参数与接线规范

ZFSP 系列三相变频电源技术参数与接线规范 本文整理卓尔凡 ZFSP 系列三相变频电源的核心技术参数、型号规格与接线规范,供工程师选型、安装、运维参考。 一、核心技术参数 1. 输入参数 输入电压:三相 380V10%输入频率:50Hz/60Hz功率因数&…

2026/10/10 9:16:55 阅读更多 →
DeepGEMM实战:FP8与MoE场景下的高性能矩阵乘法优化指南

DeepGEMM实战:FP8与MoE场景下的高性能矩阵乘法优化指南

1. 从一块GPU的算力浪费说起如果你最近在折腾大模型推理或者训练,大概率会遇到一个很尴尬的局面:明明买的是算力很猛的卡,跑起矩阵乘法来却总觉得没吃满。尤其是当模型里出现大量MoE结构、或者需要做低精度量化推理的时候,通用矩阵…

2026/10/10 9:16:54 阅读更多 →
Spring 事务属性详解

Spring 事务属性详解

Spring 事务属性详解 Spring 的 Transactional 注解提供了一组属性,用来精确控制事务的行为。这些属性决定了事务如何传播、隔离级别、超时时间、是否只读,以及哪些异常触发回滚。 一、事务属性总览属性类型默认值作用propagationPropagationREQUIRED事务…

2026/10/10 9:16:54 阅读更多 →

最新新闻

高通 IQ9075 大模型 Benchmark 全维度实测:从算力基准到场景落地,TaoToken 统一 Key 打通评测链路

高通 IQ9075 大模型 Benchmark 全维度实测:从算力基准到场景落地,TaoToken 统一 Key 打通评测链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 15:59:48 阅读更多 →
同一数据库中两个表间复制数据:用 TaoToken 统一 Key 打通 AI 辅助 SQL 生成与校验

同一数据库中两个表间复制数据:用 TaoToken 统一 Key 打通 AI 辅助 SQL 生成与校验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 15:59:48 阅读更多 →
5 分钟用 Ollama 跑 DeepSeek Coder 33B:VS Code 自动补全 + Gradio 本机 Web Chat 全流程

5 分钟用 Ollama 跑 DeepSeek Coder 33B:VS Code 自动补全 + Gradio 本机 Web Chat 全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 15:59:48 阅读更多 →
FRFT做LFM参数估计:原理、离散实现与工程避坑指南

FRFT做LFM参数估计:原理、离散实现与工程避坑指南

简介:这份资源面向雷达、通信与信号处理方向的学习者和研究人员,聚焦线性调频(LFM)信号的参数估计问题,借助分数阶傅里叶变换(FRFT)在时频域上揭示信号时变频率特性,从而提取中心频率…

2026/10/10 15:59:48 阅读更多 →
YOLOv8-pose本地部署实战:从环境搭建到跌倒检测

YOLOv8-pose本地部署实战:从环境搭建到跌倒检测

简介:本资源是一套开箱即用的人体姿势识别实战方案,面向人工智能初学者、计算机视觉开发者及教学实践者,解决图片与视频中人体关键点检测与姿态分析的快速落地问题。压缩包共4个文件(31.33MB),含YOLOv8s-po…

2026/10/10 15:59:47 阅读更多 →
从零打造Linux无线热点:hostapd配置实战与排错指南

从零打造Linux无线热点:hostapd配置实战与排错指南

聊到把一台普通Linux设备变成无线热点,绕不开的工具就是hostapd。我在实际项目里用它把一台旧笔记本和一张USB无线网卡改造成了机房临时调试用的接入点,说实话,这个工具配置起来不算难,但坑确实不少,尤其是初学者容易卡…

2026/10/10 15:58:46 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →