You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置gdebi使其优先搜索本地挂载光盘中的自定义软件包?

如何配置gdebi使其优先搜索本地挂载光盘中的自定义软件包?

看来你在制作Jammy自定义ISO时遇到了gdebi死磕在线源的问题,旧版本能用新版本不行确实挺闹心的。我给你几个针对性的解决思路,你可以挨个试试:

方法一:给本地源设置最高优先级

gdebi本质是调用APT处理依赖,所以让APT优先认本地源是核心。你已经加了本地源,但可能优先级不够,我们可以通过APT pinning强制本地源优先级拉满:

  1. 在你的late_command脚本里,创建APT优先级配置文件:
cat > /etc/apt/preferences.d/local-cdrom-pin << EOF
Package: *
Pin: origin ""
Pin-Priority: 1001
EOF

这个配置会让所有本地文件源的包优先级设为1001(远高于默认的500),APT会优先选本地包,不会再跑去在线源碰运气。

  1. 确保本地源配置正确并更新APT缓存:
echo 'deb [trusted=yes] file:/media/cdrom/pool/extras jammy main restricted' >> /etc/apt/sources.list
apt update -y

方法二:强制APT离线模式

如果上面的方法没效果,我们可以直接让APT彻底断网,只能用本地资源。调用gdebi时加上离线参数:

gdebi --non-interactive --option Acquire::Offline=true /media/cdrom/pool/extras/你的自定义包.deb

Acquire::Offline=true会让APT跳过所有网络源的检查,只在本地已有的包和源里找依赖。

方法三:临时替换sources.list(粗暴但有效)

要是前两种都不行,我们可以在运行gdebi前,把所有在线源临时注释掉,只留本地源:

  1. 备份原sources.list:
cp /etc/apt/sources.list /etc/apt/sources.list.tmp
  1. 注释掉所有HTTP/HTTPS开头的在线源:
sed -i 's/^deb http/#deb http/' /etc/apt/sources.list
sed -i 's/^deb https/#deb https/' /etc/apt/sources.list
  1. 添加本地源并更新缓存:
echo 'deb [trusted=yes] file:/media/cdrom/pool/extras jammy main restricted' >> /etc/apt/sources.list
apt update -y
  1. 用gdebi安装目标包:
gdebi --non-interactive /media/cdrom/pool/extras/你的自定义包.deb
  1. 恢复原sources.list:
mv /etc/apt/sources.list.tmp /etc/apt/sources.list

额外提醒

  • 确认/media/cdrom挂载正确:Ubuntu安装过程中默认挂载点有时候是/cdrom而非/media/cdrom,你可以在脚本里用mount | grep cdrom检查一下。
  • 确保本地pool/extras里包含目标包的所有依赖包,不然就算断网,gdebi还是会因为找不到依赖报错。

备注:内容来源于stack exchange,提问作者Ani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:54:35