【支持Ubuntu22】Ambari3.0.0+Bigtop3.2.0——Step6—本地apt源

注意事项

本文基于 Ubuntu 22.04 LTS 适配,部分包名和配置与 RedHat/Rocky/CentOS 有差异,请勿直接复用其它系统命令 。如遇疑难欢迎在

VX 或 QQ 群与作者交流。

附录:完整内容和源代码下载请参照

https://doc.janettr.com/

一、场景说明

在 Ubuntu 22.04 集群或企业内网环境,经常需要批量分发/自动化安装 各类 DEB 包。自建 HTTP/本地 apt

源不仅解决了"离线环境下装包"问题,也让多节点集群部署极其高效可靠。

二、核心原理

  1. Nginx 提供 HTTP 服务,作为 DEB 包分发服务器
  2. 主节点生成本地 apt 索引(Packages.gz),所有节点通过 http 访问该索引
  3. 自动写入 /etc/apt/sources.list.d/xxx.list,批量 update,所有主机都可离线拉包

三、标准目录结构与权限

bash 复制代码
sudo mkdir -p /data/modules
sudo chown -R www-data:www-data /data/modules
sudo chmod -R 755 /data/modules

必须保证 Nginx 运行用户为 www-data,且 /data/modules 目录有 755 权限,否则出现 403 Forbidden 或找不到包。其实我就是root也没啥问题

四、DEB 包索引自动生成

4.1 工具准备

bash 复制代码
sudo apt update
sudo apt install -y dpkg-dev
  • 工具:dpkg-scanpackages(不要用 createrepo!)

4.2 自动化生成索引(仅主源节点)

bash 复制代码
cd /data/modules
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
  • 每次更新、增加或删除 .deb 包都要重新执行此命令,保持索引最新

和 RedHat/CentOS 不同,Ubuntu apt 仓库索引文件为 Packages.gz ,必须用 dpkg-scanpackages 工具自动生成,createrepo 等

rpm 工具全部无效。

五、全节点自动化添加 apt 源

5.1 统一生成源文件

在所有节点写入 /etc/apt/sources.list.d/ambari.list

复制代码
deb [trusted=yes] http://主源IP/ ./

例如主源为 192.168.3.1,则内容为
deb [trusted=yes] http://192.168.3.1/ ./

  • trusted=yes 禁用 GPG 校验,适合内网/离线测试
  • 每个节点都可以自动 update/upgrade

5.2 更新索引

bash 复制代码
sudo apt-get clean
sudo apt-get update
相关推荐
jzwalliser2 小时前
Ubuntu的美化:深度定制指南
ubuntu·gnome·美化
进击切图仔7 小时前
在 windows 和 ubuntu 中配置 host 文件
linux·windows·ubuntu
云边有个稻草人11 小时前
Ubuntu部署Prometheus与Alertmanager:服务接入和远程监控
数据库·ubuntu·prometheus
zho_uzhou11 小时前
ubuntu服务端运行vue网页步骤
linux·服务器·vue.js·ubuntu
我是小灰灰吖21 小时前
Ubuntu 22.04 安装 SSH 服务与远程调试环境配置指南
qt·ubuntu·ssh
BLi4ee1 天前
WSL 文件资源管理器左侧 Linux / Ubuntu 入口恢复
linux·ubuntu
自律最差的编程狗1 天前
从零搭建:VMware + Ubuntu + Docker + MySQL 完整指南
mysql·ubuntu·docker
BLUcoding1 天前
Ubuntu 开机自启 Kiosk 模式浏览器全屏展示网页配置指南
linux·运维·ubuntu
我是小灰灰吖1 天前
Qt崩溃捕获实战:qBreakpad从源码编译到崩溃分析全流程指南
linux·qt·ubuntu
kyshipit2 天前
Failed to take /etc/passwd lock: Invalid argument解决方案
ubuntu