在 Ubuntu 系统上离线安装 make
需要提前准备好所有依赖包。以下是详细的操作步骤:
准备工作:在有网络的机器上下载所需软件包
-
查找依赖关系
在有网络的 Ubuntu 机器上(需与目标机器相同版本)执行:
bash# 获取 make 及其依赖包列表 apt-get install --reinstall -d make
-
下载所有依赖包
bash# 创建下载目录 mkdir ~/make-offline cd ~/make-offline # 下载 make 及其所有依赖 apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests make | grep "^\w" | sort -u)
-
复制到离线机器
将整个
make-offline
目录打包复制到离线 Ubuntu 机器:bashtar cvf make-offline.tar make-offline
离线安装步骤
-
解压软件包
在离线机器上:
bashtar xvf make-offline.tar cd make-offline
-
安装依赖包
bash# 安装所有 .deb 包(按依赖顺序安装) sudo dpkg -i *.deb # 修复可能的依赖问题 sudo apt-get install -f --allow-unauthenticated
-
验证安装
bashmake --version # 应输出类似: GNU Make 4.3
备选方案:从源码编译安装(无需 apt)
如果无法获取预编译包,可直接编译源码:
-
下载源码包
在有网络的机器下载:
bashwget http://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz
-
复制到离线机器并解压
bashtar xvf make-4.4.1.tar.gz cd make-4.4.1
-
编译安装
bash# 配置 ./configure --prefix=/usr/local # 编译 make # 安装 sudo make install # 创建符号链接 sudo ln -s /usr/local/bin/make /usr/bin/make
-
验证
bashmake --version
常见问题解决
-
依赖缺失错误
如果
dpkg -i
报错,检查缺失的包名,从有网机器下载对应 .deb 包补充到离线目录后重试。 -
/usr/bin/make
已存在备份原文件:
bashsudo mv /usr/bin/make /usr/bin/make.bak sudo ln -s /usr/local/bin/make /usr/bin/make
-
编译 make 时报错
确保有基本编译工具:
bash# 离线安装 gcc 和 libc-dev(需按同样方法提前准备) sudo dpkg -i gcc_*.deb libc-dev*.deb
关键提示
-
系统版本匹配
下载依赖包的 Ubuntu 版本必须与离线机器完全一致(可通过
lsb_release -a
查看) -
架构匹配
确保都是 amd64 或 arm64 架构(通过
uname -m
查看) -
最小化依赖
基础系统需要以下核心包(如果连这些都没有,需优先安装):
libc6, gcc, binutils, libgcc
-
批量下载工具
完整下载命令(包含所有递归依赖):
bashapt-get download $(apt-rdepends make | grep -v "^ " | sort -u)
按照这些步骤操作,即可在完全离线的 Ubuntu 系统上成功安装 make
。