【Ubuntu】离线环境下Git LFS(deb包)安装与验证完整教程

在嵌入式开发、服务器部署等场景中,我们常遇到无网络访问的环境,此时通过在线命令安装软件变得不现实。本文以Git LFS(大文件管理工具)为例,详细讲解如何通过本地deb包完成安装、验证,并解决常见问题,适配Ubuntu 22.04系统(其他Debian系系统可参考),全程实操可复制。

一、前言:为什么需要离线安装Git LFS?

Git LFS(Git Large File Storage)是Git的扩展工具,专门用于管理大文件(如固件、模型、压缩包、镜像等),解决Git原生不适合存储大文件、导致仓库臃肿、克隆缓慢的问题。

在无网络的服务器/开发机上,无法通过sudo apt install git-lfs在线安装,此时最便捷的方式就是提前下载对应系统的deb安装包,通过本地安装完成部署------这也是本文的核心场景。

本文适配场景:Ubuntu 22.04(amd64架构)、无网络环境、已获取git-lfs deb安装包(本文以git-lfs_2.13.3_amd64.deb为例)。

二、前期准备

  • 本地deb安装包:提前从有网络的电脑下载git-lfs对应版本的deb包(需匹配系统架构,如amd64、arm64),本文使用git-lfs_2.13.3_amd64.deb
  • 权限准备:确保拥有sudo权限(安装软件需管理员权限)。
  • 依赖确认:Git LFS依赖Git,需确保服务器已安装Git(可通过git --version验证,无Git可先通过deb包安装Git)。

三、完整安装步骤(实操可复制)

步骤1:上传deb包到服务器

由于服务器无网络,需通过U盘、SSH文件传输(如scp)等方式,将下载好的git-lfs_2.13.3_amd64.deb包上传到服务器的指定目录(如~/download)。

示例(本地有网电脑通过scp上传,需服务器开启SSH):

bash 复制代码
scp git-lfs_2.13.3_amd64.deb wsw@wsw:~/download

步骤2:进入deb包所在目录

通过cd命令进入deb包存放的目录,示例:

bash 复制代码
cd ~/download

步骤3:执行deb包安装命令

使用dpkg命令安装deb包,这是Debian系系统本地安装deb包的核心命令,格式为sudo dpkg -i 包名.deb

具体执行命令:

bash 复制代码
sudo dpkg -i git-lfs_2.13.3_amd64.deb

步骤4:解决依赖报错(可选)

若执行安装命令后,出现"缺少依赖"的报错(如提示缺少libc6、git等),无需手动下载依赖(无网环境无法下载),可执行以下命令修复(前提是服务器已提前安装好所有依赖):

bash 复制代码
sudo apt -f install -y

该命令会自动检测并修复deb包安装过程中缺失的依赖,若依赖未提前安装,需先通过deb包手动安装对应依赖。

步骤5:Git LFS初始化(关键步骤)

安装完成后,必须执行初始化命令,才能让Git识别并使用Git LFS功能,命令如下:

bash 复制代码
git lfs install

初始化成功后,会提示:Git LFS initialized.,此时Git LFS已正式可用。

四、安装验证(3种方法,确保安装成功)

安装完成后,建议通过以下3种方法验证,确保Git LFS能正常使用,避免后续使用时出现问题。

方法1:查看Git LFS版本(最直接、最准确)

执行版本查看命令,若能正常显示版本号,说明安装成功:

bash 复制代码
git-lfs --version

成功输出示例(版本号与安装包一致):

bash 复制代码
git-lfs/2.13.3 (GitHub; linux amd64; go 1.17.3)

若提示git-lfs: 未找到命令,说明安装失败,需重新检查安装步骤或deb包是否适配系统。

方法2:通过dpkg查看安装状态

使用dpkg命令查看git-lfs的安装状态,命令如下:

bash 复制代码
dpkg -l | grep git-lfs

成功输出示例(以ii开头,代表安装成功且正常可用):

bash 复制代码
ii  git-lfs  2.13.3  amd64  Git Large File Storage

说明:dpkg输出中,开头的"ii"代表软件已安装且正常;"rc"代表已卸载但配置文件未删除;"un"代表未安装。

方法3:验证Git LFS功能可用性

可通过简单的Git LFS命令,验证其是否能正常工作,例如查看Git LFS支持的命令:

bash 复制代码
git lfs help

若能正常显示Git LFS的所有可用命令(如track、pull、push等),说明功能正常,可用于管理大文件。

五、常用命令

复制代码
# 初始化(仓库第一次用)
git lfs install

# 跟踪某类大文件
git lfs track "*.bin"
git lfs track "*.model"
git lfs track "*.zip"
git lfs track "*.img"

# 查看跟踪了哪些
git lfs track

# 正常提交即可
git add .gitattributes  # 这个文件要提交
git add 大文件.bin
git commit -m "add large file"

六、常见问题排查

  • 问题1:安装时提示"错误的架构"? 解决:确认deb包架构与服务器一致(如服务器是amd64,需下载amd64版本,而非arm64),重新下载对应架构的deb包。
  • 问题2:初始化时提示"git: 'lfs' is not a git command"? 解决:安装未成功,重新执行sudo dpkg -i命令安装,若有依赖报错,执行sudo apt -f install修复。
  • 问题3:能查看版本,但无法使用git lfs命令? 解决:重新执行初始化命令git lfs install,确保输出"Git LFS initialized."。

六、总结

在无网络环境下,通过deb包安装Git LFS的核心流程可总结为:上传deb包 → 执行dpkg安装 → 修复依赖(可选) → 初始化 → 验证,全程无需联网,操作简单且可复现。

对于嵌入式开发、服务器部署等无网场景,这种本地安装方式是最高效的解决方案。安装完成后,即可使用Git LFS管理项目中的大文件,避免Git仓库臃肿,提升克隆、提交效率。

后续若需使用Git LFS管理大文件,可执行git lfs track "*.bin"(跟踪bin格式大文件)等命令,后续正常提交即可,Git会自动通过LFS管理大文件。

相关推荐
w6100104662 小时前
CKA-2026-StorageClass
linux·运维·服务器·cka·storageclass
吕司2 小时前
Linux线程同步
linux·服务器·开发语言
桦02 小时前
[Linux复习]:网络
linux·运维·网络
REDcker2 小时前
Git worktree:多工作区并行开发与实践
git·worktree
何中应2 小时前
Linux的systemctl命令
linux·运维·服务器
lifewange2 小时前
Git版本管理
大数据·git·elasticsearch
IMPYLH2 小时前
Linux 的 mktemp 命令
linux·运维·服务器·bash
-SGlow-2 小时前
Linux相关概念和易错知识点(51)(mmap文件映射、共享内存原理、malloc的原理)
linux·c语言·算法·内核
尘世壹俗人2 小时前
idea提交git版本由于中文文件名卡死不动
java·git·intellij-idea