ubuntu 离线安装包,以 vim 为例

整个过程主要分为"联网电脑上下载打包 "和"离线电脑上安装使用"两大步。

在联网电脑上:准备离线安装包

  1. 创建并进入工作目录。为了保持整洁,我们创建一个专门存放包的文件夹:

    bash 复制代码
    mkdir -p ~/offline-vim
    cd ~/offline-vim
  2. 下载 vim 及其所有依赖包 。这里用了一条命令,它会自动分析 vim 的全部依赖并下载 :

    bash 复制代码
    apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances vim | grep "^\w" | sort -u)

    命令执行后,~/offline-vim 文件夹里会出现很多 .deb 文件。

  3. 生成软件包索引文件 。为了让 apt 能识别这个文件夹为一个"软件源",需要生成索引 :

    bash 复制代码
    sudo apt install dpkg-dev -y       # 安装所需工具
    dpkg-scanpackages -m . /dev/null | gzip -9c > Packages.gz

    这个 Packages.gz 文件就是 APT 的"目录",记录了有哪些包以及它们的依赖关系 。

  4. 打包并传输到U盘 。将整个 offline-vim 文件夹复制到U盘:

    bash 复制代码
    cd ~
    cp -r offline-vim /media/你的U盘路径/

    请将 /media/你的U盘路径/ 替换为实际的U盘挂载点。

在离线电脑上:配置本地源并安装

  1. 从U盘复制到系统 。将U盘插入离线电脑,把整个 offline-vim 文件夹复制到一个方便的地方,比如家目录 :

    bash 复制代码
    cp -r /media/你的U盘路径/offline-vim ~/
  2. 配置本地 APT 源。我们需要告诉系统,把这个文件夹当作安装源 。

    bash 复制代码
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份原文件
    echo "deb [trusted=yes] file:///home/你的用户名/offline-vim ./" | sudo tee -a /etc/apt/sources.list
    • [trusted=yes] 表示信任这个本地源,跳过GPG密钥检查 。
    • file:///home/你的用户名/offline-vim 是包的路径。
    • 请务必将 你的用户名 换成实际的用户名。
    • 如果为了更加直观,可以将 /etc/apt/sources.list 中的其他源都注释了,只留下最后一行。
  3. 更新源并安装 vim。现在就可以像在线一样操作了:

    bash 复制代码
    sudo apt update      # 读取本地Packages.gz,更新列表 
    sudo apt install vim # 从本地安装vim及其依赖 

    注意这里执行的是 sudo apt update 而不是 sudo apt upgrade

    执行之后,用命令 apt list 查询可安装的依赖,或者定点查询 apt search

  4. 验证安装。安装完成后验证一下:

    bash 复制代码
    vim --version
  5. 其它验证方式。如果安装的是一些依赖,则可以使用如下命令进行检查:

bash 复制代码
apt list --installed | grep libusb
# 或者
dpkg -l libusb-1.0-0

⚠️ 关键注意事项

  • 系统版本必须一致 :联网和离线电脑的 Ubuntu 版本(如 20.04、22.04)和系统架构(如 amd64) 必须相同,否则依赖可能不兼容 。
  • 用完记得恢复源 :安装成功后,建议删除或注释掉 sources.list 里添加的那一行,并把备份的 .bak 文件还原,以免影响后续使用。

整个过程就是这样。如果在下载依赖包或者配置源的时候遇到什么报错,随时把具体信息发给我,我帮你看看问题出在哪。

相关推荐
xiaoliuliu123457 小时前
CentOS 7 安装 gcc-c++-4.8.5-44.el7.x86_64.rpm 详细步骤(含依赖解决)
linux·c++·centos
海天一色y7 小时前
Vim 编程完全指南:从入门到精通
编辑器·vim·excel
嵌入小生0077 小时前
数据库 --- SQLite/命令/select等增删改查语句/数据库编程 --- Linux
linux·数据库·sqlite·select·sql语句·update·数据库编程
圥忈&&丅佽&&扗虖7 小时前
修改ubuntu IP
linux·ubuntu
何中应7 小时前
ubuntu如何设置远程工具连接
linux·运维·ubuntu
黑蛋同志7 小时前
Rocky Linux 10 上搭建 社区版 GitLab CE
linux·运维·gitlab
程序猿编码7 小时前
深入解析:一款能识别TLS流量特征的Linux内核连接跟踪模块
linux·网络·安全·内核模块·tls
fygfh.7 小时前
Linux外设之 串口(UART)的使用
linux·运维·单片机
yuanmenghao7 小时前
WSL + Docker GPU 环境排查:NVIDIA-SMI couldn‘t find libnvidia-ml.so 问题分析与解决
linux·运维·服务器·docker·容器
@小匠7 小时前
Ubuntu 22.04系统国内镜像源配置指南
ubuntu