nokogiriのインストールに詰まった

昔作っていたRailsアプリを久しぶりに開いてリファクタしようと思ったときのことの備忘録です。

`rails s`で

```
/Users/***/Desktop/Ruby/***_app/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.4.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require': cannot load such file -- /Users/***/Desktop/Ruby/***_app/vendor/bundle/ruby/2.5.0/gems/nokogiri-1.10.3/lib/nokogiri/nokogiri.bundle (LoadError)

```

なんか色々試してエラーが変わった


# gem installしたときに Permission denied @ rb_sysopen 
こちら（[Permission denied @ rb_sysopen ](https://saba.omnioo.com/note/4503/gem%E3%81%AEpermission-denied%E3%81%AE%E8%A7%A3%E6%B6%88/)）
まさに環境も全く同じだったので
最後のコマンド

```
rbenv install 2.5.1
```
をうった

```
gem uninstall nokogiri
```
でnokogiriが入っていないことを確認

```
 bundle install
```
失敗


## この記事通りにやって見た([nokogiriのインストールに失敗する問題](https://qiita.com/nkam/items/5c1c2a224bbc73e6903f))

```
brew install --force libxml2
brew link libxml2
```

```      
Warning: Refusing to link macOS-provided software: libxml2
If you need to have libxml2 first in your PATH run:
  echo 'export PATH="/usr/local/opt/libxml2/bin:$PATH"' >> ~/.zshrc

For compilers to find libxml2 you may need to set:
  export LDFLAGS="-L/usr/local/opt/libxml2/lib"
  export CPPFLAGS="-I/usr/local/opt/libxml2/include"

For pkg-config to find libxml2 you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
```

### やっぱ権限ないって言われる
```
ERROR:  While executing gem ... (Errno::EACCES)
    Permission denied @ rb_sysopen - /Users/***/.rbenv/gems/2.5.0/gems/nokogiri-1.10.8/LICENSE-DEPENDENCIES.md

```

## ライセンス...?
なんか昔メールでgithubからnokogiriの件でなんか来てた気がする。。確認
<img width="779" alt="スクリーンショット 2020-02-29 15.00.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265805/f1a0b58f-01b7-7421-3117-877f34203a5e.png">


まじか...バージョン変えてみよう

```
gem 'nokogiri', '~> 1.10.1'
↓
gem "nokogiri", ">= 1.10.8"
```
```
bundle install
```
```
You have requested:
  nokogiri >= 1.10.8

The bundle currently has nokogiri locked at 1.10.3.
Try running `bundle update nokogiri`

If you are updating multiple gems in your Gemfile at once,
try passing them all to `bundle update`
```
```
bundle update
```

`bundle instaill`はとおった！

```
rails s
```

```
Could not find 'nokogiri' (>= 1.6) among 1151 total gem(s) (Gem::MissingSpecError)
Checked in 'GEM_PATH=/Users/***/.gem/ruby/2.5.0:/Users/***/.rbenv/gems/2.5.0', execute `gem env` for more information
```



ん。。一回ギブ

## 次の日
とりあえずgemの更新だけをgitにあげよう。。。（herokuにも自動push）

なんかherokuからおこられて

```
###### WARNING:
       This buildpack was created as a stop-gap measure to allow running applications with Bundler 2 on Heroku.
       Heroku now supports Bundler 2 directly: https://devcenter.heroku.com/changelog-items/1563
       
       Please discontinue use of this buildpack and instead directly use the `heroku/ruby` buildpack.
       
       To remove this buildpack use the `heroku buildpacks` command to list your existing buildpacks.
       
       If you only have one buildpack listed you can run:
       
       ```
       heroku buildpacks:set heroku/ruby
       ```
       
       If you have multiple buildpacks, you'll need to add the buildpack to the correct location using
       `heroku buildpacks:add heroku/ruby -i <correct index>` and then remove this buildpack via:
       
       ```
       heroku buildpacks:remove https://github.com/bundler/heroku-buildpack-bundler2
       ```
```

コマンドを打って見た。

githubにきてたgemの更新のプルリクが全部closeされ、よくわからないけど`rails s`できるようになっていた...

わからん。。