怎样在Ubuntu上安装Ruby on Rails

2022年12月18日 | 分类: 【技术】

【环境】

Ubuntu22.04 + Ruby on Rails + PostgreSQL

【安装】

更新系统:

sudo apt-get update && sudo apt-get upgrade -y

安装必要的三方库:

sudo apt-get install -y wget vim build-essential openssl libreadline-dev libmysqlclient-dev curl git zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev autoconf automake libtool imagemagick libmagickwand-dev libpcre3-dev nodejs libpq-dev gcc g++ make bison build-essential libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev

安装 rbenv:

自行安装rbenv。将rbenv存储库从GitHub克隆到目录~/.rbenv中:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

接下来,添加~/.rbenv/bin到您的$PATH以便您可以使用rbenv命令行实用程序。通过更改~/.bashrc文件以便响应将来的登录会话来执行此操作:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

然后将命令~/.rbenv/bin/rbenv init添加到您的~/.basrc文件中,以便rbenv自动加载:

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

接下来,将您对~/.bashrc文件所做的更改应用于当前的shell会话:

source ~/.bashrc

使用该type命令验证是否已正确设置rbenv,该命令将显示有关该rbenv命令的更多信息:

type rbenv

您的终端窗口将显示以下内容:

rbenv is a function
rbenv ()
{
    local command;
    command="${1:-}";
    if [ "$#" -gt 0 ]; then
        shift;
    fi;
    case "$command" in
        rehash | shell)
            eval "$(rbenv "sh-$command" "$@")"
        ;;
        *)
            command rbenv "$command" "$@"
        ;;
    esac
}

更新 rbenv:

由于您使用Git手动安装了rbenv,因此您可以使用~/.rbenv目录中的git pull命令随时将安装升级到最新版本:

cd ~/.rbenv
git pull

这将确保使用最新版本的 rbenv。

卸载 rbenv:

如果您已经决定不再使用rbenv,则可以将其从系统中删除。

为此,首先在编辑器中打开~/.bashrc文件:

nano ~/.bashrc

在文件中查找并删除以下两行:

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

保存文件并退出编辑器。

然后使用以下命令删除rbenv和所有已安装的Ruby版本:

rm -rf `rbenv root`

注销并重新登录以将更改应用到shell。

安装 ruby-build 插件:

这个插件添加了rbenv install命令,简化了新版Ruby的安装过程:

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

使用 ruby-build 安装 Ruby:

列出Ruby的所有可用版本:

rbenv install -l

输出可供安装的多个版本:

2.7.7
3.0.5
3.1.3
jruby-9.4.0.0
mruby-3.1.0
picoruby-3.0.0
rbx-5.0
truffleruby-22.3.0
truffleruby+graalvm-22.3.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

现在安装 Ruby 3.0.5:

rbenv install 3.0.5

安装Ruby可能是一个漫长的过程,因此安装需要一些时间来完成。

安装成功后输出:

To follow progress, use 'tail -f /tmp/ruby-build.20221220105025.33541.log' or pass --verbose
Downloading openssl-1.1.1s.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa
Installing openssl-1.1.1s...
Installed openssl-1.1.1s to /root/.rbenv/versions/3.0.5
Downloading ruby-3.0.5.tar.gz...
-> https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.5.tar.gz
Installing ruby-3.0.5...
Installed ruby-3.0.5 to /root/.rbenv/versions/3.0.5
NOTE: to activate this Ruby version as the new default, run: rbenv global 3.0.5

安装完成后,使用global子命令将其设置为默认版本的Ruby :

rbenv global 3.0.5

通过检查其版本号来验证Ruby是否已正确安装:

ruby -v

输出:

ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c5) [x86_64-linux]

如果需要安装和使用不同版本的Ruby:

运行 rbenv 指定版本号的命令,如 rbenv install 2.3.0 和 rbenv global 2.3.0。

卸载Ruby版本:

当您下载其他版本的Ruby时,您可能会累积比~/.rbenv/versions目录中更多的版本。使用ruby-build插件的’ uninstall子命令删除这些以前的版本。

例如,输入以下命令将卸载Ruby版本2.1.3:

rbenv uninstall 2.1.3

使用Gems:

Gems是Ruby库的分布方式。可以使用 gem 命令来管理这些gems。将使用此命令安装Rails。

安装gem时,安装过程会生成本地文档。这可能会为每个gem的安装过程增加大量时间,因此请通过创建一个包含配置设置以关闭此功能的~/.gemrc文件来关闭本地文档生成:

echo "gem: --no-document" > ~/.gemrc

Bundler(https://bundler.io)是一个管理项目的gem依赖项的工具。

安装Bundler gem。因为Rails依赖于它:

gem install bundler

输出:

Fetching bundler-2.3.26.gem
Successfully installed bundler-2.3.26
1 gem installed

可以使用该gem env命令(子命令env是environment的简称)来了解有关gem的环境和配置的更多信息。您可以使用home参数查看gems的安装位置,如下所示:

gem env home

输出:

/root/.rbenv/versions/3.0.5/lib/ruby/gems/3.0.0

设置好gems后,即可安装Rails。

安装Rails:

安装最新版本的Rails:

gem install rails

该gem命令将安装您指定的gem以及每个依赖项。Rails是一个复杂的Web开发框架,具有许多依赖关系,因此该过程需要一些时间才能完成。最终,您将看到一条消息,指出已安装Rails。及其依赖:

...
Successfully installed rails-7.0.4
35 gems installed

注意:如果您想安装特定版本的Rails,可以通过搜索列出Rails的有效版本,这将输出一长串可能的版本。然后我们可以安装特定版本,例如4.2.7:

gem search '^rails$' --all
gem install rails -v 4.2.7

rbenv的工作原理是创建一个shims目录,它指向当前启用的Ruby版本使用的文件。通过rehash子命令,rbenv在该目录中维护填充程序,以匹配服务器上每个已安装的Ruby版本的每个Ruby命令。每当你安装新版本的Ruby或提供命令的gem(如Rails)时,你应该运行:

rbenv rehash

使用以下命令打印其版本,验证是否已正确安装Rails:

rails -v

输出:

Rails 7.0.4

安装PostgreSQL数据库软件:

参考:https://amon.org/ubuntu-pgsql

【参考】

参考:https://cloud.tencent.com/developer/article/1352641
参考:https://cloud.tencent.com/developer/article/1356851
参考:https://bynss.com/linux/941243.html

教程:https://www.ruby-lang.org/zh_cn/
教程:https://zhuanlan.zhihu.com/p/103633703