1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

超初心者がgemを入れようとしてハマった一部始終とその対処

Posted at

recommendifyがどうしても必要だったのですが、超初心者ゆえ入れるのに苦労したので、どうしたかを自分用にメモしておきます。
#環境
macOS mojava 10.14.4
#たぶんちゃんとした手順
以下の「実際にやった手順」を踏まえて、これがベストなのかなと思った手順です。
超初心者なので、これできちんと動くかはわからないです。

  1. brew install redis
  2. brew install hiredis
  3. gem install hiredis
  4. gem install recommendify
  5. bandle install
    ##実際にやった手順とターミナル
    起きたトラブルとその経過も一緒に載せました(恥晒し)。
    ###brew install redis
$ brew install redis
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
mysql ✔    ballerina  ccache     ghq        iamy       istioctl   swiftlint

==> Downloading https://homebrew.bintray.com/bottles/redis-5.0.4.mojave.bottle.t
==> Downloading from https://akamai.bintray.com/61/610694b6fa462400eb0f197f1aafc
######################################################################## 100.0%
==> Pouring redis-5.0.4.mojave.bottle.tar.gz
==> Caveats
To have launchd start redis now and restart at login:
  brew services start redis
Or, if you don't want/need a background service you can just run:
  redis-server /usr/local/etc/redis.conf
==> Summary
🍺  /usr/local/Cellar/redis/5.0.4: 13 files, 3.1MB

ここは難なくできました。
###sudo gem install redis hiredis -N -V ※非推奨
今考えると、この手順が良くなかったです(理由は後述)。

$ sudo gem install redis hiredis -N -V
Password:
(中略)
Successfully installed redis-4.1.0
(中略)
Building native extensions. This could take a while...
current directory: /Users/(ユーザ名)/.rbenv/gems/2.6.0/gems/hiredis-0.6.3/ext/hiredis_ext
["/Users/(ユーザ名)/.rbenv/versions/2.6.2/bin/ruby", "-I", "/Users/(ユーザ名)/.rbenv/versions/2.6.2/lib/ruby/2.6.0", "-r", "./siteconf20190429-1600-s11c4a.rb", "extconf.rb"]
checking for sys/socket.h... yes
(中略)
connection.c:375:55: note: passing argument to parameter 'reply' here
static int __get_reply(redisParentContext *pc, VALUE *reply) {
                                                      ^
1 warning generated.
compiling hiredis_ext.c
compiling reader.c
linking shared-object hiredis/ext/hiredis_ext.bundle
(中略)
Successfully installed hiredis-0.6.3
2 gems installed

警告文吐いてるけど、とりあえずインストールできたらしいです。
###gem update

$ gem update

gemを入れる前におまじないのごとくやっているので、特に意味はないです。
###gem install recommendify ※失敗

$ gem install recommendify 
Fetching recommendify-0.3.8.gem
Building native extensions. This could take a while...
ERROR:  Error installing recommendify:
	ERROR: Failed to build gem native extension.
(中略)
mkdir -p ../bin
gcc -Wall recommendify.c -lhiredis -o ../bin/recommendify
recommendify.c:4:10: fatal error: 'hiredis/hiredis.h' file not found
(中略)
1 error generated.
make: *** [build] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/(ユーザ名)/.rbenv/gems/2.6.0/gems/recommendify-0.3.8 for inspection.
Results logged to /Users/(ユーザ名)/.rbenv/gems/2.6.0/extensions/x86_64-darwin-18/2.6.0-static/recommendify-0.3.8/gem_make.out

エラーを吐いていますね。
###gem install hiredis ※失敗
エラーを吐いているのに、何を思ったのか続けようとします。

$ gem install hiredis
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/(ユーザ名)/.rbenv/gems/2.6.0/gems/hiredis-0.6.3/COPYING

権限でひっかかってしまいました。
gem installするときに本来sudoをつけてはいけないときにつけると起こるようです。
十中八九sudo gem install redis hiredis -N -Vのせいでしょう…
###brew install hiredis
今思えば、はじめからこうすれば良かったのだ…

$ brew install hiredis
==> Downloading https://homebrew.bintray.com/bottles/hiredis-0.14.0.mojave.bottl
######################################################################## 100.0%
==> Pouring hiredis-0.14.0.mojave.bottle.tar.gz
🍺  /usr/local/Cellar/hiredis/0.14.0: 31 files, 212KB

###gem install hiredis→Permission denied解決
Homebrewでhiredisをインストールしたので、gemをインストールするぞ!と思ったが

$ gem install hiredis
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/(ユーザ名)/.rbenv/gems/2.6.0/gems/hiredis-0.6.3/COPYING

Permission denied、しつこい。
ここで手を打たねば、とようやく思って行動しました。
やったことは

$ sudo chown -R (ユーザ名):staff /Users/(ユーザ名)/.rbenv
Password:

/Users/(ユーザ名)/.rbenv以下の権限をユーザに変えるというコマンドです(たぶん)。
再度gem install hiredisしてみると

$ gem install hiredis
Building native extensions. This could take a while...
Successfully installed hiredis-0.6.3
Parsing documentation for hiredis-0.6.3
Installing ri documentation for hiredis-0.6.3
Done installing documentation for hiredis after 0 seconds
1 gem installed

今度はうまくいきました。
###gem install recommendify

$ gem install recommendify
Building native extensions. This could take a while...
Successfully installed recommendify-0.3.8
Parsing documentation for recommendify-0.3.8
Done installing documentation for recommendify after 0 seconds
1 gem installed

こっちもうまくいきました!
###bundle install

$ bundle install

おまじないみたいなものだと思って、やっています。
これでおしまい(のはず)!
#参考サイト
トラブルを解決するのに大変お世話になった記事です。
先人の知恵は偉大ですね!ありがとうございました!
recommendifyを入れてみたらちょっとはまった
gem install rails でハマった話
Rails cが実行不可能、Permission denied@ rb_sysopen - /Users/…の対応策
(いずれも最終閲覧は2019年4月29日です)

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?