index

Arch Linux 手動設置

· 5min

新增使用者至 wheel 群組

一直用 root 帳號在使用 Linux 還是有些危險,應該為大多數任務建立一腳使用者帳號。

useradd -m -G wheel -s /bin/bash brian
  • -m 創建家目錄
  • -G 加入 group
  • -s 使用者登入 shell 的路徑

再來編輯 /etc/sudoers 檔案,visudo 是專門用來編輯 sudo 權限的保險工具。在你修改完存檔離開的瞬間會在背景自動檢查語法。如果打錯字,它會報警並拒絕存檔保護系統。

EDITOR=vim visudo

將它取消註解:

## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL

切換至新建好的 user:

su - ewd

wheel

早期 UNIX 時代,只有最高階的管理員才能掌控系統, 特權階級內部有俚語被稱作「big wheel」, 沿用至今。

wheel 表示特殊使用者群組,用以控制對 susudo 指令的存取,是有潛力變身成管理員的特權用戶

使用 systemctl 連上網路

systemd 是現代 Linux 的服務總管, 當你按下電源鍵、GRUB 引導完畢後,Linux 核心喚醒的第一個程式就是 systemd(它的進程 ID 永遠是 1)。

接下來整台電腦裡的所有功能(網路、藍牙、音效、圖形介面……)全部都由 systemd 負責點名、叫醒並在背景管理。主要使用 systemctl 指令與 systemd 對話。

  • enable 來每次開機都要自動啟動
  • --now 現在立刻生效
systemctl enable --now NetworkManager

使用 NetworkManager 下的 nmcli 來連網:

nmcli device wifi list
nmcli device wifi connect _SSID_ password _pwd_
Title


這時可順便把 terminus-font 裝回來

使用 pacman 系統更新

sudo pacman -Syu
  • -S:Sync,跟遠端的軟體倉庫進行操作。
  • -y:Refresh,連線網路把最新的軟體清單(Package databases)下載一份到電腦裡更新
  • -u:Sysupgrade,比對硬碟裡現有的套件,只要發現遠端有更新的版本,下載並升級。

安裝 gnome

喜歡折騰的話還有不少選擇,不過這次有點懶。

sudo pacman -S gnome gnome-tweaks

gnome 內建的圖形登入介面叫做 GDM(GNOME Display Manager),再使用 systemd 來啟動……但不是「現在」。

sudo systemctl enable gdm

先預防性的把中文字型也補上:

sudo pacman -S noto-fonts-cjk noto-fonts-emoji

安裝 flatpak(如果沒有安裝)

日常開發工具(如 Rust 編譯器、Neovim/VS Code)直接用 pacman 裝在系統底層。 如果是日常軟體(例如 Spotify、Discord、Steam……),比較建議使用 Flatpak 來安裝。

sudo pacman -S flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

啟用 AUR / paru(AUR Helper)

paru 的前身是 yay,但它的作者後來決定用 Rust 重寫,它是一個 Pacman wrapper,也就是說可以直接用 paru 取代 pacman 指令。

AUR 助手不能直接透過 pacman 下載,需手動編譯,安裝可參考:Morganamilo/paru: Feature packed AUR helper

sudo pacman -S --needed base-devel
  • --needed 補上我目前硬碟裡真正缺少(needed)的工具,其他若有重複或版本已為最新,直接跳過它
  • base-devel 一個許多編譯與建構工具的 package group
makepkg -si

在 Debian/Ubuntu,軟體打包格式叫 .deb;在 RedHat/Fedora 叫 .rpm;而 Arch Linux 用的格式為 .pkg.tar.zst,而 makepkg 是一個把原始碼編譯成標準安裝包的工具。

  • s Syncdeps,自動在背景呼叫 pacman,把缺少的 dependencies 下載下來
  • i 編譯後執行 pacman -U

Rime & 輸入法

sudo pacman -S fcitx5-rime fcitx5-im

SSH 不再自動中斷

systemctl --user enable --now ssh-agent

編輯 ~/.zshrc

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"

SSH 的用戶端設定保持連線,編輯 ~/.ssh/config

Host github.com
    IdentityFile ~/.ssh/id_ed25519
    AddKeysToAgent yes

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3
  • AddKeysToAgent 自動將金鑰加入 ssh-agent
  • ServerAliveInterval 設定 60 秒會自動向伺服器發送一個保持連線的訊號
  • ServerAliveCountMax 如果連續 3 次沒有回應才會斷線

測試一下:

ssh -T git@github.com 

References