> 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…?