Jekyll 에 Bundler 사용하기
Bundler 는 루비 프로젝트에 필요한 젬들의 올바른 버전을 추적하고 설치해서 일관된 환경을 제공합니다.
Bundler 는 Jekyll 과 함께 사용하기에 탁월한 도구입니다. 프로젝트별로 의존요소들을 추적하기 때문에, 프로젝트에 따라 다른 버전의 Jekyll 을 사용해야 하거나 Jekyll 을 시스템 레벨이나 사용자 레벨에 설치하고 싶지 않을때 특히 유용합니다. 이 튜토리얼은 Bundler 를 사용해서 Jekyll 을 프로젝트 밖에 설치하지 않고 새 Jekyll 프로젝트를 생성하는 방법을 설명합니다.
시작하기 전
이 튜토리얼을 끝마치려면, 루비와 Bundler 가 설치되어 있어야 합니다. 각 웹사이트에서 설치 방법을 찾을 수 있습니다.
Bundler 초기화
가장 먼저 해야할 일은 프로젝트를 위한 새 디렉토리를 생성하고 bundle init
을
실행하는 것입니다. 이 명령은 (빈 Gemgile 을 생성해서) 새 Bundler 프로젝트를
생성합니다.
mkdir my-jekyll-website
cd my-jekyll-website
bundle init
Bundler 환경설정
이 단계는 선택사항이지만, 권장하고 있습니다. 여기서 우리는 프로젝트 하위 디렉토리
./vendor/bundle/
에 젬을 설치하도록 Bundler 를 설정할 것입니다. 이는
의존요소들을 고립된 환경에 설치해서, 시스템에 설치된 다른 젬들과 충돌이
발생하지 않도록 보장해줍니다. 이 단계를 건너뛰면, Bundler 는 시스템 레벨에
의존요소들을 설치할 것입니다.
bundle config set path 'vendor/bundle'
Bundler 설정은 유지됩니다
이 작업은 프로젝트별로 한 번만 하면 됩니다. Bundler 는
./.bundle/config
에 환경설정을 저장해서, 이후의 젬들도 동일한
위치에 설치됩니다.
Jekyll 추가
이제, Bundler 를 사용해서 우리의 새 프로젝트에 Jekyll 을 의존요소로서 추가할
것입니다. 이 명령은 Jekyll 젬을 Gemfile 에 추가하고 ./vendor/bundle/
폴더에
설치합니다.
bundle add jekyll
Jekyll 뼈대 생성하기
이제 Jekyll 이 설치되었으므로, 이를 이용해 우리의 사이트를 위한 뼈대를 생성할
수 있습니다. 폴더가 비어있지 않으므로 - 이미 Bundler 관련 파일들이 좀 들어
있습니다 - --force
파라메터를 사용해야 합니다. Gemfile 이 이미 존재하는 경우
Jekyll 작업에 혼란을 가져올 수 있으므로 bundle install
은 따로 실행합니다.
bundle exec jekyll new --force --skip-bundle .
bundle install
서버 작동
당신의 새 웹사이트가 준비되었습니다! bundle exec jekyll serve
명령으로
웹사이트를 서버에 올리고
http://127.0.0.1:4000 로 접속할 수 있습니다. 이제부터,
당신만의 사이트를 개발할 준비가 되었습니다. 모든 Jekyll 명령어를 사용할 수
있지만, 명령어 앞에 bundle exec
를 붙여 Bundler 가 당신의 프로젝트 폴더에
설치된 버전의 Jekyll 을 실행하도록 해야합니다.
소스 코드 관리
버전 관리 시스템으로 당신의 새 사이트를 관리하고 있다면, ./vendor/
와 ./.bundle/
폴더는 사용자 또는 플랫폼 관련 정보를 담고 있기 때문에 ignore 목록에
추가합니다. 다른 사용자들은 Gemfile
과 Gemfile.lock
에 기반하여 올바른
의존요소들을 설치할 수 있을 것입니다. 따라서 이 두 파일은 버전 관리 시스템에 등록되어야
합니다. 원한다면, 아래 .gitignore
파일을 사용해 시작해보세요.
.gitignore
# Jekyll 이 생성한 메타 데이터 무시
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Bundler 가 생성한 폴더 무시
.bundle/
vendor/