Open zhangzikai opened 1 year ago
Hi @zhangzikai
非常感谢你的建议和反馈,我将认真考虑。
ridk enable
没有这个问题。但是我没有用 cmd 试过,您对此有需求吗?希望上述2和3的现状的解释,能一定程度上消解您的不满。
其实最主要的问题是,理清上述这些问题需要耗费比较大的时间和精力,尤其是MSYS2那一块,我一直有意要去看完上游RubyInstaller2的打包项目,但是一直没抽出时间。
过一阵子,我将对这些代码研究一遍,然后做出一些改变。再次感谢您的建议,这个issue我会保持开启
我能感觉到您是 MSYS2 的重度用户,所以给您带来了不便。
我目前的做法是,直接用rbenv下载下来的MSYS2作为主要环境,日常开发也是用 ridk exec
来工作。
这个问题确实有待考虑,希望您谅解,一两个月之内受时间问题我可能无法做出改变,深表歉意。
1.把bin和shim文件夹直接给加到path里,然后根据用户设置好的版本,转发命令不就好了? 另外干嘛要pwsh执行的时候就去检查global.txt,需要判断这个东西在不在,得是rbenv version执行的时候吧
2.3.我研究了一下rubyinstaller去找msys的逻辑,比如ruby安装在了 c:/a/b/c/bin/ruby.exe.他找的顺序会是 c:/a/b/c/msys->c:/a/b/msys->c:/a/msys->c:/msys.可以利用这个机制. 另外rubyinstaller说支持用户自行安装的msys,执行ridk,选择3,rubyinstaller会自动在找到的msys里面 (没有的话就会去安装环境),用pacman安装他所需要的包,可以和用户msys很好的集成在一块
我们不在初始化时直接安装msys.而是等到用户执行安装命令的时候 rbenv install 3.1 --msys-location=c:/msys64 我们检测用户提供msys位置了没有 提供了的话,我们在 c:/ruby-windows/msys位置hash/ 下面搞个软链接,把 c:/ruby-windows/msys位置hash/msys 链接到那个位置,ruby的话安装到 c:/ruby-windows/msys位置hash/ruby 然后执行一下ridk,3.如果没有提供,则还是那一套,先判断是不是共享msys的ruby,看看c:/ruby-windows/default/msys在不在,不在的话,安装,然后把msys挪出来;不共享的话,直接安装
4.我是powershell7.3.7(不是windowspowershell),rbenv 的ridk里面& $rubyexe $args ,在ruby的idk里 有一句 $op=$args+"enable",直接调用 ruby的idk,$op是个string,而转发的$op是个object[],转成string会用回车符join起来,搞出问题来
@zhangzikai
第4个已复现并确认,已按照您的方式修复,非常感谢。
第1个现在由于有fake ruby.exe
的存在,暂时无法直接转发,我将会用另一种方式试试看。
2和3的话,如果能够确认ridk install
安装的没有问题,可以采取这种方式,我会试验一下,如果确认各方面可以工作,将会采取您的建议。感谢。
4.ridk.ps1 里的& $rubyexe $args 改成 & $rubyexe ($args -join " ") ,不然ridk enable 会报错
这个方法有问题,导致ridk exec
报错,我已修复。
1.ruby.exe一定要放在path里.可以只能在powershell里使用rbenv,但是不能只能在powershell里才可以使用ruby
该问题已解决,PowerShell 和 cmd 下均可以使用 ruby
, rubyw
, ridk
三个命令,请使用 rbenv update
来更新试用。
1.ruby.exe一定要放在path里.可以只能在powershell里使用rbenv,但是不能只能在powershell里才可以使用ruby 2.启动powershell就自动安装ruby?这是什么鬼.我还没选择版本呢,你就给我乱搞,我建议别人第一次选择安装ruby的时候再去懒初始化 3.提供选项,让别人可以选择使用自己的msys,别人自己的msys里有很多库,ruby自己搞一套msys,自己管理一套库,很混乱 4.ridk.ps1 里的& $rubyexe $args 改成 & $rubyexe ($args -join " ") ,不然ridk enable 会报错