由于特殊的专用网络环境和安全策略等方面的原因,服务器往往无法访问互联网,这时我们还需要在服务器上安装软件,比如mysql、httpd。
那么如何选择安装方式最合适呢?接下来我就介绍一下我们离线安装软件mysql的方法,以及总结的解决方案。
1、下载软件的RPM包安装
首先,我们会想到直接下载对应RPM包安装,但这种方式你无法了解RPM包之间的依赖关系,往往当你安装rpm包时,可能会提示依赖另一个rpm包,就还需要去下载这个rpm包,回头可能这个rpm包还依赖另一个rpm,吐血。。。这样,往往会花大量的时间去尝试安装和下载所有的相关rpm包,不推荐此方式。
2、下载源码进行编译
采用这种方式的话,源码在服务器上编译时,一是可能比较耗时,二是也经常会报错,比如gcc的版本不匹配等,离线环境下对编译环境进行升级和调整也会是件麻烦事。
3、直接下载二进制包安装(推荐)
直接下载软件的二进制tar包,解压之后,进行相关的配置后,即可启动运行。一个字,爽!
对于我们的项目需求,就是在离线环境上安装mysql5.1版本(由于项目较老,指定安装这个版本),我们最终选择这种方式,具体过程如下:
1、下载安装包:
下载mysql5.1的二进制安装包,大家注意要根据自己的环境选择好下载32位还是64位,第一次我下载的是32位的安装过程中会报错。
代码语言:txt复制cd /usr/local/src/
wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.1/mysql-5.1.73-linux-x86_64-glibc23.tar.g
2、解压内容到/usr/local/mysql
代码语言:txt复制tar -zxvf mysql-5.1.73-linux-x86_64-glibc23.tar.gz
mkdir -p /usr/local/mysql mv mysql-5.1.73-linux-x86_64-glibc23/* /usr/local/mysql
3、创建用户mysql和组mysql,并修改目录属于mysql
代码语言:txt复制groupadd mysqluseradd -g mysql -s/sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql
##建立mysql用户和组,-s选项指定shell为/sbin/nologin
groupadd mysql
useradd -g mysql -s/sbin/nologin mysql
4、初始化数据库
代码语言:txt复制##初始化数据库
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
5、拷贝配置文件到软件指定目录,并赋予执行权限
代码语言:txt复制cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqldchmod 755 /etc/init.d/mysqld
6、添加开机启动,并启动mysql
代码语言:txt复制service mysqld startchkconfig --add mysqld
7、命令行可执行mysql,在/etc/profile内添加如下内容:
代码语言:txt复制export PATH=$PATH:/usr/local/mysql/bin
#使配置生效
source /etf/profile
#登陆
mysql -uroot -p
4、利用包管理工具安装软件
可采用另一种思路:在可联网机器上通过yum或apt包管理工具,下载好软件相关的所有依赖rpm包,然后拿着这些包copy到离线服务器上安装rpm包即可。
可采用如下步骤:
第一步:
Centos环境,通过yum在一台比线上机器OS更干净的一台机器上,执行类似的命令:
代码语言:txt复制yum install --downloadonly --downloaddir=/root/test mysql
完成相关依赖包的下载,下载到指定目录。
第二步:
然后我们拿着这些包去线上的机器上执行:
代码语言:txt复制rpm -ivh --force --nodeps *.rpm
没问题就ok。
如果有问题就再找缺失的相关依赖包即可。
5、创建镜像仓库离线安装软件
基于方案四的基础上,将通过yum下载下来的rpm包做成一个仓库,将仓库copy离线服务器上,配置源为这个仓库,直接yum install命令就装上了。
此方法更适合局域网内不同机器多次安装软件,由于我们的需求只是在一台机器上装上mysql即可,所以采用的方案2。
具体步骤如下,以Centos环境,安装httpd为例:
第一步:
就是通过yum在一台比线上机器OS更干净的一台机器上,执行类似的命令:
代码语言:txt复制yum install --downloadonly --downloaddir=/root/test httpd
完成相关依赖包的下载,下载到指定目录。
第二步:
还是在可以上网的机器上使用createrepo创建本地仓库
代码语言:txt复制yum install createrepocreaterepo /root/test/
代码语言:txt复制 #将该目录制作成软件仓库,并在第一步中已经包含了httpd的所有rpm包
ll /root/test/
第三步:
登陆没有外网的机器,把第二步的整个文件夹/root/test/copy过来。
这样就是一个现成的仓库了。再配置yum源为本地的这个仓库,然后就可以yum install了。
代码语言:txt复制[root@163 ~]# cat /etc/yum.repos.d/test.repo #写个repo文件
[test]
name=test
enable=1
gpgcheck=0
baseurl=file:///root/test/
[root@163 ~]# yum repolist
[root@163 ~]# yum install httpd
实际测试,http安装成功。
以上就是对于离线安装软件的几种解决方案,并实际举例mysql与httpd的安装。
—————END—————
喜欢本文的朋友,欢迎关注公众号 洪文聊架构,收看更多的精彩内容