Post

Jekyll과 블로그

rbenv 설치 및 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
> brew install rbenv ruby-build

> which rbenv                    # rbenv 확인
/opt/homebrew/bin/rbenv
		
> rbenv init                     # readme에서 하라는대로 터미널 끄고 다시 켜보자
# Load rbenv automatically by appending
# the following to ~/.zshrc:

eval "$(rbenv init - zsh)"   # eval 참조 링크  
		
> eval "$(rbenv init - zsh)"

> env | grep PATH
PATH=$HOME/.rbenv/shims:... # 결과가 이런 형태라면 ok
		
> mkdir blog && cd blog
		
> rbenv versions                 
* system                     # '*' 이 붙어있는 위치의 ruby 버전 사용

> rbenv install -l               # 설치가능한 루비 버전들
> rbenv install 3.3.1            # 사용가능한 최신 버전 3.3.1
> rbenv versions
* system
  3.3.1
			
> rbenv local 3.3.1              # blog/ 디렉토리 3.3.1 ruby 환경 구성
> rbenv versions
  system
* 3.3.1

> ruby -v
ruby 3.3.1 (2024-04-23 revision c56cd86388) [arm64-darwin23]
		
> cd .. && ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin23]
		
> rbenv versions
* system
  3.3.1
### 각 디렉토리의 ruby 버전이 분리되어 있는 것을 확인

Jekyll

1. 환경 구성

blog 디렉토리에 ruby 환경은 갖춰졌으니 **Quick-start Instructions 을 따르자 (참조: https://jekyllrb.com/)

1
2
3
4
5
## ./blog
> gem install bundler jekyll
> jekyll new .
> bundle exec jekyll serve
# => Now browse to http://localhost:4000

ruby 실행 환경이 필요할 때 마다 eval “$(rbenv init - zsh)” 을 하면 된다.

신경쓰고 싶지 않다면 .zshrc 에 추가해주자

1
echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc

2. 테마 적용

https://github.com/cotes2020/chirpy-starter

https://github.com/jekyll/jekyll-compose

3. _config.yml

  • _data : contact와 share 를 수정하기
  • lang, timezone, title, tagline 수정
  • avatar 사이드바에 이미지 설정
  • jekyll_compose 를 추가해서 default_front_matter를 설정

추가

관련되어 있는 블로그 글들을 읽어보면 아래 내용을 자꾸 ~/.zshrc에 추가하라고 한다.

1
2
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init - zsh)"

그냥 추가하면 터미널을 실행할 때 마다 ‘rbenv init -’ 의 내용이 적용이 되고 사용하는데에는 아무 지장이 없다.(아마도 그 당시 rbenv 버전에는 필요했을지도..?) 하지만 그냥 하라는대로 하면 아쉽다. 나는 이미 ‘-’(stdio) 의 여러 번 봤고, eval도 exec와 더불어 관련 글을 대충 읽었던 적이 있기에 기능의 역할에 대해서 알아봤다.

친절한 사람들이 많다. eval에 대해서 unix doc 링크도 제공해주고, 이해를 돕기위한 예제들도 정리해서 답변 해줬다. What is the “eval” command in bash?

eval은 약간 손쉽게 이해되었으니 이제 rbenv init -를 실행해보자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
> rbenv init -     # 결과
export PATH="/Users/hoho/.rbenv/shims:${PATH}"
export RBENV_SHELL=zsh
source '/opt/homebrew/Cellar/rbenv/1.2.0/libexec/../completions/rbenv.zsh'
command rbenv rehash 2>/dev/null
rbenv() {
  local command
  command="${1:-}"
  if [ "$#" -gt 0 ]; then
    shift
  fi

  case "$command" in
  rehash|shell)
    eval "$(rbenv "sh-$command" "$@")";;
  *)
    command rbenv "$command" "$@";;
  esac
}

보다시피 rbenv에게 필요한 명령어들이 준비되는것을 볼 수 있다. 그래서 eval “$(rbenv init - zsh)” 을 하면 위의 스크립트가 실행되어 반영된다. 그리고 which rbenv 를 하면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
> which rbenv
rbenv() {
  local command
  command="${1:-}"
  if [ "$#" -gt 0 ]; then
    shift
  fi

  case "$command" in
  rehash|shell)
    eval "$(rbenv "sh-$command" "$@")";;
  *)
    command rbenv "$command" "$@";;
  esac
}

이런 결과가 나온다.

추가(gh-page)

gh-page, username.github.io를 이용해서 정적 페이지에 한해 호스팅을 해주는 기능을 사용하고 있다. 로컬에서 사이드바 이미지도 넣고, 열심히 작성한 게시글도 올리고 잘 확인했다. 그리고 깃허브에 내용을 업데이트했는데 빈 화면에 아래와 같이 표시되었다.

— layout: home # Index page —

어떤 문제인지 모르고 config.yml 파일을 수정하면서 시도하다가 위 문구 그대로 검색했다. 이미 겪어본 사람들이 친절히 글을 찾아볼 수 있었고, 깃허브 페이지 빌드의 Ruby 버전을 동일하게 맞췄더니 해결되었다.

참조 : https://velog.io/@hashnsalt/Github-Blog-%EB%A7%8C%EB%93%A4%EA%B8%B0-2

This post is licensed under CC BY 4.0 by the author.

Trending Tags