ããæ¥ï¼rbenv
ãè¦ã¦ãã
brew upgrade ebenv
ãã¦ï¼
$ rbenv install -list 2.5.8 2.6.6 2.7.2 3.0.0 jruby-9.2.14.0 mruby-2.1.2 rbx-5.0 truffleruby-20.3.0 truffleruby+graalvm-20.3.0
æ¨å¹´ä¸ã«ruby 3.0.0
ãæ£å¼ã«ãªãªã¼ã¹ããï¼rbenv
ã対å¿ãããããï¼å
¥ãã¦ã¿ãã£ããªãã俺ããªããâ¦
ãã®ruby 3.0.0
ãå
¥ãããã¨ãã¦ãããã£ã
å½æã®ç°å¢ã¯ä»¥ä¸ã®éãã ã£ãï¼
- MBP 2016 15inch
- macOS
Catalina
clang Apple 11.0.0
âã ãããããã¤ã®ããã ã£ã
åãããã¨ã©ã¼
... linking miniruby generating x86_64-darwin19-fake.rb x86_64-darwin19-fake.rb updated make: *** [exe/ruby] Segmentation fault: 11 make: *** Deleting file 'exe/ruby' BUILD FAILED (Mac OS X 10.15.7 using ruby-build 20201225) Inspect or clean up the working tree at /var/folders/rk/0hczm32x2znb6pr6h4858hpc0000gn/T/ruby-build.20210104003100.75691.mUe6Zo Results logged to /var/folders/rk/0hczm32x2znb6pr6h4858hpc0000gn/T/ruby-build.20210104003100.75691.log Last 10 log lines: compiling enc/unicode.c compiling enc/utf_8.c compiling enc/trans/newline.c ./revision.h unchanged compiling version.c linking miniruby generating x86_64-darwin19-fake.rb x86_64-darwin19-fake.rb updated make: *** [exe/ruby] Segmentation fault: 11 make: *** Deleting file 'exe/ruby'
ã©ãããæå¾ã®make
ã®ã¨ãã§ãããã£ããããï¼
åå æ¨å®
Segmentation fault: 11
ï¼ããã¯ãªããã³ã³ãã¤ã©ãæªãæ°ãããã®ã§ï¼è¨å®ãçµéãè¦ãããªã£ãï¼
rbenv install -v 3.0.0
-v
ããªããrbenv install
ããã¨è«¸ã
ã®çµéãè¦ããï¼ãã®çµæ
Configuration summary for ruby version 3.0.0 * Installation prefix: /Users/username/.rbenv/versions/3.0.0 * exec prefix: ${prefix} * arch: x86_64-darwin19 * site arch: ${arch} * RUBY_BASE_NAME: ruby * enable shared: yes * ruby lib prefix: ${libdir}/${RUBY_BASE_NAME} * site libraries path: ${rubylibprefix}/${sitearch} * vendor path: ${rubylibprefix}/vendor_ruby * target OS: darwin19 * compiler: clang -fdeclspec * with pthread: yes * with coroutine: amd64 * enable shared libs: yes * dynamic library ext: bundle * CFLAGS: ${optflags} ${debugflags} ${warnflags} * LDFLAGS: -L. \ -L/Users/username/.rbenv/versions/3.0.0/lib \ -fstack-protector-strong -L/usr/local/lib * DLDFLAGS: -L/Users/username/.rbenv/versions/3.0.0/lib \ -Wl,-undefined,dynamic_lookup \ -Wl,-multiply_defined,suppress * optflags: -O3 * debugflags: -ggdb3 * warnflags: -Wall -Wextra -Wdeprecated-declarations \ -Wdivision-by-zero \ -Wimplicit-function-declaration -Wimplicit-int \ -Wpointer-arith -Wshorten-64-to-32 \ -Wwrite-strings -Wmissing-noreturn \ -Wno-constant-logical-operand -Wno-long-long \ -Wno-missing-field-initializers \ -Wno-overlength-strings -Wno-parentheses-equality \ -Wno-self-assign -Wno-tautological-compare \ -Wno-unused-parameter -Wno-unused-value \ -Wunused-variable -Wextra-tokens * strip command: strip -A -n * install doc: rdoc * JIT support: yes * man page type: doc * BASERUBY -v: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) \ [x86_64-darwin19]
ãåããªããï¼åãããã«å¤±æããï¼
* target OS: darwin19 * compiler: clang -fdeclspec
ãè¦ãã«ï¼macOSåãä»ãã®clang
ã使ã£ã¦ãããã¨ã¯å¯ããï¼ç§ã¯ãã¾ã ã«ã³ã³ãã¤ã©ã«æãåºããäºããªãï¼ï¼
$ clang -v Apple clang version 11.0.0 (clang-1100.0.33.8) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
ã©ãããã«ãã«ã¯ã³ã¤ãã使ã£ããããï¼
æ©ãã§Twitterã彷徨ã£ã¦ãããï¼clang Apple 12.0.0
ã§ruby 3.0.0
ãå
¥ããã£ã½ãæ¹ãçºè¦ããï¼
ã¾ããâãâã«ããã¨ï¼macOS Big Sur
ã§ã¡ããã¨XCode
ãå
¥ãã¦ãã人ã¯
$ clang --version Apple clang version 12.0.0 (clang-1200.0.32.27) Target: x86_64-apple-darwin20.2.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
ã¨ãªããããï¼ç§ã¯XCode
ãå
¥ããå¾ã«æ¶ããï¼ã ã£ã¦ãããã«ã¤ãéããâ¦ï¼ï¼
ã¤ã¾ãclang
ã®ãã¼ã¸ã§ã³ãå¤ãããã§ãããã£ãããããï¼ã¨èããï¼
解決編
æ¦è¦
CommandLineTools
ãå¼·å¶çã«å
¥ãç´ãã¨clang 12.0.0
ã«ãªãã®ã§ã¨ã·ï¼ruby 3.0.0
ãå
¥ããããï¼
æé
Catalina
ã§softowareupdate
ã«ä»»ãã¦ããã以ä¸ã«CommandLineTools
ã¯æ°ãããªããªãï¼ã¤ã¾ãclang 12.0.0ã¯ã©ã足æ»ãã¦ãæã«å
¥ããªãï¼ã®ã§ï¼ãã£ãæåã§å
¥ãç´ãï¼
$ sudo rm -rf /Library/Developer/CommandLineTools ... $ xcode-select --install
ãã¼ã¸ã§ã³ç¢ºèªããã¨
$ clang -v Apple clang version 12.0.0 (clang-1200.0.32.28) Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin
ãããªãã¯ãï¼ãã£ã±ãXCode
ããªãã¦ã大ä¸å¤«ã ã£ããããªããâ¦
ããã§
$ rbenv install 3.0.0
ããã°
Installed ruby-3.0.0 to /Users/username/.rbenv/versions/3.0.0
ãåºãã¯ãï¼ãã¼ã¸ã§ã³ãå¤ãããå¤ããªããã¯ããªã次第ã ã
rbenv local 3.0.0
ã¨ãã§ã§ããï¼
çµããï¼éå»·ï¼ä»¥ä¸ï¼ã¿ããªè§£æ£ï¼åãã帰ã£ã¦è¯ãã
ãã¾ã
clang 11.0.0
(ããã以åã®ä»»æã®ãã¼ã¸ã§ã³ã®clang
)ã使ãããæã«ã©ãããããèããï¼
æ¦è¦
homebrew
ã§llvm
ãå
¥ãã¦ï¼ããçµç±ã§clang
ã®ãã¼ã¸ã§ã³ãä»»æã«å¤ããããããã«ããããï¼
llvm
ã¨ã¯
llvm
ãéçºãã¦ããçµç¹ããã®å
¬å¼ãã¼ã¸ã¯ãâãâï¼llvmã¾ããã®ãã¦ã³ãã¼ããããã¥ã¡ã³ãçã¯ãâãâï¼
llvm
èªä½ã¯c
ãc++
ã®ã³ã³ãã¤ã©clang
ã®ããã¯ã§åãã¦ãããããªä¸éè¨èªãçæããã·ã¹ãã ã§ï¼ã¨ãããclang
ãc
ã®ä»æ§ã«å¯¾å¿ããªããllvm
ã¨ä¸¦è¡ã§éçºã»ç¶æããç¶ãã¦ãããã®ã«ãªã£ã¦ããâ¦ããããªï¼
ã¤ã¾ãããæããllvm
ã®ãã¼ã¸ã§ã³ãclang
ã®ãã¼ã¸ã§ã³ã«ãªã£ã¦ããï¼ããã¦brew
ã§æã«å
¥ããããææ°çã¯ä»ã ã¨llvm 11.0.0
ã§ï¼ãããå
¥ããã¨clang 11.0.0
ããããªãããã«ã¤ãã¦ããâ¦ã¨ããæµãã«ãªãï¼
ãã ããã¾ã§è¨èªãã¢ã¼ããã¯ãã£ã«ä¾åããããå¹çã®è¯ãä¸éè¨èªãçæãããã¨ããã®ãllvm
ã§ï¼ãããå©ç¨ãã¦objective-c
ãªã©ãã³ã³ãã¤ã«ããã®ãclang
ï¼ããã§clang
ã®éçºã®è¨ãåºãã£ãºã¯ãã£ã±ãAppleã§â¦ã ãããã£XCode
ã«ã¡ããã¨ææ°çã®clang 12.0.0
ãå
¥ã£ã¦æä¾ããã¦ããï¼ãã£ã±ææªã£ã¦ãããããã¸ã§â¦
â¦ãªã®ã§clang
ã¯gcc
ãããæ§è½ã¨ä½¿ãåæãå
±ã«è¯ãâ¦ãããï¼ç§ã¯éçºè
ã§ã¯ãªãã®ã§å
¨ãããããªããï¼ï¼
äºåæºå
homebrew
ãå°å
¥ãã¦ããï¼
ææ°çã®llvm
ã ãã§è¯ããªã
ã¾ãã¯å ¥ãã¦ã¿ãï¼
$ brew install llvm <versions> ... $ brew info llvm ...
ã¡ããã¨æ³¨ææ¸ããèªãï¼æç²ï¼ï¼
To use the bundled libc++ please add the following LDFLAGS: LDFLAGS="-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" llvm is keg-only, which means it was not symlinked into /usr/local, because macOS already provides this software and installing another version in parallel can cause all kinds of trouble. If you need to have llvm first in your PATH run: echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> /Users/SolunaEureka/.bash_profile For compilers to find llvm you may need to set: export LDFLAGS="-L/usr/local/opt/llvm/lib" export CPPFLAGS="-I/usr/local/opt/llvm/include"
keg-only
â¦ã¤ã¾ãã·ã³ããªãã¯ãªã³ã¯ãçæãããªãã¿ã¤ãã®ããã±ã¼ã¸ã ãã©ï¼ä¸èº«ã¯ã¡ããã¨ãããããã¹ã ãã¯éãããï¼ãã¨ã³ã³ãã¤ã©ã«ç¥ãããããã©ãã°ã«ã対å¿ãã¦ããããï¼ä½¿ããããã°ãã¹ã ãã¯éãããï¼ï¼æ訳ï¼
â¦ã¨ãããã¨ã§ï¼ã³ãã³ãã¨ãã¦ã®llvm
ã¯ã©ãããªããããªã®ã§ï¼ãããæã£ã¦llvm
çµç±ã®clang
ãæå¹ã«ãªããããªæãã«ããããã«ï¼.bash_profile
ãããã(åèï¼å¦çãã¡ã®æè¡ããã°)ï¼ã¾ã bashã§ããããªãã
function llvm (){ #é¢æ°ãå®ç¾©ãã¦ãã export PATH="/usr/local/opt/llvm/bin:$PATH" #以ä¸ï¼å ã®æ³¨ææ¸ãã®éãã«ãã¹ã追å ã»å¤æ´ãã export LDFLAGS="-L/usr/local/opt/llvm/lib" export CPPFLAGS="-I/usr/local/opt/llvm/include" unset -f llvm #ãã£ããå¼ã³åºããããå®ç¾©ããããã®é¢æ°ãç ´å£ãã }
ããã¾ã§çµãã£ããterminal
ãç«ã¡ä¸ãç´ãã¦
$ llvm $ clang -v clang version 11.0.0 Target: x86_64-apple-darwin19.6.0 Thread model: posix InstalledDir: /usr/local/opt/llvm/bin
ã«ãªãã¯ãï¼ æ°ããã¿ããéãã°å ã«æ»ãã®ã§å®å¿ã ãï¼
æ§çã®llvm
ã使ããããªã
homebrew
ã¯åºæ¬çã«ææ°ç以å¤ã¯çµ¶å¯¾ã«èªããªããã³ãªä¸ã«éå»çã®ã¤ã³ã¹ãã¼ã«ã«é¢ãã¦ã¯ä»æ§ãå¤ãããããï¼ãããªä¸ã§å人çã«ç¾å¨ã®åèã«ãªã£ãã®ã¯ãâãâï¼
brew tap-new
ã¨brew extract
ãç¨ãã¦ï¼èªå®¶è£½ã®tap
ã«å
¬å¼ã®formula
ãã¶ã¡è¾¼ãã§ï¼ãã®tap
ããæ´ã«brew install
ããã°è¯ãï¼ãããï¼ãããçºæ¡ãã人ï¼æ¬å½ã«è³¢ãâ¦
ã¨ãããã¨ã§è©¦ãã«llvm 10.0.0
ãå
¥ãã¦clang 10.0.0
ã«åãæ¿ãããã¨ãã¦ã¿ã(主è¦ãªåºåãæãåºã)ï¼
$ brew tap-new llvm/1000 Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/llvm/homebrew-1000/.git/ [master (root-commit) d649d61] Create llvm/1000 tap 3 files changed, 85 insertions(+) create mode 100644 .github/workflows/publish.yml create mode 100644 .github/workflows/tests.yml create mode 100644 README.md ==> Created llvm/1000 /usr/local/Homebrew/Library/Taps/llvm/homebrew-1000 $ brew extract llvm llvm/1000 --version 10.0.0 ==> Searching repository history ==> Writing formula for llvm from revision 96544f6 to: /usr/local/Homebrew/Library/Taps/llvm/homebrew-1000/Formula/[email protected] $ brew install llvm/1000/[email protected] ==> Installing [email protected] from llvm/1000 [email protected]: A full installation of Xcode.app is required to compile this software. Installing just the Command Line Tools is not sufficient. Xcode can be installed from the App Store. Error: An unsatisfied requirement failed this build.
XCode
ããªãã¨ãã¡ã¨è¨ãããï¼ãªãã ã³ã¬ã¯ï¼ãã¾ãããªãâ¦
ããã¡ããã¨å
¥ãã¦ãã人ãããã試ãã¦ã¿ã¦æ¬²ããï¼
ãã¨ã¯ã©ãã«ããã¦ãã¼ã¸ã§ã³ãåãæ¿ãã¦ã¿ã¦æ¬²ããâ¦
ææ³
ã³ã³ãã¤ã©ã£ã¦è²ã
ãã£ã¦å¤§å¤ã ãªãã¨ã¥ã¾ããã¨ã
絶対ãã£ã¨è¯ãããæ¹ãããã®ã§ã¯ï¼brewã¯ãã¼ã¸ã§ã³ç®¡çã«ä¸åãã ãllvm
ã¨clang
ã¯å
¬å¼ãµã¤ãããDLãã¦çªã£è¾¼ãã§èªåã§ã¡ããã¨é¢æ°ãçµã¿ä¸ããæ¹ãããããããªããï¼åé¡ã¯è§£æ±ºããããããä½ãèããããªããã©â¦