我正在尝试使用 Rubyripper(一个可从此处下载的 CD 翻录程序:http://code.google.com/p/rubyripper) 在 Ubuntu 17.10 上。它是一个脚本和一堆文件;您安装依赖项并运行脚本。我已经在多个版本的 Ubuntu 上使用过它,包括最近的 17.04,没有问题。我最近刚刚安装了 17.10。(我也在我使用的另一台计算机上尝试过这个更新从 17.04 到 17.10,结果相同。
使用 Rubyripper 运行的脚本如下所示:
#!/usr/bin/env ruby
# Rubyripper - A secure ripper for Linux/BSD/OSX
# Copyright (C) 2007 Bouke Woudstra ([email protected])
[snip: Licencing and disclaimer, etc.]
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
ICONDIR=[ENV['PWD'], "/usr/share/icons/hicolor/128x128/apps"]
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/local/lib/site_ruby/2.3.0"]
found_rrlib = false
RUBYDIR.each do |dir|
if File.exist?(file = File.join(dir, '/rr_lib.rb'))
require file; found_rrlib = true ; break
end
end
if found_rrlib == false
puts "The main program logic file 'rr_lib.rb' can't be found!"
exit()
end
begin
require 'gtk2'
rescue LoadError
puts "The ruby-gtk2 library could not be found. Is it installed?"; exit()
end
当我运行这个程序时,我得到了返回The ruby-gtk2 library could not be found. Is it installed?
。该包ruby-gtk2
肯定已经安装:
rowand@desktop:~$ sudo apt-get install ruby-gtk2
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-gtk2 is already the newest version (3.1.8-6ubuntu1).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
我认为问题在于 17.10 下相关文件的位置与脚本预期的位置不同,也与 17.04 下的位置不同。因此,我尝试编辑脚本的以下行,保存它,然后再次运行它。
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/local/lib/site_ruby/2.3.0"]
根据的搜索/usr
,我尝试了以下操作:
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/lib/ruby/vendor_ruby/2.3.0"]
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/lib/ruby/vendor_ruby"]
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/lib/ruby/vendor_ruby/gtk2"]
RUBYDIR=[ENV['PWD'], File.dirname(__FILE__), "/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.3.0"]
它们都不起作用。我一直收到相同的错误 ( The ruby-gtk2 library could not be found. Is it installed?
)。
的回报sudo dpkg -L ruby-gtk2
是:
/.
/usr
/usr/lib
/usr/lib/ruby
/usr/lib/ruby/vendor_ruby
/usr/lib/ruby/vendor_ruby/gtk2
/usr/lib/ruby/vendor_ruby/gtk2/base.rb
/usr/lib/ruby/vendor_ruby/gtk2.rb
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/ruby
/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby
/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.3.0
/usr/lib/x86_64-linux-gnu/ruby/vendor_ruby/2.3.0/gtk2.so
/usr/share
/usr/share/doc
/usr/share/doc/ruby-gtk2
/usr/share/doc/ruby-gtk2/README.Debian
/usr/share/doc/ruby-gtk2/copyright
/usr/share/doc/ruby-gtk2/examples
/usr/share/doc/ruby-gtk2/examples/gtk-demo
/usr/share/doc/ruby-gtk2/examples/gtk-demo/README
/usr/share/doc/ruby-gtk2/examples/gtk-demo/alphatest.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/apple-red.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/appwindow.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/background.jpg
/usr/share/doc/ruby-gtk2/examples/gtk-demo/builder.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/button_box.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-arc-negative.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-arc.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-clip-image.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-clip-rectangle.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-clip.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-curve-rectangle.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-curve-to.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-dash.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-fill-and-stroke.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-fill-and-stroke2.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-gradient.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-image-pattern.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-image.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-line-cap.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-line-join.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-long-lines.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-operator.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-path.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-pattern-fill.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-self-intersect.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-text-align-center.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-text-extents.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/cairo-text.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/changedisplay.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/clipboard.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/colorsel.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/common.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/demo.ui.gz
/usr/share/doc/ruby-gtk2/examples/gtk-demo/dialog.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/drawingarea.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/editable_cells.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/entry_completion.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/expander.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/floppybuddy.gif
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-applets.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-calendar.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-foot.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-fs-directory.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-fs-regular.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-gimp.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-gmush.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnome-gsame.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gnu-keys.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/gtk-logo-rgb.gif
/usr/share/doc/ruby-gtk2/examples/gtk-demo/hypertext.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/iconview.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/images.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/item_factory.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/list_store.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/main.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/menus.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/panes.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/pixbufs.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/printing.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/rotated_text.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/ruby-gnome2-logo.png
/usr/share/doc/ruby-gtk2/examples/gtk-demo/sizegroup.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/stock_browser.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/textview.rb
/usr/share/doc/ruby-gtk2/examples/gtk-demo/tree_store.rb
/usr/share/doc/ruby-gtk2/examples/misc
/usr/share/doc/ruby-gtk2/examples/misc/aboutdialog.rb
/usr/share/doc/ruby-gtk2/examples/misc/aboutdialog2.rb
/usr/share/doc/ruby-gtk2/examples/misc/alpha-demo.rb
/usr/share/doc/ruby-gtk2/examples/misc/assistant.rb
/usr/share/doc/ruby-gtk2/examples/misc/bindings.rb
/usr/share/doc/ruby-gtk2/examples/misc/button.rb
/usr/share/doc/ruby-gtk2/examples/misc/button2.rb
/usr/share/doc/ruby-gtk2/examples/misc/buttonbox.rb
/usr/share/doc/ruby-gtk2/examples/misc/cairo-pong.rb
/usr/share/doc/ruby-gtk2/examples/misc/calendar.rb
/usr/share/doc/ruby-gtk2/examples/misc/checkbutton.rb
/usr/share/doc/ruby-gtk2/examples/misc/colorselection.rb
/usr/share/doc/ruby-gtk2/examples/misc/combo_check.rb
/usr/share/doc/ruby-gtk2/examples/misc/combobox.rb
/usr/share/doc/ruby-gtk2/examples/misc/composited-windows.rb
/usr/share/doc/ruby-gtk2/examples/misc/cursor.rb
/usr/share/doc/ruby-gtk2/examples/misc/dialog.rb
/usr/share/doc/ruby-gtk2/examples/misc/dialog2.rb
/usr/share/doc/ruby-gtk2/examples/misc/dnd.rb
/usr/share/doc/ruby-gtk2/examples/misc/dndtreeview.rb
/usr/share/doc/ruby-gtk2/examples/misc/drag-move.rb
/usr/share/doc/ruby-gtk2/examples/misc/drawing.rb
/usr/share/doc/ruby-gtk2/examples/misc/entry.rb
/usr/share/doc/ruby-gtk2/examples/misc/entrycompletion.rb
/usr/share/doc/ruby-gtk2/examples/misc/expander.rb
/usr/share/doc/ruby-gtk2/examples/misc/filechooser.rb
/usr/share/doc/ruby-gtk2/examples/misc/fileselection.rb
/usr/share/doc/ruby-gtk2/examples/misc/frame.rb
/usr/share/doc/ruby-gtk2/examples/misc/gc.rb
/usr/share/doc/ruby-gtk2/examples/misc/gdkscreen.rb
/usr/share/doc/ruby-gtk2/examples/misc/gnome-logo-icon.png
/usr/share/doc/ruby-gtk2/examples/misc/helloworld.rb
/usr/share/doc/ruby-gtk2/examples/misc/iconview.rb
/usr/share/doc/ruby-gtk2/examples/misc/image.rb
/usr/share/doc/ruby-gtk2/examples/misc/infobar.rb
/usr/share/doc/ruby-gtk2/examples/misc/itemfactory.rb
/usr/share/doc/ruby-gtk2/examples/misc/itemfactory2.rb
/usr/share/doc/ruby-gtk2/examples/misc/keyboard_grab.rb
/usr/share/doc/ruby-gtk2/examples/misc/label.rb
/usr/share/doc/ruby-gtk2/examples/misc/linkbutton.rb
/usr/share/doc/ruby-gtk2/examples/misc/listview.rb
/usr/share/doc/ruby-gtk2/examples/misc/menu.rb
/usr/share/doc/ruby-gtk2/examples/misc/misc_button.rb
/usr/share/doc/ruby-gtk2/examples/misc/mouse-gesture.rb
/usr/share/doc/ruby-gtk2/examples/misc/pangorenderer.rb
/usr/share/doc/ruby-gtk2/examples/misc/pointer_grab.rb
/usr/share/doc/ruby-gtk2/examples/misc/print.rb
/usr/share/doc/ruby-gtk2/examples/misc/properties.rb
/usr/share/doc/ruby-gtk2/examples/misc/radiobutton.rb
/usr/share/doc/ruby-gtk2/examples/misc/recentchooserdialog.rb
/usr/share/doc/ruby-gtk2/examples/misc/rgtk+cairo.rb
/usr/share/doc/ruby-gtk2/examples/misc/scalebutton.rb
/usr/share/doc/ruby-gtk2/examples/misc/settings.rb
/usr/share/doc/ruby-gtk2/examples/misc/statusicon.rb
/usr/share/doc/ruby-gtk2/examples/misc/stock.rb
/usr/share/doc/ruby-gtk2/examples/misc/style_property.rb
/usr/share/doc/ruby-gtk2/examples/misc/style_property.rc
/usr/share/doc/ruby-gtk2/examples/misc/t-gtkplug.rb
/usr/share/doc/ruby-gtk2/examples/misc/t-gtksocket.rb
/usr/share/doc/ruby-gtk2/examples/misc/test.xpm
/usr/share/doc/ruby-gtk2/examples/misc/textbuffer_serialize.rb
/usr/share/doc/ruby-gtk2/examples/misc/threads.rb
/usr/share/doc/ruby-gtk2/examples/misc/to_drawable.rb
/usr/share/doc/ruby-gtk2/examples/misc/togglebutton.rb
/usr/share/doc/ruby-gtk2/examples/misc/toolbar.rb
/usr/share/doc/ruby-gtk2/examples/misc/tooltips.rb
/usr/share/doc/ruby-gtk2/examples/misc/tree_combo.rb
/usr/share/doc/ruby-gtk2/examples/misc/tree_progress.rb
/usr/share/doc/ruby-gtk2/examples/misc/treemodelfilter.rb
/usr/share/doc/ruby-gtk2/examples/misc/treeview.rb
/usr/share/doc/ruby-gtk2/examples/misc/uimanager.rb
/usr/share/doc/ruby-gtk2/examples/misc/uimanager2.rb
/usr/share/doc/ruby-gtk2/examples/misc/uimanager2.xml
/usr/share/doc/ruby-gtk2/examples/misc/window.rb
/usr/share/doc/ruby-gtk2/examples/misc/xbm_cursor.rb
/usr/share/doc/ruby-gtk2/examples/testgtk
/usr/share/doc/ruby-gtk2/examples/testgtk/3DRings.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/FilesQueue.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/Modeller.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/README
/usr/share/doc/ruby-gtk2/examples/testgtk/button.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/buttonbox.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/check-n.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/check-y.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/checkbutton.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/circles.xbm
/usr/share/doc/ruby-gtk2/examples/testgtk/colorselect.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/dialog.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/entry.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/filesel.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/fontselection.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/gammacurve.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/labels.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/layout.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/marble.xpm.gz
/usr/share/doc/ruby-gtk2/examples/testgtk/menu.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/notebook.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/pixmap.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/progressbar.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/radiobutton.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/range.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/reparent.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/rulers.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/sample.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/savedposition.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/scrolledwindow.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/shapedwindow.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/spinbutton.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/statusbar.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/test.xpm
/usr/share/doc/ruby-gtk2/examples/testgtk/testgtk.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/testgtkrc
/usr/share/doc/ruby-gtk2/examples/testgtk/testgtkrc2
/usr/share/doc/ruby-gtk2/examples/testgtk/togglebutton.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/toolbar.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/tooltips.rb
/usr/share/doc/ruby-gtk2/examples/testgtk/wmhints.rb
/usr/share/rubygems-integration
/usr/share/rubygems-integration/2.3.0
/usr/share/rubygems-integration/2.3.0/specifications
/usr/share/rubygems-integration/2.3.0/specifications/gtk2-3.1.8.gemspec
/usr/share/doc/ruby-gtk2/changelog.Debian.gz
我的问题是:我应该/usr/local/lib/site_ruby/2.3.0
用什么来替换才能让 Rubyripper 脚本正确找到ruby-gtk2
它正在寻找的库?还是我完全走错了路?如果是这样,有什么建议吗?
答案1
与此相关的行是:
begin
require 'gtk2'
rescue LoadError
puts "The ruby-gtk2 library could not be found. Is it installed?"; exit()
end
这会捕获异常并丢弃调试问题所需的所有信息。如果您将其替换为:
require 'gtk2'
您将收到以下错误信息:
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- cairo-gobject (LoadError)
这清楚地说明了如何解决问题:
sudo apt install ruby-cairo-gobject
希望这对你有用!
抢