离线安装软件包方法(rpm,源编译)

一、简介

很多时候我们的正式生产环境会由于安全等原因而无法访问互联网,所以当我们需要某些软件的时候就要用离线安装的方法了。常见的方法分为俩种,一是rpm包安装,二是编译安装。

二、rpm包安装

rpm包安装也分为俩种,rpm命令直接安装和yum命令安装

rpm命令离线安装

rpm命令安装可以安装指定版本的软件包,但需要注意的是有的软件包和俄罗斯套娃一样需要各种依赖包,经常性的出现安装A包前要先安装B包,安装B包又需要先安装C包.......

1、先通过各种方式获取所需的所有rpm包(官网下载,命令wget下载等)

将下载的rpm包上传内网服务器

2、rpm命令

语法:

rpm    参数     软件包全名

参数:

-i    安装

-v   显示过程 

-h   显示进度%

-q   查询软件包是否已安装

-a   所有,常与-q配合使用,表示查看所有已安装的软件包

-e    卸载,卸载已安装的软件包 

 安装软件包

 yum命令离线安装(推荐)

相比于直接用rpm命令安装,yum安装有了几个优缺点

优点:yum命令安装是自动到yum源里寻找想要安装的软件包和其依赖包并按相应的顺序安装,且自动选择安装路径,集成到系统命令中,无需人为的干预

缺点:过渡依赖yum源,yum源里的软件包都是是别人编译好的,可能有着版本低,架构不同,功能受限,存在漏洞等问题

1、外网配置yum源

先准备一台能连接外网的服务器或者虚拟机(192.168.175.20),配置一个网络源,下面是我准备好的一个配置阿里源的脚本,可以直接使用

#!/bin/bash
#执行前检查是否虚拟机是否连接网络

function yum1 () {
mkdir /etc/yum.repos.d/zxb;                        #创建一个目录fuhai
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/zxb;                    #将原有的yum源都移动到目录fuhai下
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo;    #下载ali源文件
yum clean all;                  #清除原来的缓存
yum makecache fast;             #建立新的缓存,可省略
yum repolist all;                 #显示当前所有yum源的状态,

}
$1                           #执行时输入参数  yum1

 执行脚本

会生成阿里源文件

yum命令

语法:

yum     参数       软件包

参数:

install                   #下载

remove                #卸载

search                     #查看当前yum源里是否有可以下载的软件包

clean                    #清除旧yum源的缓存

repolist                #列出当前所配置yum源指向的仓库名称,状态,是否启用等信息

2、下载yum工具包,生成repotrack命令

指定下载目录,然后下载需要的软件包(其依赖包会自动下载)

repotrack     包名    -p      指定下载的目录 

 查看目录,会发现所有软件包和其需要的所有依赖包都被下载好了

3、为安装包目录生成yum仓库元数据

createrepo    目录名称

执行成功后,会在安装包目录下生成一个存放元数据的目录repodata

打包,压缩,上传至内网服务器(192.168.175.40)

 4、在内网服务器上配置本地yum源

为模拟内网效果,我断开了网络安装

将已上传的压缩包解压

 在/etc/yum.repo/目录下配置本地yum源文件,下面的配置可以参考下  

需要注意的是,在/etc/yum.repo/目录下可能有其他的yum源文件,为不影响我们新yum源文件的使用,可以将此目录下的其他yum源文件移动至其他目录

​[Gcc]                          
#池名称,表示标识名称
name=gcc                    
#描述
baseurl=file:///usr/local/gcc            
#仓库地址写到本地安装包目录     file:// 本地   http:// 网络    ftp:// 局域网
enabled=1                       
#是否开启本仓库,0不开启1开启,不写此项也是开启
gpgcheck=0                   
# 是否检测密钥,0不检测1检测,如果本地可以选0,互联网的源,通常要为1
 5、安装gcc 

最后验证是否安装成功

三、编译安装(推荐) 

编译安装的优缺点

优点:可以手动下载最新源码,可以按照需求设置参数,路径等

缺点:和rpm命令安装一样,无法自动解决依赖关系

1、先通过各种方式获取所需的所有源码包

下面是一些常用软件的下载网址,可以到里面获取源码包

Nginx:nginx: download

MySQL:MySQL :: Download MySQL Community Server

JDK:Java 下载 |Oracle 中国

Redis:下载 - Redis

将下载好的二进制包上传至内网服务器并解压

 2、编译、安装

进入解压后的目录会发现有一个叫做configure的脚本文件,这个脚本会检查系统环境,包括操作系统类型、CPU 架构和安装所必须的依赖项,也可以通过添加一些参数来指定安装路径、依赖包位置等。

执行完后会生成Makefile文件(编译的时候需要从里面读取指令)。

然后使用make和make insatll来进行编译和安装

需要注意的是make是安装C语言编写的应用时用的命令,Java的用javac

最后进入上面我们指定的安装目录并启动服务验证

希望能对兄弟们有一定的帮助 

<think>好的,我现在需要帮用户解决离线安装的问题。首先,用户之前询问了如何在Win11上安装WSL,现在转向离线安装,可能他们遇到了网络问题或者需要在没有互联网的环境下部署。 首先,我得明确离线安装的具体场景。用户可能需要在多台机器上安装,或者网络受限,无法在线下载。这时候离线安装包和手动传输文件是关键。 接下来,回顾之前的对话,用户已经了解WSL的基本安装步骤,所以现在需要扩展离线方法。我需要考虑如何获取离线安装包,比如从微软官网下载WSL的.msixbundle文件,或者导出已安装的发行版。 然后,步骤部分需要详细说明如何准备安装包,安装依赖项,手动安装发行版。特别是PowerShell命令,比如Add-AppxPackage,以及导出和导入发行版的命令,比如wsl --export和--import。 同时要注意用户可能遇到的问题,比如依赖项缺失,如何启用Windows功能,处理安装错误,以及如何配置环境。需要提醒用户检查系统版本和虚拟化设置,这些在离线环境下可能更容易被忽略。 还要考虑用户是否需要图形界面或Docker集成,但这些在离线情况下可能比较复杂,可能需要额外步骤,比如提前下载安装包。 最后,确保语言简洁,步骤清晰,避免使用专业术语过多,方便用户理解。需要验证每个步骤的可行性,特别是离线环境下命令是否有效,是否需要管理员权限等。可能还需要提醒用户备份系统,防止操作失误。</think>### 离线安装分步指南 --- #### **1. 离线安装的定义与场景** - **定义**:无需联网环境,通过本地文件完成软件或系统的部署。 - **适用场景**: - 无网络或网络受限环境(如内网服务器、安全隔离设备)。 - 批量部署多台机器时避免重复下载。 - 软件版本需固定,防止自动更新导致兼容性问题。 --- #### **2. 离线安装通用步骤** ##### **步骤 1:准备离线安装包** - **方法 1:官方离线包下载** 访问软件官网(如微软、Python、Docker等),查找标有 **Offline Installer** 或 **Standalone Installer** 的安装包(通常后缀为 `.msi`、`.exe`、`.zip`)。 *示例*: - Python:选择 `Windows x86-64 executable installer` - Docker Desktop:选择 `Docker Desktop Installer.exe`(需提前下载依赖文件) - **方法 2:导出在线安装包** 在可联网的机器上,通过工具(如 `wget`、`curl` 或包管理器)下载所需文件,复制到离线环境。 *示例(Linux 下载 Python 依赖)*: ```bash mkdir offline_packages && cd offline_packages apt-get download python3 python3-pip ``` ##### **步骤 2:安装依赖项** - **Windows**: - 若安装包依赖 `.NET Framework` 或 `Visual C++ Redistributable`,需提前离线安装。 - *示例*:通过 `ndp48-x86-x64-allos-enu.exe` 安装 .NET 4.8。 - **Linux**: 使用 `dpkg` 或 `rpm` 手动安装依赖包(需提前下载所有 `.deb`/`.rpm` 文件)。 *示例*: ```bash sudo dpkg -i *.deb # 安装当前目录所有 deb 包 ``` ##### **步骤 3:执行安装命令** - **Windows**:双击离线安装包(如 `.msi`)或通过命令行静默安装: ```cmd msiexec /i package.msi /quiet # 静默安装 ``` - **Linux**:使用包管理器指向本地目录: ```bash sudo apt install ./local-package.deb # Debian/Ubuntu sudo yum localinstall ./local-package.rpm # CentOS/RHEL ``` --- #### **3. 特殊场景:WSL 离线安装** - **目标**:在无网络环境下部署 WSL 和 Linux 发行版。 - **步骤**: 1. **下载 WSL 离线包**: - 从 [微软官网](https://docs.microsoft.com/zh-cn/windows/wsl/install-manual) 获取 `.msixbundle` 文件(如 `Ubuntu_2204.1.7.0_x64.appx`)。 2. **手动安装 WSL 内核**: 将 `wsl_update_x64.msi` 复制到离线机器并安装。 3. **导入 Linux 发行版**: - 在联网机器上导出已安装的发行版: ```powershell wsl --export <发行版名称> install.tar ``` - 将 `install.tar` 复制到离线机器,执行导入: ```powershell wsl --import <发行版名称> 安装路径 install.tar ``` --- #### **4. 常见问题与解决** - **问题 1:依赖项缺失** - *现象*:安装时报错“缺少 .dll 文件”或“未满足依赖关系”。 - *解决*:通过工具(如 `Dependency Walker`)分析依赖,补全文件。 - **问题 2:Windows 功能未启用** - *示例*:安装 WSL 需手动启用虚拟化和子系统功能: ```powershell dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` - **问题 3:安装包签名错误** - *解决*:关闭系统强制签名验证(仅临时生效): ```cmd bcdedit /set testsigning on ``` --- #### **5. 工具推荐** - **Windows**: - Ninite(多软件批量离线安装) - Chocolatey Offline Mode(需提前缓存包) - **Linux**: - `apt-offline` / `yumdownloader`(生成离线包列表) - `dpkg-scanpackages`(创建本地仓库) --- 通过以上方法,可覆盖大多数离线安装需求。**关键点**:提前规划依赖项、验证安装包完整性、备份系统以防失败。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值