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

如何将Ubuntu完整软件仓库下载至apt缓存以实现离线使用

如何将Ubuntu完整软件仓库下载至apt缓存以实现离线使用

我完全懂你想要的效果——把整个Ubuntu软件仓库的所有deb包都下载到apt缓存目录(/var/cache/apt/archives/)里,这样没网的时候也能随时安装任何软件。之前你试的sudo apt-get install --download-only *没起作用?那是因为这个命令的写法不对,我给你一步步讲清楚正确的操作,完全满足你要的「完整仓库、原生命令、简单易懂」的要求:


先理清几个前提

  • 你用的是Ubuntu LTS版本Jammy Jellyfish,只需要64位(amd64)的二进制deb包,我们的操作会自动适配这个需求
  • 磁盘空间要充足:整个Jammy的amd64仓库包体积很大,可能需要几十GB甚至上百GB的存储空间,提前确认好磁盘容量

具体操作步骤

  1. 更新本地包索引
    先确保你的本地包列表是最新的,能获取到仓库里的所有包信息:

    sudo apt update
    
  2. 导出所有可用包的名称列表
    用apt-cache命令把仓库里所有的包名导出到一个文本文件里,方便后续批量处理:

    apt-cache pkgnames > all_packages.txt
    

    执行完后,当前目录下会生成all_packages.txt,里面就是仓库里所有包的名字。

  3. 批量下载所有包到apt缓存
    用刚才生成的包列表,让apt只下载不安装,把所有包都存到/var/cache/apt/archives/里:

    sudo apt-get install --download-only $(cat all_packages.txt)
    

    ⚠️ 注意:过程中可能会遇到个别包因依赖冲突、架构不兼容等问题无法下载,apt会自动跳过这些包,不影响整体的下载进度,不用纠结这些提示。

  4. 验证下载结果
    切换到apt缓存目录,查看下载的deb包:

    cd /var/cache/apt/archives/
    ls -lh
    

    这里就能看到大量的.deb文件,就是你要的完整仓库内容了。


为什么之前的命令没用?

你之前试的sudo apt-get install --download-only *,在shell里*会被解释成当前目录下的所有文件名,而不是仓库里的所有包,所以这个命令其实是尝试安装当前目录的文件,完全不是你想要的效果,这就是为什么没成功。

离线使用说明

之后没网的时候,你直接用sudo apt install <软件包名>,apt会优先从本地缓存里读取已下载的deb包,不需要联网就能完成安装,和你提到的osdisk那种DVD导入缓存的效果完全一样。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 14:43:10