这篇文章的核心价值在于首次无网络(Internet访问)源码安装MySQL5.7的CM,没错,就像我个人遇到的情况一样。如果可以外网通信,那这里的内容其实是一行apt或者yum命令的事情。
公司为每个员工都提供两台机器,一台内网机一台外网机,内网机没有不能外网通信,但可以通过程序单向接收外网机的文件,即内网机安装软件都要在外网机下载好然后通过单行道扔进内网机。然后只有管理员有权限把文件从内网转入外网。我在内网机装好了虚拟机,虚拟机里面装了Ubuntu(16.04)和CentOS(7),准备源码安装MySQL5.7。因为不能外网通信,所以所有依赖包只能额外下载好ftp进系统里面,然后手动安装。CentOS还好,自带了ssh远程访问服务,Ubuntu连远程ssh都需要手动安装,我只能将Ubuntu的openssh安装包先传到CentOS上面,然后再rsync进来,这样Ubuntu也能远程了。接下来就是一个一个安装相关包,一个一个报依赖error,一个一个补依赖error。因为Ubuntu默认只是安装vi,所以也就额外安装了一个vim。
没有网络,不能apt不能yum,只要make或者dpkg或者rpm就满屏的依赖error,这样的经历是蛮蛋疼的,好在花了整个下午,最终在两个Linux系统上都成功地安装好了MySQL。相关的依赖包主要来自于pkgs网站( https://pkgs.org/ ),如果是其他版本的系统,可以去上面找找看。跟我的环境一样的话,就可以直接取用我的分享文件了https://pan.baidu.com/s/1sniag81,以下是其清单。
bison_3.0.4.dfsg-1_amd64.deb
cmake-2.8.12.2-2.el7.x86_64.rpm
cmake-3.10.1.tar.gz
cmake_3.5.1-1ubuntu1_amd64.deb
cmake-data_3.5.1-1ubuntu1_all.deb
cpp-4.8.5-16.el7.x86_64.rpm
gcc-4.8.5-16.el7.x86_64.rpm
gcc-c++-4.8.5-16.el7.x86_64.rpm
glibc-devel-2.17-196.el7.x86_64.rpm
glibc-headers-2.17-196.el7.x86_64.rpm
libbison-dev_3.0.4.dfsg-1_amd64.deb
libjsoncpp1_1.7.2-1_amd64.deb
libmpc-1.0.1-3.el7.x86_64.rpm
libncurses5-dev_6.0+20160213-1ubuntu1_amd64.deb
libsigsegv2_2.10-4_amd64.deb
libstdc++-4.8.5-16.el7.x86_64.rpm
libstdc++-devel-4.8.5-16.el7.x86_64.rpm
libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb
m4_1.4.17-5_amd64.deb
ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
openssh-client_7.2p2-4_amd64.deb
openssh-server_7.2p2-4_amd64.deb
openssh-sftp-server_7.2p2-4_amd64.deb
vim_7.4.1689-3ubuntu1_amd64.deb
vim-common_7.4.1689-3ubuntu1_amd64.deb
vim-runtime_7.4.1689-3ubuntu1_all.deb