Linux离线安装软件

在 Linux 各发行版中离线安装软件的核心思路是:提前下载软件包及其依赖,再通过本地包管理工具进行安装。以下是不同发行版的离线安装方法及示例:


一、Debian/Ubuntu(APT 系)

方法 1:手动下载 .deb

  1. 在线环境下载软件包及依赖

    apt download <package-name>  # 下载主包
    apt-rdepends <package-name> | grep -v "^ " | xargs apt download  # 递归下载所有依赖
    

    将所有 .deb 文件打包到离线机器。

  2. 离线安装

    sudo dpkg -i *.deb  # 安装所有下载的包(可能需处理依赖顺序)
    

方法 2:使用 apt-offline

  1. 生成安装签名文件(离线机器):
    apt-offline set install.sig --install-packages <package-name>
    
  2. 在线环境下载数据包
    apt-offline get install.sig --bundle install.zip
    
  3. 离线安装
    apt-offline install install.zip
    

二、Red Hat/CentOS/Fedora(RPM 系)

方法 1:使用 yumdownloaderdnf download

  1. 在线环境下载包及依赖
    dnf install --downloadonly --downloaddir ./packages <package-name>
    # 或
    yum install yum-utils
    yumdownloader --resolve <package-name>
    
  2. 离线安装
    dnf localinstall *.rpm  # 或使用 rpm -ivh *.rpm(需手动处理依赖)
    

方法 2:创建本地仓库

  1. 将 RPM 包放入目录(如 /opt/local-repo)。
  2. 生成仓库元数据:
    createrepo /opt/local-repo
    
  3. 创建仓库配置文件(/etc/yum.repos.d/local.repo):
    [local-repo]
    name=Local Repository
    baseurl=file:///opt/local-repo
    enabled=1
    gpgcheck=0
    
  4. 使用 dnf install <package-name> 安装。

三、Arch Linux/Manjaro(Pacman)

方法 1:使用缓存或手动下载

  1. 在线环境下载包

    pacman -Sw <package-name>  # 仅下载不安装
    

    包文件默认保存在 /var/cache/pacman/pkg/

  2. 离线安装

    pacman -U /path/to/package.pkg.tar.zst
    

方法 2:使用 pkgctl(AUR 包)

对于 AUR 软件(如 yay):

  1. 在线下载 PKGBUILD 文件:
    git clone https://aur.archlinux.org/<package-name>.git
    
  2. 将整个目录复制到离线环境,手动构建:
    makepkg -si
    

四、SUSE/openSUSE(Zypper)

  1. 在线下载包及依赖
    zypper --pkg-cache-dir ./packages download <package-name>
    
  2. 离线安装
    zypper install --allow-unsigned-rpm ./packages/*.rpm
    

五、通用方法(跨发行版)

1. 使用静态二进制文件

  • 直接下载软件的预编译二进制(如 Go、Rust 程序):
    chmod +x binary-file
    ./binary-file
    

2. 源码编译安装

  1. 在线下载源码包(.tar.gz.tar.xz)。
  2. 离线环境解压后编译:
    tar -xzf package.tar.gz
    cd package
    ./configure
    make
    sudo make install
    

3. 使用容器(Docker)

  1. 在线导出镜像:
    docker pull <image-name>
    docker save -o image.tar <image-name>
    
  2. 离线导入:
    docker load -i image.tar
    

注意事项:

  1. 依赖地狱:离线安装需确保所有依赖版本兼容,推荐使用工具自动解析依赖。
  2. 版本匹配:离线包需与系统架构(x86_64/ARM)和发行版版本一致。
  3. 本地仓库:对需要频繁安装的场景,建议配置本地仓库简化操作。

根据具体需求选择合适的方案,优先使用发行版官方工具简化依赖管理。

文章作者: oohmygosh
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Blog
喜欢就支持一下吧