我已经使用以下命令在Windows 11上的WSL 2环境中成功安装了ruby:
$ sudo apt install gnupg2 build-essential dh-autoreconf
$ gpg --keyserver keyserver.ubuntu.com --recv-keys ...
$ \curl -sSL https://get.rvm.io | bash
$ rvm install ruby
$ gem update
$ gem install jekyll
$ gem install bundler
字符串
之后,安装的ruby版本是3.1.3p185(这是我在运行ruby --version
时得到的)
现在考虑一下我在WSL主目录中的以下test.sh
脚本:
#!/bin/bash
bundle exec jekyll build
型
当我打开bash命令提示符(使用Win+R然后输入bash)时,我可以成功运行:
$ sh test.sh
型
在这种情况下,Jekyll构建运行良好。
现在,如果从Powershell(或Windows CMD提示符)输入:
$ bash test.sh
型
我得到以下错误:
/usr/local/bin/bundle: /usr/bin/ruby2.7: bad interpreter: No such file or directory
型
为什么?我有许多其他的.sh脚本,我可以使用bash script.sh
语法运行得很好。
我发现以下问题$ bundle install
throws the error: bash: /usr/local/bin/bundle: /usr/bin/ruby2.7: bad interpreter: No such file or directory
但不幸的是,建议的修复不起作用(我已经安装了bundler
)。
编辑:使用wsl -e bash test.sh
而不是bash test.sh
会产生同样的错误。另外,如果test.sh
只包含ruby --version
,我会得到ruby: command not found
。
2条答案
按热度按时间uxh89sit1#
将
test.sh
脚本更改为:字符串
保存更改并再次运行:
型
这应该能解决问题。
2guxujil2#
问题来自ruby,PATH是在
.bashrc
中设置的,实际上.bash_profile
也是。解决方案是将bash作为登录shell(bash -l
)运行。