Exploring possibilities to better organize gems, I have just discovered a `--vendor` option (after almost 10 years of existence of this flag 🤦🏻♂️):
~~~
$ gem install gem2rpm --vendor --no-user-install Fetching gem2rpm-1.0.2.gem ERROR: While executing gem ... (Errno::EACCES) Permission denied @ dir_s_mkdir - /usr/share/ruby/vendor_ruby/gems /usr/share/ruby/fileutils.rb:406:in `mkdir'
... snip ...
~~~
This option apparently tries to install gems into `/usr/share/ruby/vendor_ruby/gems` and I wonder, isn't this location we should be using for gems distributed by Fedora? The main advantage is that we would not be mixing default/bundled gems with ours. The downside is that it probably does not support binary extensions out of the box.
Thoughts?
Thx
Vít
On Wed, Oct 25, 2023 at 4:23 PM Vít Ondruch vondruch@redhat.com wrote:
Exploring possibilities to better organize gems, I have just discovered a `--vendor` option (after almost 10 years of existence of this flag 🤦🏻♂️):
$ gem install gem2rpm --vendor --no-user-install Fetching gem2rpm-1.0.2.gem ERROR: While executing gem ... (Errno::EACCES) Permission denied @ dir_s_mkdir - /usr/share/ruby/vendor_ruby/gems /usr/share/ruby/fileutils.rb:406:in `mkdir' ... snip ...
This option apparently tries to install gems into `/usr/share/ruby/vendor_ruby/gems` and I wonder, isn't this location we should be using for gems distributed by Fedora? The main advantage is that we would not be mixing default/bundled gems with ours. The downside is that it probably does not support binary extensions out of the box.
Thoughts?
Oddly enough, this seems to be the initial purpose:
``` * Added vendor gem support to RubyGems. Package managers may now install gems in Gem.vendor_dir with the --vendor option to gem install. Issue #943 by Marcus Rückert. ``` https://github.com/rubygems/rubygems/issues/943
It even comes with a message, that you should uninstall that gem with a package manager, not `gem ...`.
Good find!
Pavel
Thx
Vít
On Wed, Oct 25, 2023 at 4:23 PM Vít Ondruch vondruch@redhat.com wrote:
Exploring possibilities to better organize gems, I have just discovered a `--vendor` option (after almost 10 years of existence of this flag 🤦🏻♂️):
$ gem install gem2rpm --vendor --no-user-install Fetching gem2rpm-1.0.2.gem ERROR: While executing gem ... (Errno::EACCES) Permission denied @ dir_s_mkdir - /usr/share/ruby/vendor_ruby/gems /usr/share/ruby/fileutils.rb:406:in `mkdir' ... snip ...
This option apparently tries to install gems into `/usr/share/ruby/vendor_ruby/gems` and I wonder, isn't this location we should be using for gems distributed by Fedora? The main advantage is that we would not be mixing default/bundled gems with ours. The downside is that it probably does not support binary extensions out of the box.
Thoughts?
One more note:
Packaging guidelines say that the directory is for non-gem packages only. Furthermore, it says gems in `/usr/share/gems` can be shared across all ruby implementations, those `gems` in vendor directories can't. Is this the reason why binary extensions wouldn't be supported? Looking at the other `vendor` paths, it looks ok:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Ruby/#_interpreter...
Pavel
Thx
Vít
ruby-sig@lists.fedoraproject.org