在開始安裝套件前,首先認識一下 pacman,它是 Arch Linux 的 package manager。幾個使用方式如下:

  • pacman -Suy 更新所有已安裝的套件
  • pacman -S package_name1 package_name2 下載一(多)個套件
  • pacman -Q 已下載的套件
  • pacman -R package_name1 package_name2 移除一(多)個套件

更多的資訊可以輸入 pacman -h


預先安裝

  • Windows 的使用者請先安裝 Windows Terminal,往後都會使用 SSH 的方式來進行操作
  • 安裝 Nerd Fonts 以解決遺失 Icons 的問題

SSH 連線

開始設定 SSH:

sudo pacman -S openssh # 上一篇有安裝了
sudo systemctl enable sshd.service # 開機自動啟動服務
sudo systemctl start sshd.service # 啟動服務

SSH 預設的 Port 為 22

接著要到 VirtualBox 進行 Port 的相關設定,將 VM 的 Port 22 映射到主機的 Port 3022

Arch-port-setting.png

接著打開 Windows Terminal 進行連線:

ssh -p 3022 username@localhost

輸入密碼後就可以進入虛擬機。

Fish Shell

先從 Shell 開始,這裡我會選擇使用 Fish 來當作我的 Alternative shells

sudo pacman -Suy # 先確認現存的套件都是最新的
sudo pacman -S fish
exec fish # 進入 fish shell

為了讓每一次開啟都會自動進入到 fish shell,使用 nvim ./.bashrc 並加入:

exec fish

如果不想在每一次 sudo 時都輸入密碼,使用 sudo nvim /etc/sudoers.d/ 並選擇正在使用的帳戶 ( 危險但是方便 ):

username ALL=(ALL) NOPASSWD: ALL

Fisher

安裝 Fish 的插件管理器 jorgebucaran/fisher

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

接著使用 Fisher 安裝 IlanCosman/tide。它能讓使用者自己設 Status line 和主題:

fisher install IlanCosman/tide@v5

安裝完後就能看到設定畫面,根據自己的喜好做設定即可。

此時會注意到某些 Icons 無法顯示,如果有安裝 Nerd Fonts 就到 Windows Terminal 套用就可以解決了:

Arch-nerd-fonts.png

想重新設定可以輸入:

tide configure

如果你是 Node.js 的開發者,你就會需要 nvm 來管理 Node.js 的版本:

fisher install jorgebucaran/nvm.fish

安裝 LTS 版本:

nvm install lts

接著可以使用以下指令確認是否安裝成功:

npm -v
// 9.5.1

node -v
// v18.16.0

如果重開機沒有 Node.js 可以輸入 nvm use lts 來解決這個問題。

除了上面兩個插件外,我還安裝了:

  • z 快速跳到常用的資料夾
  • Sponge 不會去記錄失敗的指令到歷史指令清單

其他更多的 Fisher 插件可以到 jorgebucaran/awsm.fish 查詢。

實用套件

git

git 版控系統

sudo pacman -S git

相關設定 ( 直接在命令列輸入 ):

git config --global core.autocrlf input
git config --global core.safecrlf true
git config --global init.defaultBranch main
git config --global core.editor "nvim"

exa

exa ls 的現代版本。

sudo pacman -S exa

根據官方設定,直接將設定加到 .config/fish/config.fish

alias l "exa -lg --icons"
alias ll "exa -alg --icons"

退出後輸入 exec fish 來套用新的設定。

tmux

tmux 在一個終端機下,同時開啟多個視窗 ( windows )、分割區塊 ( panes )。

sudo pacman -S tmux

使用方式可以參考 終端機 session 管理神器 — tmux

neovim

neovim 是一個以 vim 為基底的可擴展文字編輯器。如果在上一篇沒有安裝的話,這邊可以使用 pacman 來安裝:

sudo pacman -S neovim

如果沒有下載任何插件那它就和 vim 一樣,如果有需要請參考我的設定 et860525/dotfiles,未來我也會針對 neovim 來寫一篇文章。

結語

這就是目前我專案建構與運行的環境,最一開始卡關的地方是 Port 映射的部分,之後的挑戰就是建構屬於自己的 neovim。雖然我通常還是使用 VSCode 再用 SSH 連線到虛擬機,但是有時候立即更改檔案 neovim 對我的幫助就很大。

Reference