#!/usr/bin/env bash
# -- this really is the only solution that worked for me on snap :/
ruby -v
if ! command -v ruby &> /dev/null
then
echo "Going to try to install ruby (ideally 3.1.2)"
# - install rebenv (following ruby-build really is needed eventhough it doesn't look like it)
mkdir -p ~/.rbenv
cd ~/.rbenv
git clone https://github.com/rbenv/rbenv.git .
# if $HOME/.rbenv/bin not in path append it, otherwise don't change it
echo $PATH | tr ':' '\n' | awk '{print " " $0}';
if [[ ":$PATH:" != *":$HOME/.rbenv/bin:"* ]]; then
echo "might want to put $HOME/.rbenv/bin in your path"
export PATH="$HOME/.rbenv/bin:$PATH"
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc.lfs
fi
eval "$(rbenv init -)"
rbenv -v
# - install ruby-build, odd, this really is needed for ruby to install despite it not looking like ruby build is need at the bottom
mkdir -p ~/.ruby-build
cd ~/.ruby-build
git clone https://github.com/rbenv/ruby-build.git .
# if $HOME/.ruby-build/bin not in path append it, otherwise don't change it
echo $PATH | tr ':' '\n' | awk '{print " " $0}';
if [[ $PATH != *"$HOME/.ruby-build/bin"* ]]; then
echo "might want to put $HOME/.ruby-build/bin in your path"
export PATH="$HOME/.ruby-build/bin:$PATH"
# echo 'export PATH="$HOME/.ruby-build/bin:$PATH"' >> ~/.bashrc.lfs
fi
ruby-build --version
# - install ruby without sudo -- using rbenv
mkdir -p ~/.local
# ruby-build 3.1.2 ~/.local/
rbenv install 3.1.2
rbenv global 3.1.2
fi
ruby -v
# - Original Prover doesn't work on SNAP
# Proverbot's way to install ruby
# # First, install Ruby, as that is for some reason required to build the "system" project
# git clone https://github.com/rbenv/ruby-build.git ~/ruby-build
# mkdir -p ~/.local
# PREFIX=~/.local ./ruby-build/install.sh
# ~/.local/ruby-build 3.1.2 ~/.local/
# ref: https://superuser.com/questions/340490/how-to-install-and-use-different-versions-of-ruby/1756372#1756372
5条答案
按热度按时间06odsfpq1#
在Ubuntu 12.04 LTS上,我让它可以与以下内容一起工作:
inkz8wg92#
使用1.9.3的brightbox包。你必须添加他们的repo,但是为了保持简短,这里只使用他们的帮助页面:http://blog.brightbox.co.uk/posts/next-generation-ruby-packages-for-ubuntu
rkkpypqq3#
第一种方法
来源
http://lenni.info/blog/2012/05/installing-ruby-1-9-3-on-ubuntu-12-04-precise-pengolin/
新的Ubuntu发行版刚刚推出,随之而来的是大量的新软件包。我个人非常密切地跟踪Ruby的发展,但是Ubuntu上默认的Ruby仍然是1.8系列,我不推荐。Ruby 1.9有一些性能改进,特别是1.9.3,与1.9.2相比有很多改进。
然而,正如我在之前的一篇文章中所阐述的,在Ubuntu上获得Ruby 1.9系列而不使用RVM代替1.8并不容易,如果你对细节感兴趣,请阅读这篇文章。
简短的版本是:可以通过安装ruby-1.9.1包来获得Ruby 1.9.3-p0(该包称为1.9.1,因为它是ABI版本)。
如果要将Ruby 1.9设置为默认值,请执行以下操作:
如果你想让它成为你的专属Ruby,并摆脱Ruby 1.8,请按照卸载说明操作。
编辑:我今天发现还有一个叫ruby1.9.3的软件包,不过这只是一个代理软件包,它本身没有任何文件,只依赖于ruby1.9.1。
Ruby使用两种并行的版本控制方案:"Ruby库兼容版本"(本软件包为1.9.1),类似于库SONAME,以及"Ruby版本"Debian中的Ruby包是使用Ruby库兼容版本命名的,这有时会让不太了解Ruby开发的用户感到困惑。这个包依赖于ruby1.9.1包,并提供了从1.9.3版可执行文件和手册页到1.9.1版对应文件的兼容性符号链接。
好像没有Ruby。
第二种方法
此外,我发现这个链接很有用,它非常简单和有效。
http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/
uqdfh47h4#
从源代码编译是标准方法。
从Here下载源代码,使用README文件获取说明。
另一种方法是apt包管理器系统。
是的,这将安装Ruby 1.9.2。它有一个1.9.1的“库兼容版本”,因此得名。
如果你安装了'ruby'包,你会得到旧的Ruby 1.8。
ztyzrc3y5#
在我的集群中,这确实是唯一有效的解决方案: