在Mac M1上使用Ruby-Install安装Ruby 2.6.6或2.7.2时,会出现以下错误。Ruby 3.0.0运行得很好,但是任何较旧的版本都会在READLINE中出错,并且不允许安装Ruby。
readline.c:1905:37: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
rl_username_completion_function);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rl_username_completion_function
readline.c:79:42: note: expanded from macro 'rl_username_completion_function'
# define rl_username_completion_function username_completion_function
^
/opt/homebrew/opt/readline/include/readline/readline.h:485:14: note: 'rl_username_completion_function' declared here
extern char *rl_username_completion_function PARAMS((const char *, int));
4条答案
按热度按时间cdmah0mi1#
我终于在M1芯片MacBook Pro上安装了老版本的Ruby,包括2.6.6,步骤如下:
首先,我必须重新安装rbenv、ruby-Build并使用以下命令重新连接:
其次,使用
CONFIGURE_OPTS
破坏了我的OpenSSL构建。请改用RUBY_CONFIGURE_OPTS
。我使用的是自制软件,因此不得不使用以下标志:第三,设置以下内容以允许make命令中的警告不会停止构建:
第四,确保在通过rbenv安装时设置了ARCH标志:
第五,确保您的自制路径设置正确:
成功安装Ruby 2.6.6的最后一个命令是:
我使用sudo将mkdir权限授予脚本。
pbwdgjma2#
我已经能够安装x86_64代码和3.0.1作为arm64代码。我使用RVM,但这应该可以与其他东西一起使用。
1.我使用iTerm2,并已复印了2份。我使用Get Info将一个应用程序更改为使用Rosetta。我甚至在某个地方找到了x86应用程序的蓝色图标。
1.我有两个版本的自制软件。一个在/opt/home brew/bin/brew中,另一个在/usr/local/bin/brew中。
1.我的.zshc个人资料中有两套出口产品。我使用该体系结构为外壳选择正确的体系结构。
这样,我就可以在x86外壳中编译2.6.6(我假设是2.7.2),在arm64外壳中分别编译3.0.1。
我的RVM列表如下所示:
另外,我有时仍然很难让Rails正确地链接到MySQL。Ruby/Rils/MySQL似乎都必须采用相同的架构。还在追查那辆车。
mftmpeh83#
这对我来说很管用:
因此,我必须指定体系结构(
arch -x86_64
)和/usr/local/opt
下的OpenSSL版本。在我的例子中,我已经在那里安装了几个版本的OpenSSL,我只选择了我拥有的最新版本。在其他情况下,您可能需要自己下载并编译它nxagd54h4#
您可以使用Rbenv
RUBY_CFLAGS="-w" rbenv install 2.6.6