gitlab 업데이트

Synology에 gitlab을 설치해서, 프로젝트마다 (간혹 그리고 어쩌다가 commit 하면서) 작업을 하고 있다.

편한 것도 있고 조금 불편한 것도 있고 그랬지만, 버전 관리가 되고 있다는 점에서 안심이 되었기 때문이다.

21년도에 gitlab 14.3.2-ce.0를 docker로 설치해서 지금까지 업데이트를 하지 않고 사용해왔다.

사실 내가 쓰는 기능이라고 해봐야 아주 초보적인, 그리고 웹 브라우저에서 간혹 코드 살펴볼 정도만 쓰는거라 버전이 낮아도 큰 불편함은 없었다.

그래도 혹시나 보안에 취약하지는 않을까, 중간에 뻑이 나지 않을까 걱정은 되기는 했다.

털려봐야 큰 타격이 없는 것들이기는 하지만, 그래도 기분은 나쁘니까...


며칠 전에 갑자기 gitlab을 업데이트해야겠다는 마음을 먹었다.

docker 사용법도 다 잊어버렸고, gitlab 설정파일을 어디 고쳤는지 기억도 나지 않았지만 그래도 chtaGPT가 있으니 안심하고 시작했다. (결론적으로 설정파일인 gitlab.rb 은 문제가 발생하지 않는 한 손보지 않고 그대로 갖고 가는 것을 확인했다.)

우선은 gitlab을 업데이트하기 위해서는 upgrade path가 맞아야 한다.
바로 14.3.2에서 18.5.1로 업데이트가 되지 않는다.

https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/

위 링크에서 업데이트해야 하는 주요 image를 다 pulling해 놓는다. (아래 코드는 버전 하나만 적어놓았지만, upgrade path에 보여지는 모든 버전을 pulling해야 한다)

sudo docker pull gitlab/gitlab-ce:14.10.5-ce.0

그리고 기존 컨테이너는 중지한다.

sudo docker stop gitlab

컨테이너들 모두 살펴본다.

sudo docker ps -a

가장 최신 gitlab 컨테이너의 이름을 바꿔놓는다.

`sudo docker rename gitlab gitlab_14.3_backup'

컨테이너를 실행한다.

sudo docker run -d \
  --hostname URL_OF_MY_GITLAB \
  -p 8080:80 -p 8443:443 -p 49158:22 \
  --name gitlab \
  --restart always \
  -v /volume1/@docker/volumes/217a84837ed4ad139ca6da453e54bea098aba367f3120cdc67161d57b2409072/_data:/etc/gitlab \
  -v /volume1/docker/gitlab/logs:/var/log/gitlab \
  -v /volume1/@docker/volumes/ef707c6e62394d75d232a9b3c7ce72c90a34ca9b8b6d79239712a1e812e9e2a0/_data:/var/opt/gitlab \
  gitlab/gitlab-ce:14.10.5-ce.0

약 15~20분 정도 기다려야 하는데, 이게 귀찮으니...
다음 쉘 스크립트를 실행해서, 제대로 작동하는지를 10초마다 확인한다.

while true; do
  out=$(sudo docker ps)
  echo "$out"
  if echo "$out" | grep -q "(healthy)"; then
    echo "SUCCESS!!"
    break
  fi
  sleep 10
done

웹브라우저로 접속이 되는지 확인한다.


아주 종종, 여러가지 문제가 발생한다.

gitlab.rb 파일을 손봐서 gitlab reconfigure를 하거나,
사용자 비번이 먹히지 않아서 새로 손봐야 하거나,
gitaly 설정 파일 등을 손봐야 할 경우도 있다.

이럴 경우는 문제에 따라서 해결해야 하는 초식이 다르니,
chatGPT한테 해결책을 물어가면서 해결했다.

RDP에서 Coherence 모드로 작동시키기

이제 너무 편하게 윈도우 앱들을 쓸 수 있게 되었다.

다음 링크의 내용을 따라서 하면 RDP에서 Coherence 모드로 앱들을 작동시킬 수 있다.

https://apple.stackexchange.com/questions/430432/coherence-mode-in-a-remote-desktop-app

요약하면,

  1. 윈도우의 registry를 다음과 같이 수정한다.
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TSAppAllowList 에서 fDisabledAllowList0에서 1로 바꾼다.
  2. RDP의 세션을 export 한다.
  3. export한 *.rdp 파일을 에디터로 열어서 다음과 같이 수정한다.
    1. remoteapplicationmode:i:0remoteapplicationmode:i:1로 바꾼다.
    2. remoteapplicationprogram:s:<path to .exe>를 추가한다. 예를 들어서 remoteapplicationprogram:s:C:\Program Files (x86)\HNC\Office 2022\HOffice120\Bin\Hwp.exe를 추가한다.
    3. disableremoteappcapscheck:i:1를 추가한다.
      alternate shell:s:rdpinit.exe를 추가한다.

주의해야 할 점은 RDP 세션에서 항상 full screen으로 연결하도록 해야 전체 맥 화면에서 윈도우 앱을 굴릴 수 있다.

mac에서 윈도우 원격 데스크톱(RDP) 연결시 shift-space로 한영 전환하기

아주 오랜 시간 동안 골머리를 썩이던 문제다.

나는 Mac에서 shift-space로 한영전환을 오랫동안 하고 있다. 아마 맥을 처음 쓸 때부터 그랬던 것 같고, 그 훨씬 이전에 도스나 윈도우를 쓸 때도 그랬던 것 같다.

지금까지 거진 20년 동안 맥만 99% 써왔지만, 사실 윈도우를 쓸 일이 아예 없지는 않았다.
인텔맥에서는 거금을 들여서 패러랠즈를 구매해서 그나마 윈도우를 쓸 수가 있었는데
m1으로 넘어오면서 패러랠즈도 무용지물로 되어버렸다.

맥용 한글의 기능도 매우 빈약하고, 주변 아저씨들이 한글을 쓰기를 좋아해서 어쩔 수 없이 한글을 써야 할 때는 매우 곤혹스러웠다.
어찌저찌 맥에서 내가 만든 한글 문서의 여백이나 글꼴 등이 조금씩 어그러져서 공유가 되고 있었는데, 나는 그것도 모르고 오랜 시간을 맥용 한글만 써왔다.
그러다가 최근에서야 내가 만든 문서의 모양를 내가 보는 것과 다른 사람이 보는 것이 다르다는 것을 알게 되었다.
맥용 MS 오피스에서 만든 문서들도 마찬가지인 상황이고...

게다가 최근에는 NX를 쓸 일이 생겨서 윈도우를 꼭 설치를 해야만 했다.

패러랠즈나 utm을 통해서는 arm용 윈도우만 설치할 수 있는데, 좀 불안하고 너무 느렸다.
그래서 학생들이 쓰다 남은 컴퓨터 한 대를 달라고 하고는 윈도우를 재설치했다.

PBP를 이용해서 모니터 화면을 쪼개서 쓸까하다가 아무래도 집에서도 윈도우를 쓸 일이 있을 것 같아서 RDP를 사용하기로 결정했다.

그런데 역시나 RDP에서 한영전환은 쉽지 않았다.
오른쪽 option키를 눌러서 한영전환이 되기는 하지만, 오랜 기간 동안 shift-space에 익숙해진 탓에 여간 불편한 것이 아니었다.

윈도우에서 키보드를 type3로 설정을 해도 안 되고, 한컴 입력기를 지워도 안 되고, Karabiner elements를 설치해서 어찌해볼까 하다가 매뉴얼 읽기가 귀찮았다.

그래서 RDP 속 윈도우에서도 shift-space로 한영전환을 하기 위한 긴 여정이 시작되었다.

마침내 오늘 다음 글을 읽고 해결책을 찾았다.

RDP에서 한영전환을 shift-space로 하는 법

다음과 같이 하면 깔끔하게 해결된다.

  1. 윈도우에 위 글에서 다운로드받을 수 있는 프로그램인 HanManager.zip을 깔고,
  2. 윈도우의 설정에서 키보드를 Type 3으로 바꾸고,
  3. 맥의 키보드 input sources에서 "Select the previous input source"를 Ctrl-space, "Select next source in input menu"를 Shift-space로 설정

혹시나 위 사이트가 사라질 것을 대비해서 파일을 올려둔다.
HanManager.zip