AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1206219
Accepted
marinnen128
marinnen128
Asked: 2020-01-28 16:32:47 +0800 CST2020-01-28 16:32:47 +0800 CST 2020-01-28 16:32:47 +0800 CST

在 Ubuntu 16.04 下从 shell 脚本访问已安装的 ruby​​ gem 包的问题

  • 772

我snap以前安装的是最新版的rubyUbuntu 16.04下

$ sudo snap install ruby --classic
$ which ruby
/snap/bin/ruby
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]

然后我安装了一个 ruby​​ gem pdfbeads(一个 PDF 创建实用程序)

sudo gem install pdfbeads

此命令将该实用程序安装在我的主目录中,为 ~/.gem/gems/pdfbeads-1.1.1/bin/pdfbeads. 但是,当我尝试在将 DJVU 文件转换为 PDF 格式的 shell 脚本中使用此程序时,我收到以下错误消息

djvu2pdf.sh: line 43: pdfbeads: command not found

虽然ruby链接在/snap/bin/我$PATH的默认情况下,~/.gem/但不是。这是gem environment安装后的pdfbeads:

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 3.1.2
  - RUBY VERSION: 2.7.0 (2019-12-25 patchlevel 0) [x86_64-linux]
  - INSTALLATION DIRECTORY: ~/.gem
  - USER INSTALLATION DIRECTORY: ~/.gem/ruby/2.7.0
  - RUBY EXECUTABLE: /snap/bin/ruby
  - GIT EXECUTABLE: /usr/bin/git
  - EXECUTABLE DIRECTORY: ~/.gem/bin
  - SPEC CACHE DIRECTORY: ~/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: //etc
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - ~/.gem
     - /snap/ruby/172/lib/ruby/gems/2.7.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games
     - /usr/local/games
     - /snap/bin

我原以为 gem 包安装应该已经解决了路径问题,但显然情况并非如此 -pdfbeads不在执行目录路径中。

显然,我可以将这个特定目录添加~/.gem/gems/pdfbeads-1.1.1/bin/到我的目录中$PATH来解决这个特定问题。但是,由于这是我第一次使用ruby,所以我正在寻找一种更通用的解决方案,每次安装另一个 ruby​​ gem 时都不需要这样做。

我有一个问题要问所有ruby专家 - 是否有一些标准的、更优雅的方法来解决这个问题,也可以涵盖任何未来的 gem 安装?

ruby paths gem 16.04
  • 1 1 个回答
  • 1402 Views

1 个回答

  • Voted
  1. Best Answer
    Tobias Cohen
    2020-02-01T18:28:15+08:002020-02-01T18:28:15+08:00

    Gem 二进制文件也在 中创建~/.gem/bin,因此您可以将该单个目录添加到您的路径中以访问所有已安装的 gem。

    • 2

相关问题

  • 为什么“libgnomevfs”文件在 /usr/include/gnome-vfs-2.0 下?

  • 如何解决 Ruby on Rails ImageMagick 冲突?

  • 默认情况下未编译 Readline - 导致“需要”:没有要加载的文件 - readline

  • 如何安排 Ruby 脚本

  • 如何完全删除 Ruby + Rails + Gems?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve