[prev in list] [next in list] [prev in thread] [next in thread]
List: macports-users
Subject: Re: ruby_select is broken
From: Ian Wadham <iandw.au () gmail ! com>
Date: 2021-10-03 20:16:55
Message-ID: 773A6E9D-0389-4EE9-BF4A-9545C9DD1C34 () gmail ! com
[Download RAW message or body]
Hi Christopher,
In brief, MacPorts' "port select" command is working fine at the command-line in \
Catalina… but the problem is with installing ANY version of ruby, not switching \
between multiple versions of ruby that are already installed.
In a machine where no MacPorts Ruby is installed, the command "sudo port install \
ruby27" is not working fully.
The package gets installed, but the links /opt/local/bin/ruby -> \
/opt/local/bin/ruby2.7 and /opt/local/bin/gem -> /opt/local/bin/gem2.7 do not get \
created automatically. So after installing I always get Apple's Ruby from /usr/bin \
when I use a "ruby" or "gem" command. Of course I can use "sudo port select" to fix \
that, and I have done, but it took me several days of frustration and messing around \
before I discovered that fact.
I think this is because the port file named "ruby_select", on which each Ruby port \
depends, is broken. You can see this port file's contents using:
cat $(port file ruby_select)
Compare them to the perl and python "select" files:
cat $(port file perl_select)
cat $(port file python_select)
and I hope you (or someone) will see what the problem is.
Cheers,
Ian Wadham.
> On 4 Oct 2021, at 1:12 am, Christopher Nielsen <mascguy@rochester.rr.com> wrote:
>
> > The ruby_select portile just has:
> >
> > destroot {
> > select::install ruby ${filespath}/base
> > select::install ruby ${filespath}/none
> > }
> >
> > which does not redirect the commands "ruby" or "gem" to the appropriate version \
> > when you have installed the port "ruby27" for example. Instead, "which ruby" or \
> > "which gem" always finds the Apple version of Ruby, which is now deprecated \
> > according to the Catalina Release Notes…
>
> Hmmm, it's working fine for me.
>
> Starting from the default case, where nothing has been selected yet:
>
> $ ll $(which ruby)
> -r-xr-xr-x 1 root wheel restricted,compressed 51K Jul 9 18:40:13 2020 \
> /usr/bin/ruby $ ll $(which gem)
> -r-xr-xr-x 1 root wheel restricted,compressed 596B Jul 15 17:58:00 2017 \
> /usr/bin/gem
> After selecting ruby30:
>
> $ sudo port select ruby ruby30
> Selecting 'ruby30' for 'ruby' succeeded. 'ruby30' is now active.
> $ ll $(which ruby)
> lrwxr-xr-x 1 root admin - 22B Oct 3 09:54:35 2021 /opt/local/bin/ruby -> \
> /opt/local/bin/ruby3.0 $ ll $(which gem)
> lrwxr-xr-x 1 root admin - 21B Oct 3 09:54:35 2021 /opt/local/bin/gem -> \
> /opt/local/bin/gem3.0
> After selecting ruby27:
>
> $ sudo port select ruby ruby27
> Selecting 'ruby27' for 'ruby' succeeded. 'ruby27' is now active.
> $ ll $(which ruby)
> lrwxr-xr-x 1 root admin - 22B Oct 3 09:55:14 2021 /opt/local/bin/ruby -> \
> /opt/local/bin/ruby2.7 $ ll $(which gem)
> lrwxr-xr-x 1 root admin - 21B Oct 3 09:55:14 2021 /opt/local/bin/gem -> \
> /opt/local/bin/gem2.7
> And finally, after reverting back to no selection:
>
> $ sudo port select ruby none
> Selecting 'none' for 'ruby' succeeded. 'none' is now active.
> $ ll $(which ruby)
> -r-xr-xr-x 1 root wheel restricted,compressed 51K Jul 9 18:40:13 2020 \
> /usr/bin/ruby $ ll $(which gem)
> -r-xr-xr-x 1 root wheel restricted,compressed 596B Jul 15 17:58:00 2017 \
> /usr/bin/gem
> So this isn't working for you on macOS Catalina…?
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic