此处使用的linux是ubuntu14,工具是Xshell和Xftp。readhat系列应该也差不多,就是系统配置文件不同而已,应公司要求搭建系统部署环境,使用ruby,rvm主要用于ruby的管理使用,rails是ruby安装中需要使用的一个gem包(目前我是这样理解的)之前部署过一次类似的环境,但是这次部署是离线的,也让我更深入的了解这个整体的关系已经常见错误的排查。
一、rvm和ruby的离线安装方式借鉴此链接https://rvm.io/rvm/offline
注意事项:
1,在linux中使用全程使用普通用户安装,普通用户新建使用useradd -m 选项(在home目录下会有普通用户的home,不然后期挺麻烦)。
2、rvm安装成功后rvm -v可查看版本。
3、echo rvm_archives_path=/path/to/tarballs/ >> ~/.rvmrc 其中这步改成自己tar包的目录,注意压缩包的格式,如果安装多个ruby版本,可直接将包放到archives目录下即可。
4、在运行完rvm requirements命令后会显示安装ruby所需的依赖包,这个比较麻烦,因为是离线安装所以需要在有线机器上做apt离线源(参考链接:https://blog.csdn.net/zp2006011242/article/details/79040172),然后拷到本地再安装,如果有线机器上显示该依赖包已经安装可以sudo apt-get remove先给卸载了,再apt-get install -d缓存到本地安装。可以用apt-cacahe denpends查看具体包之间的依赖关系。
5、在安装完ruby的时候如果切换到root用户再切换回普通用户ruby -v会不起作用,此时进行如下操作:
①rvm reload
②source ~/.rvm/scripts/rvm
③source ~/.rvm
④rvm use 2.2.0 --default
6、gem包的下载地址是https://rubygems.org/
7、在有线电脑上先安装rails 然后bundle package 再将vendor/cacah和Gemfile.lock拷到离线机器上安装。

8、如果在有线机器上bundle install报https的错误 将Gemfile里面的source改为http://rubygems.org/。如果报错在装某个软件的时候提示ruby版本太低的话可以将该gem包的版本降低,降低方法是写在Gemfile文件中,这样就会下载固定的版本,而不是目前最新的。

9、我在有线机器上先安装的ruby 然后安装bundler 再安装rails,ruby采用的是解压安装(参考https://www.cnblogs.com/xuliangxing/p/7132656.html)。记得加入环境变量。当初安装的时候报一个openssl目录访问的错误,解决方法是apt-get remove openssl-dev 然后再编译安装openssl 参考:https://www.cnblogs.com/a-du/p/7767810.html
./config -fPIC --prefix=/usr/local/openssl enable-shared
./config -t
make && make install
然后再编译安装ruby的时候加入参数
./configure --prefix=/usr/local/ruby --with-openssl-dir=/usr/local/openssl
10、当初编译安装的ruby某些时候ruby -v也会失效,source etc/profile即可。




