背景
目标centos服务器在生产内网,不通外网,因此无法直接通过yum install来安装
centos离线安装sshpass
离线安装一般有两种方式
其一,源码编译安装,【不建议】
其二,rpm包安装,建议
1. rpm离线包安装sshpass-【建议】
未做测试,或许不需要epel-release.rpm也可安装sshpass
yum install --downloadonly --downloaddir /tmp/sshpass/ epel-release
由于我是在本地虚拟机centos上执行该命令,而我已解决在这台主机上安装了sshpass,此时想获取rpm包,会报错
yum install --downloadonly --downloaddir /tmp/sshpass/ sshpass
为了获取sshpass的rpm安装包,使用reinstall命令,即可获取sshpass rpm包
yum reinstall --downloadonly --downloaddir /tmp/sshpass/ sshpass
然后把获取到的rpm包传到centos生产机上,执行命令安装
rpm -ivh --force --nodeps epel-release-7.11.noarch.rpm
rpm -ivh --force --nodeps sshpass-1.06-2.el7.x86_64.rpm
如果目标已经安装了对应软件,可以使用-Uvh
rpm -Uvh --force --nodeps epel-release-7.11.noarch.rpm
rpm -Uvh --force --nodeps sshpass-1.06-2.el7.x86_64.rpm
参数解释
- -U:升级软件,如果软件尚未安装,则安装软件
- -i:安装模式,如果指定的rpm包尚未安装,则安装,如果已经安装了该rpm包,并且具有最新版本,则不会执行任何操作
- -v:显示详细信息
- -h:以#号显示安装进度
- –force:强制安装,及时存在冲突或不完全安装的情况也进行安装
- –nodeps:不考虑相依属性的关系,即使存在依赖问题也进行安装
2. 源码编译安装-【不建议】
最开始选择源码编译安装,结果报错
# 下载最新源码包,编译安装
wget https://sourceforge.net/projects/sshpass/files/latest/download
tar xvzf sshpass-1.10.tar.gz
cd sshpass-1.10.tar.gz
./configure
make
make install
# yum安装
yum -y install sshpass
安装过程报错,因为该centos上没有gcc等编译环境,想要安装还得再去下载安装gcc环境
因此,我是干脆选择了另一种安装方式,rpm包安装