Linux离线安装软件
Linux离线安装软件
在 Linux 各发行版中离线安装软件的核心思路是:提前下载软件包及其依赖,再通过本地包管理工具进行安装。以下是不同发行版的离线安装方法及示例:
一、Debian/Ubuntu(APT 系)
方法 1:手动下载 .deb
包
-
在线环境下载软件包及依赖:
apt download <package-name> # 下载主包 apt-rdepends <package-name> | grep -v "^ " | xargs apt download # 递归下载所有依赖
将所有
.deb
文件打包到离线机器。 -
离线安装:
sudo dpkg -i *.deb # 安装所有下载的包(可能需处理依赖顺序)
方法 2:使用 apt-offline
- 生成安装签名文件(离线机器):
apt-offline set install.sig --install-packages <package-name>
- 在线环境下载数据包:
apt-offline get install.sig --bundle install.zip
- 离线安装:
apt-offline install install.zip
二、Red Hat/CentOS/Fedora(RPM 系)
方法 1:使用 yumdownloader
或 dnf download
- 在线环境下载包及依赖:
dnf install --downloadonly --downloaddir ./packages <package-name> # 或 yum install yum-utils yumdownloader --resolve <package-name>
- 离线安装:
dnf localinstall *.rpm # 或使用 rpm -ivh *.rpm(需手动处理依赖)
方法 2:创建本地仓库
- 将 RPM 包放入目录(如
/opt/local-repo
)。 - 生成仓库元数据:
createrepo /opt/local-repo
- 创建仓库配置文件(
/etc/yum.repos.d/local.repo
):[local-repo] name=Local Repository baseurl=file:///opt/local-repo enabled=1 gpgcheck=0
- 使用
dnf install <package-name>
安装。
三、Arch Linux/Manjaro(Pacman)
方法 1:使用缓存或手动下载
-
在线环境下载包:
pacman -Sw <package-name> # 仅下载不安装
包文件默认保存在
/var/cache/pacman/pkg/
。 -
离线安装:
pacman -U /path/to/package.pkg.tar.zst
方法 2:使用 pkgctl
(AUR 包)
对于 AUR 软件(如 yay
):
- 在线下载 PKGBUILD 文件:
git clone https://aur.archlinux.org/<package-name>.git
- 将整个目录复制到离线环境,手动构建:
makepkg -si
四、SUSE/openSUSE(Zypper)
- 在线下载包及依赖:
zypper --pkg-cache-dir ./packages download <package-name>
- 离线安装:
zypper install --allow-unsigned-rpm ./packages/*.rpm
五、通用方法(跨发行版)
1. 使用静态二进制文件
- 直接下载软件的预编译二进制(如 Go、Rust 程序):
chmod +x binary-file ./binary-file
2. 源码编译安装
- 在线下载源码包(
.tar.gz
或.tar.xz
)。 - 离线环境解压后编译:
tar -xzf package.tar.gz cd package ./configure make sudo make install
3. 使用容器(Docker)
- 在线导出镜像:
docker pull <image-name> docker save -o image.tar <image-name>
- 离线导入:
docker load -i image.tar
注意事项:
- 依赖地狱:离线安装需确保所有依赖版本兼容,推荐使用工具自动解析依赖。
- 版本匹配:离线包需与系统架构(x86_64/ARM)和发行版版本一致。
- 本地仓库:对需要频繁安装的场景,建议配置本地仓库简化操作。
根据具体需求选择合适的方案,优先使用发行版官方工具简化依赖管理。
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Blog!
喜欢就支持一下吧