Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails i386使用OS Catalina 10.15安装旧的scrypt gem版本时出现arch错误_Ruby On Rails_Ruby_Rubygems_Macos Catalina - Fatal编程技术网

Ruby on rails i386使用OS Catalina 10.15安装旧的scrypt gem版本时出现arch错误

Ruby on rails i386使用OS Catalina 10.15安装旧的scrypt gem版本时出现arch错误,ruby-on-rails,ruby,rubygems,macos-catalina,Ruby On Rails,Ruby,Rubygems,Macos Catalina,在新安装OSX10.15Catalina和XCode命令行工具以及XCode 11.0之后,我正在尝试为一个旧项目安装一个旧的gem版本。我试图安装的gem是scrypt,版本1.2.1,它是authlogic的一个依赖项 gem安装scrypt-v'1.2.1' 此宝石在另一宝石酪蛋白的罩下使用。所以我不能直接在我的GEM文件中更新scrypt 返回以下错误: Building native extensions. This could take a while... ERROR: Erro

在新安装OSX10.15Catalina和XCode命令行工具以及XCode 11.0之后,我正在尝试为一个旧项目安装一个旧的gem版本。我试图安装的gem是
scrypt
,版本
1.2.1
,它是authlogic的一个依赖项

gem安装scrypt-v'1.2.1'

此宝石在另一宝石
酪蛋白
的罩下使用。所以我不能直接在我的GEM文件中更新scrypt

返回以下错误:

Building native extensions. This could take a while...
ERROR:  Error installing scrypt:
    ERROR: Failed to build gem native extension.

    current directory: /Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/scrypt-1.2.1/ext/scrypt
/Users/sergiypetrenko/.rvm/rubies/ruby-2.3.8/bin/ruby -rrubygems /Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/rake-13.0.0/exe/rake RUBYARCHDIR\=/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/extensions/x86_64-darwin-19/2.3.0/scrypt-1.2.1 RUBYLIBDIR\=/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/extensions/x86_64-darwin-19/2.3.0/scrypt-1.2.1
mkdir -p x86_64-darwin
gcc -fexceptions -O -fno-omit-frame-pointer -fno-strict-aliasing -Wall -msse -msse2 -arch x86_64 -arch i386   -o x86_64-darwin/crypto_scrypt-sse.o -c ./crypto_scrypt-sse.c
gcc -fexceptions -O -fno-omit-frame-pointer -fno-strict-aliasing -Wall -msse -msse2 -arch x86_64 -arch i386   -o x86_64-darwin/memlimit.o -c ./memlimit.c
gcc -fexceptions -O -fno-omit-frame-pointer -fno-strict-aliasing -Wall -msse -msse2 -arch x86_64 -arch i386   -o x86_64-darwin/scrypt_calibrate.o -gcc -fexceptions -O -fno-omit-frame-pointer -fno-strict-aliasing -Wall -msse -msse2 -arch x86_64 -arch i386   -o x86_64-darwin/sha256.o -c ./sha256.c
gcc -bundle -o x86_64-darwin/libscrypt_ext.bundle x86_64-darwin/crypto_scrypt-sse.o x86_64-darwin/memlimit.o x86_64-darwin/scrypt_calibrate.o x86_64-darwin/scrypt_ext.o x86_64-darwin/scryptenc_cpuperf.o x86_64-darwin/sha256.o -fexceptions -arch x86_64 -arch i386
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd
Undefined symbols for architecture i386:
  "___error", referenced from:
      _crypto_scrypt in crypto_scrypt-sse.o
      _memtouse in memlimit.o
  "___stack_chk_fail", referenced from:
      _scrypt_SHA256_Transform in sha256.o
      _scrypt_SHA256_Final in sha256.o
      _HMAC_scrypt_SHA256_Init in sha256.o
      _HMAC_scrypt_SHA256_Final in sha256.o
      _PBKDF2_scrypt_SHA256 in sha256.o
  "___stack_chk_guard", referenced from:
      _scrypt_SHA256_Transform in sha256.o
      _scrypt_SHA256_Final in sha256.o
      _HMAC_scrypt_SHA256_Init in sha256.o
      _HMAC_scrypt_SHA256_Final in sha256.o
      _PBKDF2_scrypt_SHA256 in sha256.o
  "_free", referenced from:
      _crypto_scrypt in crypto_scrypt-sse.o
  "_getrlimit$UNIX2003", referenced from:
      _memtouse in memlimit.o
  "_gettimeofday", referenced from:
      _scryptenc_cpuperf in scryptenc_cpuperf.o
  "_malloc", referenced from:
      _crypto_scrypt in crypto_scrypt-sse.o
  "_memcpy", referenced from:
      _scrypt_SHA256_Update in sha256.o
      _PBKDF2_scrypt_SHA256 in sha256.o
  "_mmap$UNIX2003", referenced from:
      _crypto_scrypt in crypto_scrypt-sse.o
  "_munmap$UNIX2003", referenced from:
      _crypto_scrypt in crypto_scrypt-sse.o
  "_sysconf", referenced from:
      _memtouse in memlimit.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
rake aborted!
Command failed with status (1): [gcc -bundle -o x86_64-darwin/libscrypt_ext...]
/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/ffi-compiler-1.0.1/lib/ffi-compiler/compile_task.rb:153:in `block in define_task!'
/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/rake-13.0.0/exe/rake:27:in `<main>'
Tasks: TOP => default => x86_64-darwin/libscrypt_ext.bundle
(See full trace by running task with --trace)

rake failed, exit code 1
构建本机扩展。这可能需要一段时间。。。
错误:安装scrypt时出错:
错误:无法生成gem本机扩展。
当前目录:/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/scrypt-1.2.1/ext/scrypt
/Users/sergiypetrenko/.rvm/rubies/ruby-2.3.8/bin/ruby-rrubygems/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/rake-13.0.0/exe/rake-rubyachdir\=/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/extensions/x86μ64-darwin-19/2.3.3.0/scrypt-1.2.2.1 RUBYLIBDIR\=/Users/sergiypetrenko/.2.1/grain.1/m/gems/8/ruby-2.1.1.1.1.1.1.2/rubypts
mkdir-p x86_64-darwin
gcc-feexceptions-O-fno省略帧指针-fno严格别名-Wall-msse-msse2-arch x86_64-arch i386-O x86_64-darwin/crypto_scrypt-sse.O-c./crypto_scrypt-sse.c
gcc-feexceptions-O-fno省略帧指针-fno严格别名-Wall-msse-msse2-arch x86_64-arch i386-O x86_64-darwin/memlimit.O-c./memlimit.c
gcc-fexceptions-O-fno省略帧指针-fno严格别名-Wall-msse-msse2-arch x86_64-arch i386-O x86_64-darwin/scrypt_calibrate.O-gcc-fexceptions-O-fno省略帧指针-fno严格别名-Wall-msse-msse2-arch x86_64-arch i386-O x86_64-darwin/sha256.O-c./sha256.c
gcc-bundle-o x86_64-darwin/libscrypt_ext.bundle x86_64-darwin/crypto_scrypt-sse.o x86_64-darwin/memlimit.o x86_64-darwin/scrypt_ext.o x86_64-darwin/scryptenc_cpuperf.o x86_64-darwin/sha256.o-feexceptions-arch x86_64-i386
ld:警告:macOS不推荐使用i386体系结构(从Xcode构建设置中删除:ARCHS)
ld:警告:忽略文件/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libSystem.tbd,文件/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/libSystem.tbd中缺少所需的体系结构i386
架构i386的未定义符号:
“错误”,引用自:
_crypto_scrypt-sse.o中的crypto_scrypt
_在memlimit.o中使用memouse
“\uuuuuuuuuuuu堆栈\u chk\u失败”,引用自:
_SHA256.o中的scrypt_SHA256_变换
_scrypt_SHA256_决赛在SHA256.o
_HMAC_scrypt_SHA256_Init在SHA256.o中
_HMAC_scrypt_SHA256_SHA256.o决赛
_SHA256.o中的PBKDF2_scrypt_SHA256
“\uuuuuuuuuuuuuuuu堆栈\u chk\u保护”,参考自:
_SHA256.o中的scrypt_SHA256_变换
_scrypt_SHA256_决赛在SHA256.o
_HMAC_scrypt_SHA256_Init在SHA256.o中
_HMAC_scrypt_SHA256_SHA256.o决赛
_SHA256.o中的PBKDF2_scrypt_SHA256
“免费”,引用自:
_crypto_scrypt-sse.o中的crypto_scrypt
“_getrlimit$UNIX2003”,引用自:
_在memlimit.o中使用memouse
“_gettimeofday”,引用自:
_scryptenc_cpuperf中的scryptenc_cpuperf.o
“_malloc”,引用自:
_crypto_scrypt-sse.o中的crypto_scrypt
“_memcpy”,引用自:
_scrypt_SHA256_在SHA256.o中更新
_SHA256.o中的PBKDF2_scrypt_SHA256
“mmap$UNIX2003”,引用自:
_crypto_scrypt-sse.o中的crypto_scrypt
“_munmap$UNIX2003”,引用自:
_crypto_scrypt-sse.o中的crypto_scrypt
“_sysconf”,引用自:
_在memlimit.o中使用memouse
ld:未找到架构i386的符号
叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用)
雷克流产了!
命令失败,状态为(1):[gcc-bundle-o x86\u 64-darwin/libscrypt\u ext…]
/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/ffi-compiler-1.0.1/lib/ffi compiler/compile_task.rb:153:在“定义_任务中的块”中
/Users/sergiypetrenko/.rvm/gems/ruby-2.3.8/gems/rake-13.0.0/exe/rake:27:in`'
任务:TOP=>default=>x86\u 64-darwin/libscrypt\u ext.bundle
(通过使用--trace运行任务查看完整跟踪)
rake失败,退出代码1
我在OS X 10.14 Mojave上的主要解决方案是为macOS_10.14.pkg安装此软件包
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_。但目前苹果决定删除Catalina中的/usr/include。原因是Xcode现在支持多个SDK和多个Xcode安装

提及类似问题:


我猜这是因为Catalina不再支持32位应用程序。@据我所知,这不仅仅是因为Catalina不再支持32位应用程序,在Mojave上我也遇到了同样的问题,通过为macOS_10.14.pkg安装这个包
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_解决了这个问题。显然,OS Mojave上问题的根源在于这个过程中的某个地方(bundler?scrypt?)人们期望头文件可以在
/usr/include
中找到。最新版本的XCode没有将头文件放在该位置,因为OS Catalina Apple决定删除
/usr/include
。作为一个快速修复,我将使用gem
scrypt
的casein复制到我的计算机gem
casein
中,然后将
scrypt
的更新版本添加到
3.0.6
中,并将其添加到gem文件夹的主要项目路径的Gemfile中。我猜这是因为Catalina不再支持32位应用程序了。@Anotherm,据我所知,它不仅仅是因为Catalina不再支持32位应用程序,所以在Mojave上我也遇到了同样的问题,通过安装这个包
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
。显然,Mojave操作系统问题的根源在于这个过程中的某个地方(bundler?scrypt?)有一种期待