ruby - "in ` 需要 ': cannot load such file -- iconv (LoadError)"

标签 ruby ubuntu

https://railssavvy.wordpress.com/2012/06/02/install_ruby_and_rails/ 之后,我在 Ubuntu 64 位 14.04 上安装了 ruby​​ 2.2.0 到我家。 ,然后安装了一个名为 pdfbeads 的包.当我运行包时,我有这个错误:

$ /home/t/.rvm/gems/ruby-2.2.0/wrappers/pdfbeads -o all.pdf
/home/t/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- iconv (LoadError)
    from /home/t/.rvm/rubies/ruby-2.2.0/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /home/t/.rvm/gems/ruby-2.2.0/gems/pdfbeads-1.1.1/bin/pdfbeads:35:in `<top (required)>'
    from /home/t/.rvm/gems/ruby-2.2.0/bin/pdfbeads:23:in `load'
    from /home/t/.rvm/gems/ruby-2.2.0/bin/pdfbeads:23:in `<main>'
    from /home/t/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `eval'
    from /home/t/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `<main>'

为了解决这个问题,我跟着这个回复https://stackoverflow.com/a/19332909/156458 ,
$ which iconv
/usr/bin/iconv

$ iconv --version
iconv (Ubuntu EGLIBC 2.19-0ubuntu6.6) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Ulrich Drepper.

$ gem "iconv", "~> 1.0.3"
ERROR:  While executing gem ... (Gem::CommandLineError)
    Unknown command iconv,

那么 ruby​​ 和 iconv 会发生什么?我现在该怎么办?非常感谢!

我已经安装了 2.1.0 和 2.0.0 和 pdfbeads分别在他们之下。但是当我运行 pdfbeads位于他们的wrappers目录,我仍然有同样的错误:
in `require': cannot load such file -- iconv (LoadError)

最佳答案

这个错误:

ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- iconv (LoadError)



说 ruby 标准库模块iconv找不到。那是因为 iconv在 ruby​​ 2.2 中不再存在于 ruby​​ 的标准库中。

该行:
gem "iconv", "~> 1.0.3"

应该放在 Gemfile 中,这是在创建 rails 项目时创建的文件。在 Rails 项目中,您使用 Bundler 安装 Gemfile 中列出的所有 gem,例如:
$ bundle install

关于ruby - "in ` 需要 ': cannot load such file -- iconv (LoadError)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29201518/

相关文章:

ruby - VIM中映射命令时的文件补全

ruby-on-rails - FactoryBot 工厂中 `transient do` block 的用途是什么?

C++交叉初始化初始化 float 组时跳转到case标签

PHP 代码呈现为文本

c# - 在 dotnet core v2 中使用 hosting.json 和 appsettings.json 配置 Kestrel

ruby - 如果我正在通过 Ruby 中的 STDIN 读取输入。我如何将它放入哈希表中?

ruby - 终端询问电子邮件和密码,我该如何以编程方式填写它(在 Ruby 中)?

.net - 在 Mono 上运行 VB.NET

linux - 谷歌浏览器 Linux 的永久标志

ruby-on-rails - 如何在 gem 中运行 Rails 应用程序?