一、linux安装ruby时遇到的错误
首先讲一下为什么不写Windows的,个人建议,最好不要用Windows环境,问题很多,需要安装的东西更多,而且未知的错误多,网上不一定查的到,我也安装过Windows的,也成功过,但是,有时运行会报错,后来放弃了,安了个Linux的,再后来用了mac系统,简直爽的飞起,闲话不多说,步入正题,Linux下安装步骤,其实也挺简单,就是有时会遇到错误,我经历的,把这个写下来,以便后人顺利把错误解决好,我也是找了好久谷歌才找到解决方案,妈妈呀
1、安装ruby
1、安装rvm
rvm是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境的管理和切换。
如果你打算学习 Ruby / Rails, RVM 是必不可少的工具之一。现在进行安装:
$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
------
$ curl -sSL https://get.rvm.io | bash -s stable
# 如果上面的连接失败,可以尝试:
$ curl -L https://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer | bash -s stable
好的,现在应该是顺利安装了rvm,让我们来验证一下,首先加载rvm环境资源
$ source ~/.rvm/scripts/rvm
ok!,那么查看一下rvm的版本,看看能不能识别到:
$ rvm -v
rvm 1.22.17 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
差不多这个样子,如果正确安装的话,好了,rvm现在算是安装完成,接着下一步,我很不幸的中枪了遇到了错误@_@
接着$ rvm requirements 检查一下依赖,如果没报错,说明没啥问题,我当时也这么认为.....
然后安装ruby,以2.2.3为例,执行:
$ rvm install 2.2.3 (指定ruby版本)
不幸发生了,报错,还是一堆错误,如下,如果你和我有一样的错误,别急,等下我说解决方案:
错误:
EVP_MD_CTX_init(EVP_MD_CTX *ctx);
^
openssl_missing.h:90:6: error: expected declaration specifiers or ‘...’ before ‘(’ token
void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx);
^
In file included from ossl.h:236:0,
from ossl_x509cert.c:10:
ossl_pkey.h:45:5: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
#if HAVE_BN_GENCB
^~~~~~~~~~~~~
ossl_pkey.h:45:5: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
ossl_pkey.h:45:5: warning: this use of "defined" may not be portable [-Wexpansion-to-defined]
ossl_x509cert.c: In function ‘DupX509CertPtr’:
ossl_x509cert.c:125:5: warning: implicit declaration of function ‘CRYPTO_add’; did you mean ‘CRYPTO_free’? [-Wimplicit-function-declaration]
CRYPTO_add(&x509->references, 1, CRYPTO_LOCK_X509);
^~~~~~~~~~
CRYPTO_free
ossl_x509cert.c:125:21: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
CRYPTO_add(&x509->references, 1, CRYPTO_LOCK_X509);
^~
ossl_x509cert.c:125:38: error: ‘CRYPTO_LOCK_X509’ undeclared (first use in this function); did you mean ‘CRYPTO_LOCK’?
CRYPTO_add(&x509->references, 1, CRYPTO_LOCK_X509);
^~~~~~~~~~~~~~~~
CRYPTO_LOCK
ossl_x509cert.c:125:38: note: each undeclared identifier is reported only once for each function it appears in
Makefile:301: recipe for target 'ossl_x509cert.o' failed
make[2]: *** [ossl_x509cert.o] Error 1
make[2]: Leaving directory '/home/suchao/.rvm/src/ruby-2.3.3/ext/openssl'
exts.mk:210: recipe for target 'ext/openssl/all' failed
make[1]: *** [ext/openssl/all] Error 2
make[1]: *** Waiting for unfinished jobs....
installing default nkf libraries
linking shared-object nkf.so
make[2]: Leaving directory '/home/suchao/.rvm/src/ruby-2.3.3/ext/nkf'
make[1]: Leaving directory '/home/suchao/.rvm/src/ruby-2.3.3'
uncommon.mk:203: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2
++ return 2
其实问题大致也能看懂,和openssl有关,应该是rvm默认的openssl没有找到,需要我们自己指定添加,然后百度、谷歌.........ing
最终被我在万能的stack overflow 上找到了解决方案,如下-----------
先执行:rvm pkg install openssl 先安装一下
然后:
$ rvm install 2.2.3 --with-openssl-dir=$HOME/.rvm/usr
$ rvm use 2.3.0 --default (设置ruby默认版本,后续如果需要安装多版本ruby,就用rvm来切换管理)
$ ruby -v
ruby 2.3.0 ...
$ gem -v
2.1.6
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
安装bundler(自动帮你安装各种所需gem的神器)
$ gem install bundler
当当当,奇迹出现,安装ruby成功了,6不6,哎,没毛病、老铁,别高兴太早,,,还有rails,众所周知,rails是ruby著名且最常用的web框架,可以很轻松的开发web系统,我们公司现在有前后端没分离的项目在用rails,也有前后分离的,用rails写后端接口,很方便的,闲话不多说,
2、安装rails
--version=3.2.1)
漫长的等待.........假装有个漏斗
测试一下:
$ rails -v
Rails 4.2.5
完成done!!!然后开始你的 Ruby,Rails 之旅吧。 欢迎来到 Ruby 的世界!
最后记一下linux安装rubymine吧,一个很好用的ide对于我这种菜鸟来说,大神基本都用文本编辑器
3、Linux安装rubymine
1、下载jdk1.8.从官网,首先,当然是要下载了
地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
按照需要选择不同的版本, 将下载下来的 .tar.gz 文件解压。 使用如下命令解压:
sudo tar zxvf ./jdk-7u45-linux-x64.tar.gz
为了方便管理,可将解压后的文件移至另一个文件夹。不做也行。
笔者将文件移至了 /opt/Java/jdk/ 目录下。为了方便下一步设置环境变量,将文件夹换了个短点的名字 —— jdk1.7
可使用如下命令对文件夹重命名 sudomv jdk1.7.0_45/ jdk1.7/
2、设置环境变量
编辑 .bashrc 文件, 在终端输入如下命令: vi ~/.bashrc
在该文件的末尾,加上以上几行代码:
export JAVA_HOME=/opt/Java/jdk/jdk1.7
export CLASSPATH=${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
3、jdk设置完后,安装rubymine:
1. 下载并安装RubyMine 2018 Linux。
2. 将JETBealScRACK.JAR复制到RubyMine 2018/bin
3. 在文件夹RubyMine 2018/bin中编辑文件“RubyMine.vmoptions”(或“RubyMine64.vmoptions”): 在文件末尾添加 -javaAgent:RubyMine 2018/bin / JetbrainsCrack.jar(根据具体安装目录添加)
4. 运行RubyMine 2018,输入任意字符注册激活即可。
运行rails server时如果报错:
在linux下运行rails server 出现There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)
原因是缺少依赖的组件nodejs 运行sudo apt-get install nodejs 安装nodejs,再重新运行rails server即可
二、mac下注意的问题
大致安装过程和上述差不多,只不过mac下使用homebrew包管理器安装
1、先安装Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装一些依赖:
$ brew install libxml2 libxslt libiconv
然后重复上述操作,
值得一提的是Homebrew从今年3月份改东西了应该是,我在安装iterm2时出现了错误,大致是没有找到包,
应该是用cask安装
Cask 常用软件
brew cask install iterm2 #安装iTerm 2
brew cask install launchrocket #管理软件后台服务
brew cask install google-chrome #安装Chrome
brew cask install the-unarchiver #解压软件
brew cask install alfred #效率软件
brew cask install qq #腾讯QQ
brew cask install evernote #云笔记软件
brew cask install sublime-text #文本编辑器
brew cask install skitch #ervernote配套的截图软件
brew cask install dropbox #文件同步软件
brew cask install zotero #网页收藏与文献管理软件
brew cask install anki #记忆软件
brew cask install virtualbox #虚拟机,可以装个Windows
brew cask install self-control #避免分心的软件
brew cask install vlc #视频软件
brew cask install appcleaner #应用清理
#Quick Look 系列
brew cask install qlcolorcode #预览脚本时自动代码配色
brew cask install qlstephen #预览未知拓展名的纯文本文件
brew cask install qlmarkdown #预览Markdown文件
brew cask install quicklook-json #预览JSON文件
brew cask install quicklook-csv #预览CSV文件
-----------生活感悟-----------
有自信是好事,但不要过度自信,认为别人都是垃圾
这样会使人产生厌恶