使用WhatWeb网安工具需要具备ruby环境。yum install ruby
安装的不是最新版本的ruby,而是ruby 2.0,后续可能会导致使用WhatWeb报错,ruby -v
查看版本,WhatWeb需要ruby2.5以上版本。
卸载已安装的Ruby
我的第一个ruby是yum install ruby
安装的。
ruby -v
已安装的ruby查看版本,先gem uninstall ruby
卸载Ruby gem,然后sudo yum remove ruby
卸载整个Ruby
源码安装Ruby
在下载某版本ruby,例如ruby-2.2.3.tgz,然后tar -xvzf ruby-2.2.3.tgz
,然后cd ruby-2.2.3
, 然后./configure
,然后make
,然后sudo make install
。此时./ruby -v
有效,ruby -v
会报错找不到命令/usr/bin/ruby: No such file or directory
。
注意到系统环境目录虽然有好几个(echo $PATH
查看),但是这里指明了ruby要在/usr/bin/ruby这个位置。
ln -s /root/ruby-2.7.8/ruby /usr/bin/ruby
,完毕。
多个版本的Ruby并存
简单,无非删掉旧软连接,建立新软连接。
Gem
ruby的gem是什么?
包管理器。类似php的composer、Python的pip或Java的Maven。它允许您轻松地安装、卸载和查找Ruby应用程序和库。
-
安装gem:好像源码安装完ruby,gem也安装完了,如果
gem -v
没反应,那就再yum install rubygems
安装。注意,
yum install rubygems
会顺带安装ruby2.0,并重新更替软链接/usr/bin/ruby,此时你执行ruby -v
会显示ruby 2.0.0p648 (2015-12-16) [x86_64-linux],可我自己安装的是ruby2.7。那还能怎么办,手动替换软链接呗。每个gem都属于自己版本的ruby,就像
pip -V
会显示pip 22.3.1 from D:\Anaconda2\envs\Anaconda3.9\lib\site-packages\pip (python 3.9)说明该pip属于python 3.9。我还没找到显示gem对应的ruby版本的方法。但确实存在对应关系:因为我ruby -v显示ruby 2.0.0时gem -v显示2.0.14.1,当我ruby -v显示ruby 2.7.8时gem -v显示3.1.6。
ruby 2.0.0的gem安装的库如iconv不能被ruby 2.7.8调用,就像pip一样。
-
gem source
查看gem源。gem有换源的操作,但是我执行
gem install iconv
也没等太久,就没管。 gem list
查看gem安装的库。
Bundler
Ruby的Bundler是一个用于管理Ruby项目的依赖关系的工具(安装、卸载、锁定和管理项目的依赖库)。
ruby的bundler和gem有什么关系和区别?
Bundler 是用于管项目的依赖(安装、卸载、锁定和管理项目的依赖库)。而 Gem 单纯地安装库,就像pip。
-
安装:
gem install bundler
,一般会报错,因为你没有指定安装的bundler版本,报错附带提示你可用于你的ruby的最高bundler版本如2.7.8,然后执行gem install bundler-2.4.22 -v 2.7.8
-
bundler -v
# 查看该版本 -
根据我的观察,在项目里使用
bundler install
安装项目依赖时,库源就是gem sources
显示的网址,下载速度略慢,还能接受。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.ink0.cn/index.php/2023/12/18/linux%e5%ae%89%e8%a3%85ruby/
棋
Ruby是啥语言啊,没听过,和Python比起来如何? ?
AffettoIris博主
@棋: ruby语言太小众啦,但好像也是世界上编程语言使用率TOP前20,有庞大的使用人群和社区。我学计算机学了四年,这次还是我第一次上手ruby,也只是简单搭个ruby解释器。
肯定还是python简单、库多,python可是TOP前三呀 ?