ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: "vo.x (Vit Ondruch)" <v.ondruch@tiscali.cz>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:45745] [ruby-trunk - Bug #5060][Assigned] Executables in bin folder conflict with their gem versions.
Date: Thu, 21 Jun 2012 14:34:50 +0900	[thread overview]
Message-ID: <redmine.journal-27328.20120621143446@ruby-lang.org> (raw)
In-Reply-To: redmine.issue-5060.20110720212918@ruby-lang.org


Issue #5060 has been updated by vo.x (Vit Ondruch).

Status changed from Closed to Assigned

Sorry, I'm reopening, but the issue is still present.

When you install Ruby, it carries initial version of /usr/bin/rdoc [1] (I picked up the RDoc as an example, but it is valid also for Rake, etc). Now let's assume that you will install updated RDoc, which replaces the file with the typical RubyGems stub, something like:

$ cat /usr/bin/rdoc
#!/usr/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'rdoc' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/
    version = $1
    ARGV.shift
  end
end

gem 'rdoc', version
load Gem.bin_path('rdoc', 'rdoc', version)


Now, this is problem for packaging systems, namely RPM (but I would be surprised if that is not issue for DEB as well). If you will do monolithic Ruby package, which provides /usr/bin/rdoc and later you want to package independent updated version of RDoc gem, which provides /usr/bin/rdoc as well, you are in conflict, since the files are different. If they would be the same (and there is no reason to be different IMO), there would be no conflict. The file would be own by two packages in parallel, which is supported scenario.

So what I'd like to see is the RubyGems stub in /usr/bin, especially after you committed r32608.

Actually, I'm trying to put together some proposal to solve #5481 and #6124, which might fix also this issue.

Thank you.





[1] https://github.com/ruby/ruby/blob/trunk/bin/rdoc
----------------------------------------
Bug #5060: Executables in bin folder conflict with their gem versions.
https://bugs.ruby-lang.org/issues/5060#change-27328

Author: vo.x (Vit Ondruch)
Status: Assigned
Priority: Normal
Assignee: drbrain (Eric Hodel)
Category: 
Target version: 2.0.0
ruby -v: 1.9.3


It would be nice if the executables for rdoc, rake, ri, etc. locate in bin folder, would be standard RubyGems stubs. Otherwise, once there is installed version of such library as a gem, the original file is rewritten and the functionality of bundled library is lost.

But my main concern is the conflict between ruby and gem executables, since it makes packaging for Linux distributions hard (for Fedora and RHEL in my case).


-- 
http://bugs.ruby-lang.org/

  parent reply	other threads:[~2012-06-21  5:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-20 12:29 [ruby-core:38257] [Ruby 1.9 - Bug #5060][Open] Executables in bin folder conflict with their gem versions Vit Ondruch
2011-07-25 11:06 ` [ruby-core:38485] [Ruby 1.9 - Bug #5060][Assigned] " Yui NARUSE
2011-07-25 23:50 ` [ruby-core:38506] [Ruby 1.9 - Bug #5060][Closed] " Eric Hodel
2012-06-21  5:34 ` vo.x (Vit Ondruch) [this message]
2013-02-17  8:35 ` [ruby-core:52363] [ruby-trunk - Bug #5060] " drbrain (Eric Hodel)
2013-10-14 13:20 ` [ruby-core:57850] " salimane (Salimane Adjao Moustapha)
2017-12-08 14:12 ` [ruby-core:84134] [Ruby trunk Bug#5060] " mame
2017-12-12 14:54 ` [ruby-core:84221] " v.ondruch
2017-12-13  1:55 ` [ruby-core:84229] " hsbt
2018-11-23  2:13 ` [ruby-core:89995] " hsbt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=redmine.journal-27328.20120621143446@ruby-lang.org \
    --to=ruby-core@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).