Ruby

出自 ArchWiki
(重定向自 Chruby

Ruby 是一种动态、解释型、开源编程语言,专注于简洁和高效。

安装

要使用 Ruby,安装 ruby 软件包。

要安装 IRB,安装 ruby-irb 软件包。

多个版本

如果您想在同一系统上运行多个版本(例如 2.0.0-p0 和 1.9.3-p392),最简单的方法是使用 RVMchrubyAURrbenvasdf-vmAUR 中的一个。

文档

要使文档可通过 ri 命令行工具访问,请安装 ruby-rdocruby-docs 以获取文档本身。然后您可以使用以下命令查询文档:ri Arrayri Array.pop 等(非常像 man 手册页)

JRuby

Ruby 的 Java 实现 JRuby 可以通过 jruby 软件包安装。

标准库

Ruby 标准库的一部分由 Ruby 模块组成(有关模块的更多信息,请参阅 RubyGems。)ruby 软件包不包含 Ruby 用户可以假定在任何 Ruby 系统上都安装的所有标准模块,因此某些 Ruby 代码可能无法开箱即用。有关标准库模块集的更多信息,请访问 https://stdgems.org/

RubyGems 部分讨论了几种安装模块的方法。要使用 pacman 系统范围安装标准模块,可以安装 ruby-stdlib 软件包。请注意,JRuby 不需要这样做,因为 jruby 软件包包含标准模块。

RubyGems

RubyGems 是 Ruby 模块(称为gems)的软件包管理器,有点类似于 pacman 对于 Arch Linux 的作用。它可以通过 rubygems 软件包安装,它是 ruby 的依赖项。

配置

默认情况下,在 Arch Linux 中,当运行 gem 时,gem 是按用户安装的(安装到 ~/.local/share/gem/ruby/ 中),而不是系统范围安装(安装到 /usr/lib/ruby/gems/ 中)。这被认为是 Arch 上管理 gem 的最佳方式,因为否则它们可能会干扰 Pacman 安装的 gem。

推荐的设置方法是手动指定您的 $GEM_HOME,然后可以将其追加到您的 $PATH 环境变量中,以便允许执行 RubyGems 二进制文件

~/.profile
export GEM_HOME="$(gem env user_gemhome)"
export PATH="$PATH:$GEM_HOME/bin"

这是可执行 gem 正常工作所必需的,而无需键入完整位置,尽管库无需修改路径即可工作。

注意: 保存更改后,重启终端以使更改生效。

使用 gem env 查看当前的 RubyGems 环境

$ gem env

用法

查看已安装的 gem

$ gem list

获取有关 gem 的信息

$ gem spec gem_name

默认情况下,gem listgem spec 使用 --local 选项,该选项强制 gem 仅搜索本地系统。可以使用 --remote 标志覆盖此设置。因此,要搜索 mysql2 gem

$ gem list --remote mysql2

安装 gem

$ gem install mysql2

如果您不需要本地文档,则可以稍微加快此过程

$ gem install mysql2 --no-document
注意: 可以通过配置以下 ~/.gemrc 文件将此设置为默认选项
~/.gemrc
gem: --no-document

更新所有已安装的 gem

$ gem update

系统范围安装 gem

可以通过以 root 身份运行 gem 命令并附加 --no-user-install 标志来系统范围安装 Gem。可以通过在 /etc/gemrc(系统范围)或 ~/.gemrc(按用户,覆盖系统范围)中将 --user-install 替换为 --no-user-install 来将此标志设置为默认值。

Bundler 在一定程度上通过将 gem 打包到您的应用程序中来解决这些问题。请参阅下面有关使用 bundler 的部分。

Bundler

Bundler 允许您指定您的应用程序依赖哪些 gem,以及可选地指定这些 gem 应有的版本。一旦此规范到位,Bundler 将安装所有必需的 gem(包括完整的 gem 依赖树),并记录结果以供以后检查。默认情况下,Bundler 将 gem 安装到共享位置,但它们也可以直接安装到您的应用程序中。当您的应用程序运行时,Bundler 会提供每个 gem 的正确版本,即使已安装了每个 gem 的多个版本也是如此。这需要做一些工作:应用程序应使用 bundle exec 调用,并且必须在应用程序的主可执行文件中放置两行样板代码。

安装 Bundler

$ gem install bundler

启动新 bundle

$ bundle init

然后编辑当前目录中的 Gemfile(由 bundle init 创建)并列出您需要的 gem

Gemfile
gem "rails", "3.2.9"
gem "mysql2"

运行以下命令将 gem 安装到 GEM_HOME

$ bundle install

或者,运行以下命令将 gem 安装到工作目录中的 .bundle

$ bundle config set --local path '.bundle'
注意: 命令 `bundle install --path .bundle` 已被弃用,因为它依赖于在 bundler 调用之间被记住,而 bundler 在未来版本中将不再这样做。但是,如果上述命令无效,可能是您的 ruby 版本太旧,因此您应该使用此命令。

不要忘记编辑您的主可执行文件

#!/usr/bin/env ruby

# "This will automatically discover your Gemfile, and make all of the gems in
# your Gemfile available to Ruby." https://bundler.rubygems.org.cn/rationale.html
require 'bundler/setup'

...

最后,运行您的程序

$ bundle exec main_executable_name.rb

使用 pacman 管理 RubyGems

除了使用 gem 管理 gem 之外,您还可以使用 pacmanAUR 助手。Ruby 软件包遵循命名约定 ruby-gemname

此选项提供以下优势

  • Gem 会与系统的其余部分一起更新。
  • 已安装的 gem 在系统范围内可用,而不仅仅是安装它们的用户可用。
注意: 还有一些工具通过为指定的 gem 自动生成 PKGBUILD 来集成 gempacman:请参阅 创建软件包#PKGBUILD 生成器

Quarry

Quarry 是一种工具,允许为 Arch Linux 维护 rubygems 二进制仓库,作为手动从 AUR 构建软件包的更简单替代方案。源代码托管在 Github

该仓库由 Arch 开发者 anatolik 在 https://pkgbuild.com/~anatolik/quarry/ 维护。它包含许多流行的 gem,并且可以根据请求添加新的 gem。

请参阅 非官方用户仓库#quarry 以启用它。

然后安装所需的 gem。软件包的名称是 ruby-gem name

一般问题可以在 https://bbs.archlinux.org/viewtopic.php?id=182729 提出。

交互式 Shell

Pry

Pry 是标准 IRB shell 的强大替代品,用于 Ruby。它具有语法高亮、灵活的插件架构、运行时调用以及源代码和文档浏览功能。

$ gem install pry
$ pry

参见