使用 Ruby 打包意味着使用 Ruby 提供的命令(gembundle)来安装宝石(gem)。一个 gem 是打包好的 Ruby 应用程序或库,通常从 {url-rubygems}[RubyGems.org^] 检索而来。

使用 Ruby 打包安装 Asciidoctor 的好处是它具有普适性。只要你正确配置了 Ruby,Ruby 打包在所有 Ruby 运行时和操作系统中的工作方式都是相同的。本页解释了如何使用 Ruby 打包从 asciidoctor gem 安装 Asciidoctor。

Warning
除非你在容器中运行(例如Docker、podman、OCI),否则_永远不要_以root用户身份使用`gem install`来安装gems。这样做几乎肯定会干扰甚至可能破坏系统上的Ruby安装。我们强烈建议您使用[Bundler]来管理项目中的gems(或者使用RVM gemset来将安装限制在您的用户/家目录中)。当你在容器中运行或者使用RVM(理想情况下配合gemset)时,我们提供了`gem install`的指令。

配置Ruby打包

确保Ruby配置正确以使用Ruby包管理的最佳方式是通过Ruby版本管理器安装Ruby。我们推荐您设置{url-rvm}[RVM^]并用它在您的家目录(即用户空间)中安装Ruby。一旦完成,您就可以安全地使用`gem`或`bundle`命令来安装或更新Asciidoctor宝石,或者其他任何宝石。使用RVM管理的Ruby时,宝石会被安装在系统隔离的地方(因此您不需要root/管理员权限)。

gem install

一旦你使用RVM安装了Ruby,并且你通过`rvm use {ruby-version}`命令激活它后,打开终端并输入:

$ gem install asciidoctor

Unresolved directive in ruby-packaging.adoc - include::partial$success.adoc[]

安装一个预发行版本

要安装Asciidoctor的预发布版本(例如,候选发布版本),在运行`gem install`命令时包含`--pre`选项。

$ gem install asciidoctor --pre

选项`--pre`将会选择Asciidoctor的预发布版本而不是最新的稳定版本。请注意,如果没有可用的最新预发布版本,那么预发布版本可能比最新的稳定版本要旧。

打包程序

Bundler 创建了一个虚拟环境,将宝石(gems)的安装限制在当前项目中。以下是您可以使用它来安装和运行 Asciidoctor 的方法。

  1. 在项目的根文件夹中(或者当前目录)创建一个Gemfile:

    $ bundle init
  2. asciidoctor 宝石(gem)添加到您的Gemfile文件底部,如下所示:

    gem 'asciidoctor'
    # or specify the version explicitly
    # gem 'asciidoctor', '{release-version}'
  3. 保存Gemfile文件

  4. 打开终端并使用以下命令安装gem:

    $ bundle

要升级gem,指定新版本号到Gemfile中并重新运行`bundle`命令。不推荐使用`bundle update`命令(不指定gem)因为它会更新其他的gems,这可能不是想要的结果。

Important
一旦你使用Bundler进行安装,你必须从包含[.path]_Gemfile_的目录运行宝石提供的任何可执行文件(例如,asciidoctor),并且还需要在可执行文件名称前加上`bundle exec`前缀(例如,bundle exec asciidoctor)。这个`bundle exec`前缀告诉Ruby使用定义在[.path]_Gemfile_中的宝石。

如果你想更多地了解Bundler以及`bundle exec`和什么时候使用它们,请参阅文章 https://www.ombulabs.com/blog/ruby/learning/understanding-bundler.html [理解Bundler^]。

使用 gem update 命令升级

Caution

您不应该使用 gem update 命令去更新一个由包管理器管理的gem。这样做会导致系统进入一个不一致的状态,因为包管理器将无法追踪这些文件(这些文件被安装在 /usr/local 下)。简单来说,系统中的gems只应该由包管理器来更新。

如果您想使用一个比包管理器安装的版本更新的Asciidoctor,您应该使用 {url-rvm}[RVM^] 在您的家目录中安装Ruby(即,用户空间)。然后,您可以安全地使用`gem`命令来安装或更新Asciidoctor宝石。当使用RVM时,宝石会被安装在一个与系统隔离的位置。

你可以使用gem `update`命令来升级Asciidoctor。

$ gem update asciidoctor

Tip

如果你不小心使用了`gem install`而不是`gem update`,那么你会安装了两个版本。要移除较旧的版本,请使用以下的`gem`命令:

$ gem cleanup asciidoctor

使用 gem uninstall 命令来卸载

您可以使用gem命令`uninstall`来卸载Asciidoctor。

$ gem uninstall -x asciidoctor

-x` 选项用于关闭删除 `asciidoctor` 可执行文件的确认,而是会自动删除它。换句话说,它启用了完全卸载功能。

如果您安装了多个版本的Asciidoctor,系统会提示您指定想要卸载的版本。

[.output]
....
Select gem to uninstall:
 1. asciidoctor-2.0.15
 2. asciidoctor-2.0.16
 3. All versions
>
....

您可以卸载特定版本或所有版本。在提示符(`>`) 处输入其中一个数字,然后按下kbd:[Enter]键。