최근에 proxmox ve를 돌리는데 알 수 없는 이유(아마 gpu일 가능성이...)로 인해서 컴이 죽었다. 어떻게든 살리고 싶었는데 잘 되지 않아서 결국 자주 쓰고 있던 Ubuntu Server로 다시 넘어가게 되었다.
매번 새로운 Ubuntu를 갈때마다 세팅하는 것이 매우 귀찮아져서 한번 정리해보기로 하였다.
일단 본인은 먼저 사용하는 기술 스택으로서 python, nodejs, rust를 사용한다. python은 설치 되어 있으므로 넘긴다.
bash도 있지만 맥북을 사용하는 입장으로서 zsh가 손에 너무 잘 익혀 버렸다. 그리고 oh-my-zsh의 강력한 커스터마이징을 사용할 수 있기 때문에 먼저 shell을 변경하기로 한다.
zs-shell 설치하기
$ sudo apt install zsh -y
oh-my-zsh 설치하기
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
여기서 zsh를 기본 sh로 바꾼다. 만약 못했다면 chsh
를 이용하여 변경한다.
powerlevel10k 설치하기
$ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
폰트를 써야하는데 여기서는 MesloLGS NF 폰트를 추천한다. 하지만 우리는 추후 neovim의 astrovim을 설치할 것이므로 더 많은 아이콘이 지원되는nerd font를 설치하는 것을 추천한다.
가끔 vim을 사용할 때가 있다. git을 써야할때라던지... 아이패드로 개발을 할때라던지... 가끔 멋있어 보이고 싶을때라던지...
neovim
기본적으로 neovim을 지원 안하므로 snap을 통하여 설치해보도록 한다.
$ sudo snap install nvim --classic
astrovim
vim은 불편하므로 대부분의 세팅이 되어 있는 astrovim을 설치한다.
최근에 추천 받았는데 정말 편하고 keybinding도 정말 잘 되어 있다. vscode에서 넘어갈 고민을 가끔 해보고 있다.
$ git clone --depth 1 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
nvim
node의 버전을 관리하는 것은 가끔 힘든 일이다. 그리고 node를 설치하는 것도 마찬가지이다. 이를 쉽게 하기 위해서 nvm을 이용한다.
nvm
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
node
이후 node를 설치하고 싶다면 nvm을 통해서 최신의 node를 설치할 수 있다.
$ nvm install node
pnpm
npm의 시대는 넘어갔다!! 이제는 pnpm의 시대이다!!
npm의 느리고 비효율적인 디스크 사용은 이제 버리자. pnpm의 효과적인 디스크 사용을 봐보자.(정말 빠르고 편리하다)
$ curl -fsSL https://get.pnpm.io/install.sh | sh -
가끔 정말 가끔 한번씩 돌려보고 싶을때 한다.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
netstat
$ sudo apt install net-tools
zshrc
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
export ZSH="$HOME/.oh-my-zsh"
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git)
source $ZSH/oh-my-zsh.sh
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export PNPM_HOME="/home/loopy/.local/share/pnpm"
case ":$PATH:" in
*":$PNPM_HOME:"*) ;;
*) export PATH="$PNPM_HOME:$PATH" ;;
esac
alias vi=nvim
alias vim=nvim
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh