VS Codium, VS Code 가 오픈 소스로.

백문이 불여일견.

설치는 이렇게.

# 키 저장
wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/vscodium.gpg > /dev/null

# 저장소 추가
echo 'deb https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/repos/debs/ vscodium main' | sudo tee --append /etc/apt/sources.list.d/vscodium.list

설치는,

sudo apt update && sudo apt install codium

명령이 왜 이리 복잡해?

그런데, 키 설치가 뭔가 좀 복잡하다? 전에도 이에 대한 글을 쓴 적이 있다.
VS Codium 측에서 제공하는 키 설치 명령은 이렇다.

wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | sudo apt-key add -

이 명령은 pub.gpg 파일을 내려받은 뒤(std in), 그걸 키로 추가하는데, 그 위치가 /etc/apt/trusted.gpg 가 된다. 여기에 키를 추가시키면 관리에 약간 번거로움이 있다. 물론, 문제가 생겼을 때 키를 다시 받으면 그만이지만..

하여, /etc/apt/trusted.gpg.d 에 파일을 직접 복사하는 방식을 택했다. 그렇게 하기 위해 명령이 좀 길어졌다.

먼저, 이 명령을 위해선 먼저 gpg --dearmor 를 써서 아스키 형태의 gpg 를 바꿔줘야 한다.

wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor

위 결과는 화면으로 출력이 되기 때문에 파일로 넘겨주기 위해서 Redirection 을 사용했다.

wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor > vscodium.gpg

이제 이 파일을 /etc/apt/trusted.gpg.d 로 복사(cp)해주면 된다.
이동(mv)을 하면 소유권이 현재 사용자가 되기 때문에 그것도 좀 애매해진다
복사하고 난 뒤 이 파일을 지우면 깔끔(?)하다.

허나.. 단계가 복잡하다. 이걸 한 번에 할 수는 없을까?
간단하게 이렇게 생각할 수 있다.

sudo sh -c "wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/vscodium.gpg"

그런데, 여기선 gpg 때문에 살짝 오류가 발생한다. gpg 를 실행하는 주체는 sudo, 즉 root 이고, 현재 사용자와 다르기 때문에 “gpg: WARNING: unsafe ownership on homedir ‘/home/userx/.gnupg'” 라고 불평을 듣게 된다.

따라서, sudo 의 위치를 변경해야 했다.
그래서 나온게 tee 를 사용한 명령이다.

wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/vscodium.gpg

그러나 여기도 문제(?)는 있다. 알 수 없는 내용이 화면에 출력돼 버린다. dearmor 된 파일은 아스키가 아니므로 사람이 볼 수 있는 형태가 아닌데, 굳이 화면에 출력할 필요가 없다. (사실 tee 는 화면 출력과 리디렉션을 동시에 하는 프로그램인데, 리디렉션만 사용하게끔 하게 된 셈이다. > 명령만을 sudo 로 할 수 없기 때문에 이렇게 복잡한 길로 올 수 밖에 없었다.)

따라서, 그 무의미한 출력은 별나라(/dev/null)로 보내버린다.
그래서 나온 최종 결과가 바로 아래에 있다.

wget -qO - https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/master/pub.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/vscodium.gpg > /dev/null

그냥 Redirection(>)을 쓰면 되는 문제였지만, sudo gpg 에서 오류가 발생하기에 그 부분을 돌아가려다 보니 명령도 길어졌다.

안녕하세요. 글 남겨주셔서 고맙습니다.