GitHub의 보안 취약점 경보가 왔습니다. 두려워하면서 대응하면

입문


여느 때와 마찬가지로 투자조합을 만들 때, 자신의 보증금을 볼 때
갑자기 공포의 표시가 있다는 통지를 받았다.

어떤 경보인지 확인한 후 노코기리는 취약성을 발견한 것 같아 빨리 버전을 올렸으면 좋겠다.

당장 버전을 올리고 싶은데, 왠지'Gemfile.lock'을 고쳐달라는 요청을 받는 것 같은데, 변경은'Gemfile'아니야?의문하면서 조사하면서 버전을 줬어요.

1.'Gemfile'과'Gemfile.lock'의 차이점은 무엇입니까?


1-1.Gemfile 정보


Gemfile은 사용할 gm (패키지) 를 작성하여 bundle install 명령을 실행하고, Gemfile에 기술된 gm에서 설치하지 않은 것을 찾아 설치하는 것을 말한다.

1-2.Gemfile.lock 정보


Gemfile.lock은 Gemfile에 따라 실제 설치된 gm를 기록하고 설치된 버전에 기록합니다.

1-3.두 파일의 차이


Gemfile은 설치할 Gem을 지정하는 파일입니다.
Gemfile.lock은 실제 설치를 설명하는 파일입니다.
설치를 만지작거리는 내용은 Gemfile입니다. 틀림없는 것 같아서 Gemfile에서 수정합니다.

2. 업그레이드 전 단계


2-1.현재 Gemfile 내용


Gemfile
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.5'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.3'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use Puma as the app server
gem 'puma', '~> 3.11'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby
gem 'active_hash'
gem 'nokogiri'
...(省略)
보시다시피 특별한 버전을 지정하지 않은 것 같습니다.

2-2.버전 지정


Gemfile
...(省略)
gem 'nokogiri', ">= 1.10.4"
...(省略)
GitHub 알림에 따라 1.10.4 이상을 설치합니다.

2-2.버전 업데이트

$ gem update nokogiri
몇 분만 기다리면 업데이트가 완성됩니다.

2-3.GitHub에 병합된 후


업데이트가 완료되었습니다. 이렇게 GitHub에 통합하여 GitHub를 들여다보면
여전히 경고가 있다.

파일을 다시 보니 왠지 Gemfile.lock의 기술은 바뀌지 않은 것 같습니다.
나는 반영할 조건을 찾아보았다.

2-4.Gemfile.lock에 반영하기


bundle install을 하지 않으면 Gemfile에 반영되지 않기 때문에 다시 업데이트를 위해 실행합니다
$ bundle install
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`.
Fetching gem metadata from https://rubygems.org/............
Fetching gem metadata from https://rubygems.org/.
You have requested:
  nokogiri >= 1.10.4

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`
실수를 많이 했어요.

2-5.더·Gemfile.lock에 반영하기

$ bundle update nokogiri
말한 대로 bundle update nokogiri를 실행하면 Gemfile.락도 자동으로 반영!
그렇긴 한데 경보가 사라질지 모르니까 일단 GitHub에 통합해서 탑을 확인하고...

무사히 사라졌다.

3. 기타


gem update와bundle update의 차이는 수수께끼입니다. 다음에 자세히 조사해 보겠습니다.여력이 있으면 기사로 써라.
검색 검색에'gem update vs bundle update'같은 것도 있어서 조사해 보는 게 재미있어요.

좋은 웹페이지 즐겨찾기