英文:
Problems building Ruby on ARM-64 MacOS machine
问题
无法在我的Mac OS ARM-64机器上构建Ruby 3.1.1,因为它尝试使用一些x86_64版本的文件。
我正在尝试使用brew和rbenv来管理我的Ruby安装。我已经查看了几个在线资源,尝试指定系统上的OpenSSL和libFFI安装,但显然仍然存在问题。
我正在输入:
rvm reinstall 3.1.1 --with-openssl-dir=`brew --prefix openssl`
仍然收到错误消息。
具体来说,我收到以下错误消息:
openssl_missing.c:24:13: error: incomplete definition of type 'struct X509_crl_st' *psig = crl->signature;
,以及在进程后面似乎与之相关的错误:ld: warning: ignoring file /usr/local/Cellar/libffi/3.4.4/lib/libffi.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
这是在我设置了我的.zshrc文件之后的,文件中包含以下内容:
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
这是根据其他搜索结果以及其他地方的指示所做的。
有人知道该怎么办吗?我想象Ruby 3.1.1已经由其他人在MacOS上编译过。至少我之所以做这个操作的部分原因是因为我无法安装Rails的gem。
英文:
Unable to build Ruby 3.1.1 on my Mac OS ARM-64 machine, as it tries to use x86_64 versions of some files.
I'm trying to use brew and rbenv to manage my Ruby installation. I have used several sources online to try to specify the OpenSSL and libFFI installations on my system, but something is clearly still wrong.
I'm typing:
rvm reinstall 3.1.1 --with-openssl-dir=`brew --prefix openssl`
Still getting an error.
Specifically, I get:
openssl_missing.c:24:13: error: incomplete definition of type 'struct X509_crl_st'
, and, later in the process, what appears to be a related error:
*psig = crl->signature;ld: warning: ignoring file /usr/local/Cellar/libffi/3.4.4/lib/libffi.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
This is after I setup my .zshrc with the lines
export LDFLAGS="-L/usr/local/opt/libffi/lib"
export CPPFLAGS="-I/usr/local/opt/libffi/include"
export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig"
,as instructed by other searches here and elsewhere.
Does anyone have any idea what to do? I imagine that Ruby 3.1.1 has been compiled by others on MacOS. At least part of the reason I'm doing this at all is because I can't install the gem for Rails.
答案1
得分: 1
正如在评论中指出的,这个问题是因为我使用了来自x86_64机器的Time Machine备份导致的。这导致我使用了几个库的错误版本,可能还包括Homebrew本身的错误版本。我不得不卸载Ruby和Homebrew,然后重新安装它们。最终,这让我成功安装了rails,这是我期望的结果。@tadman 应该得到这个解决方案的荣誉,但我希望其他遇到这个问题的人也能看到这个问题的答案。
英文:
As noted in a comment, this problem occurred because I had used a Time Machine backup from an x86_64 machine. That led to me having the wrong version of several libraries, and possibly of Homebrew itself. I had to uninstall Ruby and Homebrew, then install them again. This eventually let me even install rails, which was my desired outcome. @tadman deserves the credit on this but I wanted others with this problem to see an Answer to this question.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论