気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【書籍】「信頼の原則」を拝読し、考えに変化があったこと

こんにちは。

ひどい花粉症が薬飲んだら良くなりました。(それはそうか)

どうもハチマキです。

はじめに

今回「信頼の原則」という書籍を拝読しました。拝読の目的は、信頼ある組織(高信頼組織)を構築する必要性がそもそもあるのか、そして高信頼組織ではどういったメリットが存在するのかを知ることです。

そもそも組織では、メンバー層の視点やマネジメント層の視点、経営者層の視点、その他(投資者視点、採用者視点)など、様々な視点や考えが入り混じっていると考えております。
拝読した結果、互いを信頼、尊重する組織こそ、目標(ビジョン)に対し、最大限の価値を創出できる可能性を秘めている組織であるということを大きく学びました。

そんなこんなで一通り読み終えたため、定着と実行のためにアウトプットしていこうと思います。

総論

最初に購読の目的がどうだったのか、結論を述べていきます。

結論は、組織(個人)では、高い信頼のある組織(高信頼組織)である必要があると考えました。
その理由としてあげられることは、高信頼組織こそ最大限の価値を創出できる可能性があるからです。つまりこれが最大のメリットだと感じました。

高信頼組織(互いを信頼、尊敬し合える組織)構築により、仕事へのモチベーションやアイディア創造などに波及され、結果的に業績の向上などの効果が現れてくるということです。

正直拝読する前は、「誰とするか」よりも「何をするか(どのような価値を世に生み出していくのか)」の方が、組織としては重要な要素ではないかと考えていました(目的に対して集まる組織)。
なぜならその目的を達成することで、人々が抱えている問題や社会課題を取り除くことでき、人々の生活、人生に変化をもたらすことができると考えていたからです。

しかし、組織で「何をするか(目的)」という価値を最大限に創出していくためには、「誰とするか」がもっとも重要な要素であることを今回学びました。

つまり高信頼組織を構築できる人たち(組織)でなければ、目的に向かって走り出しても、最大限の価値を創出できないというわけです。
組織でどんな価値を生み出していくのかと同様に、誰とその目的を目指していくかが重要だということです。

高信頼組織を構築するための必要な要素を、3つほどピックアップしてみました。

高信頼組織を築く、重要な要素

・公私ともに行動に一貫性を

1つ目は、組織で信頼を構築していくためには、人格だけではNG。つまりいい人ということだけでは、組織の中では信頼を築けないということです。
善意と実行力、公と私、言葉と行動の一致が重要であり、言葉だけでなく、自らの行動と体現で示していく必要があります。

また、周囲の意見を傾聴し、常に自らを客観視し、改善していく謙虚さも重要な要素でありました。

・利己的ではなく、利他的である

2つ目は、個々人が利己的ではなく、利他的であることです。自分のためではなく、相手のために誠意を尽くすこと。そのためには相手に関心をもち、ひたすら相手の言うことを理解することが重要な要素です。その結果、尊敬が生まれ、信頼へと繋がっていく。

つまり利益を自分のことのように大切にする人格を持つことが重要ということです。

また個々人だけでなく、組織から利他的である重要性を発信していき、浸透を促すことも重要な要素として挙げられておりました(例えば、組織の評価軸に加え、高信頼組織である必要性を評価軸というメッセージで組織全体に伝えていく)

・相手の可能性に期待し、信じ続ける

3つ目は、人と人とが信頼を構築するためには、権限を相手に委ねる(任せる)必要があるということ。そもそも信頼は0から立上げ、育て、評価しながら修復し、苦労して構築していくものと考える必要があります。
相手に権限を委譲し、フィードバック(悩みなどに耳を傾け)を通じ、相手の可能性に期待し、信じ続けることが重要です。

また、権限委譲される側も相手の期待に反する行動は避ける、常に期待以上の結果を生み出していくことで、相互の信頼関係が積み上がっていくではないかと考えました。

改善手段の一部紹介

課題に対する様々な改善案が紹介されていました。全てをここで記載することは難しいため、一部紹介する形にしたいと思います。

重要なことは、現状の組織に合わせた改善手段を講じることです。
そのためには、今どういった組織課題を抱えており、何を改善すれば歯車が周り始めるのかを分析し、知る必要があります。

・現状の信頼レベルを知る

今いるメンバーが、どのような動機で仕事に従事しているのかを知る。(相互理解を深める)
相互を理解、知ることができなければ、適正なアクションをしても効果は希薄になるため。

・20210330追記
組織として、どの程度の信頼レベル(宗教レベル?家族レベル?など)を目指していくのか認識を合わせておく必要があると感じた。
理由は、各々が考える信頼レベルで進むことで、組織として目指す信頼レベルの齟齬が発生するため

・適切な情報の透明化

同じビジョンがあるからこそ、良いことも悪いこともファクトの情報で透明化を行う。
正しい情報が透明化されないと、立ちはだかる難問に組織で取り組むことができず、信頼残高を積み上げていくことはできないため。

・組織全体の浸透

行動指針の浸透を目指す手段として、組織全体へ行動指針の重要性を発信していく。
例えば、組織の目標を追求した人を称賛する、ミッションを体現した人を表彰するなど、重要性を組織全体に発信していき、浸透を促していく必要がある。

自らの課題と改善項目

直近は、下記2つを改善して行こうと考えました。

・情報の伝達

情報解釈による粒度のばらつきを極力平す。
必要性や重要性、良い情報や悪い情報など、自分の粒度が相手に伝わるように改善していく。

そのためには、相手の求めることを理解し、何が伝わって何が伝わっていないかを自ら理解、確認していく必要がある。

・信頼し続ける勇気

今回大きく学んだ要素として、信頼し続ける勇気を持つこと。
どうしても合意した期待が下回った場合に、信頼残高が減少しまう傾向がある。ただ誰も好んで裏切られたいとは思わないし、裏切りたいと思っている人も少ないはず。

失敗のあとの信頼、そして失敗しても再チャレンジしようとする気持ちを促進させること(失敗した人に手を差し伸べる)に力を注いでいきたいと思う。

どんな人であろうと権限、チャンスをあたえ、軌道に乗るまでは、目をつぶって信頼し続ける勇気が、自分には必要だと感じた。

まとめ

将来的には、プロダクトマネジメントやチームマネジメントなどに携わって行きたいと考えている。
そのためには、相手を尊重し常に信頼し、高信頼組織を構築するスキルの習得が必要であると感じた。

時に信頼を裏切られることがあるかもしれない。しかし信頼を裏切られても、信頼は修復できるということ。
心配性がすぎると、成功のチャンスもなく、人間関係をも豊かにならないということ。
不信感より信頼、単独行動より相互依存、神経質に守りにはいるより信頼の原則に従ったほうを選択するということ。

注意深く管理することをリスクと考え、とにかくまずは相手を信頼し続けることから始めてみようと考えました。

書籍紹介

                                            • -

日々勉強です。
以上、ハチマキでした。

【Rails/環境構築(M1)】Could not find a JavaScript runtime. (ExecJS::RuntimeUnavailable)エラーの対処方法

こんにちは。

最近SQLにハマってます。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。その時に発生したエラーの対処方法についてです。

早速結論になりますが、この記事で対象にしているエラーExecJS::RuntimeUnavailableですが、下記記載した解消方法では根本的に解消できませんでした(サーバ起動時にエラーが発生する)

ですので、もしこの記事で書かれた内容で解消できない場合は、こちらの記事と合わせて参考にして頂けばと思います。
【Rails/環境構築(M1)】ローカルサーバ起動後にアクセスすると「dyld: lazy symbol binding failed: Symbol not found」エラーが発生し、サーバが落ちる時の対処方法 - めがね屋のエンジニアブログ

環境

問題

rspecのテストコマンドを実行すると、JS関連でエラーが発生する。

% bundle exec rspec

An error occurred while loading ./spec/features/~.rb
Failure/Error: require File.expand_path('../config/environment', __dir__)

ExecJS::RuntimeUnavailable:
  Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes.
# ./vendor/ruby/2.6.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect'
# ./vendor/ruby/2.6.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>'
# ./vendor/ruby/2.6.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<main>'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# ./vendor/ruby/2.6.0/gems/uglifier-4.2.0/lib/uglifier.rb:5:in `<main>'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
# ./vendor/ruby/2.6.0/gems/bootsnap-1.7.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
# ./config/application.rb:7:in `<top (required)>'
# ./config/environment.rb:2:in `require_relative'
# ./config/environment.rb:2:in `<top (required)>'
# ./spec/rails_helper.rb:5:in `require'
# ./spec/rails_helper.rb:5:in `<top (required)>'
# ./spec/features/~.rb:1:in `require'
# ./spec/features/~.rb:1:in `<top (required)>'
No examples found.


Finished in 0.00004 seconds (files took 3.01 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples

原因

Javascriptを実行するために必要なランタイム(ソフトウェアの実行に必要なプログラム)がないことでエラーが発生

解決方法

必要なランタイムをインストールすれば解消です。
rails newで生成されたGemfileのmini_racerコメントアウトを外し、bundle installを行うことで解消できます。

Gemfileファイル

#gem 'mini_racer', platforms: :ruby #コメントアウト外す
gem 'mini_racer', platforms: :ruby

ターミナル(コメントアウト外した後に)

% bundle install

*追記(20210317)
結局この対応方法では解消できませんでした。
解消するためにやったことを簡潔に申しますと、mini_racerの代わりとなる必要なランタイムをインストールする対応です。

▼こちらの記事も合わせて、ご参考にしてください。
【Rails/環境構築(M1)】ローカルサーバ起動後にアクセスすると「dyld: lazy symbol binding failed: Symbol not found」エラーが発生し、サーバが落ちる時の対処方法 - めがね屋のエンジニアブログ

【Rails/環境構築(M1)】Could not find Firefox binary (os=macosx)エラー解消方法

こんにちは。

春風邪でしょうか。急に体調が悪くなりました、。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。
環境構築にいくつかはまった箇所がありましたが、今回はコマンド一つで解消できます。
忘れないようメモしていきます。

環境

やりたいこと

発生したCould not find Firefox binary (os=macosx)エラーを解消したい

問題

rspecのテストコマンドを実行すると、下記エラーが発生する。
▽エラー事例

 Selenium::WebDriver::Error::WebDriverError:
       Could not find Firefox binary (os=macosx). Make sure Firefox is installed or set the path manually with Selenium::WebDriver::Firefox::Binary.path=

解決方法

カスタムアプリパスを指定し、Firefoxをインストールすることで解決にいたりました。
※設定変更することで、chromeなどでも対応可

% brew  install --appdir="/Applications" firefox 

==> Downloading https://download-installer.cdn.mozilla.net/pub/firefox/releases/85.0.1/mac/
######################################################################## 100.0%
==> Installing Cask firefox
==> Moving App 'Firefox.app' to '/Applications/Firefox.app'
🍺  firefox was successfully installed!

参考資料

RSpecでCould not find Firefox binary (os=macosx)というエラーが発生した件 - Qiita

                                            • -

日々勉強です。
以上、ハチマキでした。

【Rails/環境構築(M1)】ローカルサーバ起動後にアクセスすると「dyld: lazy symbol binding failed: Symbol not found」エラーが発生し、サーバが落ちる時の対処方法

こんにちは。

天気がよくて気分が良い!花粉がなければ。。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。その時に発生したエラーの対処方法についてです。

今回のエラーは結構強敵で、エラー解消に数日費やしました。。そのため、解消方法について書いていきたいと思います。

環境

やりたいこと

サーバを正常に動かしたい

問題

ローカルサーバ起動後にアクセスすると「dyld: lazy symbol binding failed: Symbol not found」エラーが発生し、サーバが落ちる。。

原因

今回の原因は、環境構築時に発生した (ExecJS::RuntimeUnavailable)を解消するためにインストールしたmini_racerが原因でサーバが落ちていました。

エラーログ
% rails s            
=> Booting Puma
=> Rails 5.2.4.5 application starting in development 
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.12.6 (ruby 2.6.4-p104), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
I, [2021-02-13T22:36:34.461153 #83088]  INFO -- : Started GET "/" for ::1 at 2021-02-13 
・
・
dyld: lazy symbol binding failed: Symbol not found: __ZN2v82V813InitializeICUEPKc
  Referenced from: /Users/ユーザ名/development_of_app//vendor/bundle/ruby/2.6.0/gems/mini_racer-0.3.1/lib/mini_racer_extension.bundle
  Expected in: flat namespace

dyld: Symbol not found: __ZN2v82V813InitializeICUEPKc
  Referenced from: /Users/ユーザ名/development_of_app/vendor/bundle/ruby/2.6.0/gems/mini_racer-0.3.1/lib/mini_racer_extension.bundle
  Expected in: flat namespace

zsh: abort      rails s

解消方法

早速ですが、解決方法です。
インストールしたmini_racersをアンインストールし、その状態でbundle installするとExecJS::RuntimeUnavailableエラーが発生するので、 代わりのjs実行エンジンをインストールする必要があります。

ステップ1:インストールしたmini_racerを元に戻す

Gemfileファイル

#gem 'mini_racer', platforms: :ruby #コメントアウトを戻す
ステップ2:libv8をインストールする(環境に応じて必要なv8を提供してくれる)
 %  gem install libv8 -v '3.16.14.19' -- --with-system-v8
Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.19
Parsing documentation for libv8-3.16.14.19
Installing ri documentation for libv8-3.16.14.19
Done installing documentation for libv8 after 0 seconds
1 gem installed
ステップ3:v8をbundlerが読むように設定する
$ bundle config build.libv8 --with-system-v8
ステップ4:v8をインストールする(jsの実行エンジン)
% brew install v8
==> Downloading https://homebrew.bintray.com/bottles/v8-8.8.278.15.arm64_big_sur.bottle.tar
==> Downloading from https://d29vzk4ow07wi7.cloudfront.net/70e65168b14df8f2e40598467ae15c50
######################################################################## 100.0%
==> Pouring v8-8.8.278.15.arm64_big_sur.bottle.tar.gz
🍺  /opt/homebrew/Cellar/v8/8.8.278.15: 80 files, 39.9MB
Removing: /Users/ユーザ名/Library/Caches/Homebrew/v8--8.8.278.14.arm64_big_sur.bottle.tar.gz... (12.6MB)

ここまでたどり着くのが長かった。。

最後にbundle installしてからサーバを起動したところ、正常にサーバが起動しました。
お疲れ様でした。

【Rails/環境構築(M1)】Unknown command: caskのエラー解消方法

こんにちは。

最近進撃の巨人にハマり、ひとまずアニメは追い付きました。
日曜深夜が待ち遠しい。。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。
caskを使用して、firefoxをインストールする際にError: Unknown command: caskが発生。
解消するためのインストールコマンドを書いていきたいと思います。

そもそもcaskとは?

Homebrew-CaskはHomebrewを拡張し、その優雅さ、シンプルさ、スピードをmacOSアプリケーションや大きなバイナリにもたらします。
あなたのシェルで1行だけで、5476人のコントリビューターによって管理されている3960個のCasksに到達します。

※公式ページ参照

homebrew-caskとは?

homebrewの拡張で、MacGUIアプリケーションをコマンド一発で管理してしまう優れものです

環境

問題

とにかくcaskコマンドを実行してもUnknown command: caskが返ってくる

% brew cask install --appdir="/Applications" firefox
Error: Unknown command: cask
% brew install caskroom/cask/brew-cask
Error: caskroom/cask was moved. Tap homebrew/cask instead.
% brew tap caskroom/versions
Error: caskroom/versions was moved. Tap homebrew/cask-versions instead.
% brew caskw
Error: Unknown command: caskw
% brew cask
Error: Unknown command: cask

原因

そもそもインストールしてなかった。。

解決方法

インストールコマンドを実行することで、caskがインストールされ解消に至りました。。確認不足です。

% brew install cask

参考資料

homebrew-caskとは - Qiita
homebrew-caskって何??? - Qiita

                                            • -

日々勉強です。
以上、ハチマキでした。

【Rails/環境構築(M1)】BUILD FAILED (macOS 11.1 using ruby-build 20210119)のエラー解消方法

こんにちは。

最近は運動不足解消のため、一駅前で降りて歩いて帰宅しております。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。
今回rbenvでRuby2.6.4をインストールする際に発生したエラーの対処方法について書いていきます。

環境

やりたいこと

Ruby2.6.4にバージョン変更したい

問題

Ruby2.6.4をインストーするためにrbenv install 2.6.4を実行したが、初めて見たエラーに出くわしました。
▽エラー事例

% rbenv install 2.6.4
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/user_name/.rbenv/versions/2.6.4

Downloading ruby-2.6.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.bz2
Installing ruby-2.6.4...
ruby-build: using readline from homebrew

BUILD FAILED (macOS 11.1 using ruby-build 20210119)

Inspect or clean up the working tree at /var/folders/hq/9_xgdx314vjfbz6wnqc7jx280000gn/T/ruby-build.20210206115130.11119.X89in3
Results logged to /var/folders/hq/9_xgdx314vjfbz6wnqc7jx280000gn/T/ruby-build.20210206115130.11119.log

Last 10 log lines:
compiling ../.././ext/psych/yaml/dumper.c
linking shared-object -test-/string.bundle
compiling ../.././ext/psych/yaml/reader.c
compiling ../.././ext/psych/yaml/emitter.c
compiling ../.././ext/psych/yaml/parser.c
5 warnings generated.
linking shared-object zlib.bundle
1 warning generated.
linking shared-object psych.bundle
make: *** [build-ext] Error 2

解決方法

下記を実行することで無事に解消されました。(原因は正直いまいちわかっておりません。。)

% RUBY_CFLAGS=-DUSE_FFI_CLOSURE_ALLOC rbenv install 2.6.4
Downloading openssl-1.1.1i.tar.gz...
-> https://dqw8nmjcqpjn7.cloudfront.net/e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242
Installing openssl-1.1.1i...
Installed openssl-1.1.1i to /Users/user_name/.rbenv/versions/2.6.4

Downloading ruby-2.6.4.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.4.tar.bz2
Installing ruby-2.6.4...
ruby-build: using readline from homebrew
Installed ruby-2.6.4 to /Users/user_name/.rbenv/versions/2.6.4


% ruby -v          
ruby 2.6.4p62 (2019-04-16 revision 67580) [universal.arm64e-darwin20]
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv local 2.6.4
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv rehash
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % rbenv local 2.6.4
yutakayamaki@YAMAKInoMacBook-Air yy-sprout % ruby -v          
ruby 2.6.4p104 (2019-08-28 revision 67798) [-darwin20]

その後、Ruby2.6.4に変更すれば完了です。

% ruby -v 
ruby 2.2.4
% rbenv local 2.6.4
% rbenv rehash
% ruby -v          
ruby 2.6.4p104 (2019-08-28 revision 67798) [-darwin20]

参考資料

M1 の MacBook で rbenv + Ruby 2.6.6 をビルドする - Secret Garden(Instrumental)

                                            • -

日々勉強です。
以上、ハチマキでした。

【Rails/環境構築(M1)】bundle installで発生した`gem install ffi -v '1.12.2' --sourceエラーの対処方法

こんにちは。

最近はリモートが増えたので、腰への負荷が抑えられるいい椅子が欲しい。

どうもハチマキです。

はじめに

最近MacBook Air(M1,2020)を購入したため、開発環境の構築を行いました。その時に発生したエラーの対処方法について書いていきます。

補足ですが、MacBook Air(M1,2020) の環境構築の記事をちょくちょく見ましたが、intel時と比較すると初めて出くわすエラーが多々あるみたいです。

環境

やりたいこと

bundle installを問題なく通したい

問題

bundle installを実行したことで、下記のようなエラーが発生した。
言われた通りにgem install ffi -v '1.12.2'のinstallを試みるも今後は別のエラーが発生

 % bundle install --path vendor/bundler
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Ignoring byebug-11.1.3 because its extensions are not built. Try: gem pristine byebug --version 11.1.3
Ignoring byebug-10.0.2 because its extensions are not built. Try: gem pristine byebug --version 10.0.2
Ignoring puma-3.12.6 because its extensions are not built. Try: gem pristine puma --version 3.12.6
Ignoring sassc-2.4.0 because its extensions are not built. Try: gem pristine sassc --version 2.4.0
Ignoring sqlite3-1.4.2 because its extensions are not built. Try: gem pristine sqlite3 --version 1.4.2
Fetching gem metadata from https://rubygems.org/..........
Using rake 13.0.1
Using concurrent-ruby 1.1.7
Using i18n 1.5.1
・
・
Using bootsnap 1.4.5
Fetching ffi 1.12.2
Installing ffi 1.12.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
・
・
1 error generated.
make: *** [Function.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/Users/user_name/development_of_app/app-hoge/vendor/ruby/2.6.0/gems/ffi-1.12.2 for
inspection.
Results logged to
/Users/user_name/development_of_app/app-hoge/vendor/ruby/2.6.0/extensions/-darwin-20/2.6.0/ffi-1.12.2/gem_make.out

An error occurred while installing ffi (1.12.2), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.12.2' --source 'https://rubygems.org/'` succeeds
before bundling.

In Gemfile:
  bootstrap-sass was resolved to 3.4.1, which depends on
    sassc was resolved to 2.4.0, which depends on
      ffi

言われた通りにgem install ffi -v '1.12.2'をinstallを試みる

% sudo gem install ffi -v '1.12.2'
Building native extensions. This could take a while...
ERROR:  Error installing ffi:
	ERROR: Failed to build gem native extension.
・
・
make failed, exit code 2

Gem files will remain installed in /Users/user_name/.rbenv/versions/2.6.4/lib/ruby/gems/2.6.0/gems/ffi-1.12.2 for inspection.
Results logged to /Users/user_name/.rbenv/versions/2.6.4/lib/ruby/gems/2.6.0/extensions/-darwin-20/2.6.0/ffi-1.12.2/gem_make.out

原因

今回git cloneしてから環境構築を行ったこともあり、おそらくすでにあったGemfile.lockを見にいっていた

解決方法

Gemfile.lockを一度削除し、再度bundle installを実行することで解消しました。

% rm Gemfile.lock #削除

% bundle install --path vendor/bundler  
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local path 'vendor/bundler'`, and stop using this flag
Fetching gem metadata from https://rubygems.org/..........
Using rake 13.0.3

・・
・・
・
Bundle complete! 39 Gemfile dependencies, 144 gems now installed.
Bundled gems are installed into `./vendler/bundler`
Post-install message from sass:

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841

参考資料

Ruby - ffi gemをインストールしたい。|teratail

                                            • -

日々勉強です。
以上、ハチマキでした。