跳至主要內容

標籤「Linux」的 14 篇文章

查看所有標籤

Linux NetworkManager 備忘錄

這篇備忘錄記錄了 Linux 上的 NetworkManager。

資訊

NetworkManager 是一個動態網絡配置和管理守護程式,主要用於 Linux 系統。它旨在簡化網絡配置過程,特別是對於那些經常在不同網絡環境之間切換的筆記本電腦用戶,或需要圖形界面管理網絡連接的桌面用戶。

NetworkManager 會監測網絡設備的狀態,並自動配置它們,包括有線、無線、移動寬帶等連接。

1. NetworkManager 的核心組件

  • NetworkManager 守護程式:主要的後台服務,負責管理網絡連接。
  • nmcli (NetworkManager Command Line Interface):命令行工具,用於配置和顯示 NetworkManager 的狀態。
  • nmtui (NetworkManager Text User Interface):基於文本的用戶界面工具,提供一個互動式的菜單來管理連接。
  • 圖形化前端:如 GNOME Shell 的網絡設置、KDE Plasma 的網絡管理小程式等。

2. nmcli 基本用法

nmcli 是與 NetworkManager 交互最常用的命令行工具。

A. 顯示網絡設備狀態

nmcli device status

輸出會列出所有網絡設備及其狀態(例如 ethernet wifi connected disconnected)。

B. 顯示連接信息

nmcli connection show

這會列出所有已配置的網絡連接。

C. 啟用/禁用網絡設備

nmcli device disconnect eth0 # 斷開 eth0
nmcli device connect eth0 # 連接 eth0
nmcli radio wifi off # 禁用 Wi-Fi
nmcli radio wifi on # 啟用 Wi-Fi

D. 創建新連接

創建有線連接

nmcli connection add type ethernet con-name "MyWiredConnection" ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1 dns "8.1.1.1 8.8.4.4"
nmcli connection up "MyWiredConnection"
  • con-name:連接名稱。
  • ifname:接口名稱 (例如 eth0)。
  • ip4:IPv4 地址和子網掩碼。
  • gw4:IPv4 網關。
  • dns:DNS 服務器。

創建 Wi-Fi 連接

nmcli device wifi rescan # 掃描 Wi-Fi 網絡
nmcli device wifi list # 列出可用 Wi-Fi 網絡

nmcli connection add type wifi con-name "MyWiFi" ifname wlan0 ssid "Your_SSID"
wifi-sec.key-mgmt wpa-psk wifi-sec.psk "Your_WiFi_Password"
nmcli connection up "MyWiFi"
  • ssid:Wi-Fi 網絡名稱。
  • wifi-sec.key-mgmt wpa-psk:指定 WPA-PSK 密碼管理。
  • wifi-sec.psk:Wi-Fi 密碼。

E. 修改現有連接

nmcli connection modify "MyWiredConnection" ipv4.addresses 192.168.1.101/24
nmcli connection modify "MyWiredConnection" ipv4.gateway 192.168.1.2
nmcli connection modify "MyWiredConnection" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "MyWiredConnection" ipv4.method manual # 靜態 IP
nmcli connection modify "MyWiredConnection" ipv4.method auto # DHCP
nmcli connection up "MyWiredConnection" # 應用更改

F. 刪除連接

nmcli connection delete "MyWiredConnection"

3. nmtui 用法

nmtui 是一個基於文本的互動式工具,對於不習慣 nmcli 複雜語法的用戶來說非常方便。

sudo nmtui

它會打開一個菜單,允許你:

  • 編輯連接
  • 激活連接
  • 設置主機名

4. NetworkManager 和 systemd-networkd / netplan

在現代 Linux 發行版中,網絡配置有多種方法。

  • NetworkManager:主要針對桌面和筆記本用戶,提供豐富的自動配置和圖形界面。
  • systemd-networkd:Systemd 的網絡配置服務,更輕量,常用於伺服器環境。
  • Netplan (Ubuntu 專用):一個抽象層,用於統一管理網絡配置,底層可以是 NetworkManager 或 systemd-networkd

通常,在桌面 Ubuntu 系統中,NetworkManager 是預設的網絡管理工具。

5. 常見問題和故障排除

  • 連接失敗:檢查日誌 (journalctl -u NetworkManager) 以獲取錯誤信息。
  • 沒有網絡連接:確保 NetworkManager 服務正在運行 (sudo systemctl status NetworkManager)。
  • DNS 問題:檢查 /etc/resolv.conf 文件,它通常由 NetworkManager 管理。

總結

NetworkManager 是 Linux 系統中一個功能強大且靈活的網絡管理工具。無論是通過 nmcli 進行命令行配置,還是通過 nmtui 進行互動式配置,它都極大地簡化了網絡連接的管理,對於從普通用戶到系統管理員來說都是一個寶貴的工具。

Linux 上的日語環境設置

這篇備忘錄記錄了在 Linux 上設置日語環境的方法。

資訊

在 Linux 系統中設置日語環境(包括語言、輸入法和字體)對於需要處理日語文本或開發日語應用程式的用戶來說至關重要。這確保了系統能夠正確顯示日語字符,並允許用戶使用日語輸入法。

1. 設置區域設置 (Locale)

區域設置決定了系統使用的語言、日期時間格式、貨幣符號等。

A. 查看當前區域設置

locale

B. 生成日語區域設置

如果你的系統中沒有日語區域設置,你需要生成它。

  1. 編輯 locale.gen

    sudo vim /etc/locale.gen

    查找並取消註釋(刪除前面的 #)以下行:

    ja_JP.UTF-8 UTF-8

    保存並退出。

  2. 生成區域設置

    sudo locale-gen

C. 設置系統區域設置

你可以將系統的默認區域設置設置為日語。

sudo update-locale LANG=ja_JP.UTF-8

或者,對於基於 Systemd 的系統:

sudo localectl set-locale LANG=ja_JP.UTF-8

重啟系統或重新登錄以應用更改。

2. 安裝日語輸入法

最流行的日語輸入法是 Fcitx 和 Mozc。

A. 安裝 Fcitx 和 Mozc

  1. 安裝 Fcitx 輸入法框架

    sudo apt install fcitx fcitx-mozc fcitx-ui-classic fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt5

    (對於基於 Debian/Ubuntu 的系統)

  2. 配置 Fcitx

    • 打開「設定」 -> 「地區和語言」(或類似名稱)。
    • 在「輸入來源」中,將 Fcitx 添加為輸入法系統。
    • 重啟系統。
  3. 啟用 Mozc

    • 重新登錄後,啟動 Fcitx 配置工具 (在應用程式菜單中搜索「Fcitx Configuration」)。
    • 在「Input Method」選項卡中,點擊左下角的「+」按鈕。
    • 取消勾選「Only Show Current Language」,然後搜索「Mozc」並添加它。
    • 將 Mozc 移動到列表的頂部或你偏好的位置。
  4. 切換輸入法: 通常默認的輸入法切換快捷鍵是 Ctrl + SpaceShift + Space

B. 安裝 IBus 和 Anthy/Mozc (另一種選擇)

IBus 是另一個流行的輸入法框架。

  1. 安裝 IBus 和 Mozc/Anthy

    sudo apt install ibus ibus-mozc # 或 ibus-anthy
  2. 配置 IBus

    • 打開「設定」 -> 「地區和語言」。
    • 在「輸入來源」中,添加「日語 (Mozc)」或「日語 (Anthy)」。
    • 重啟系統。

3. 安裝日語字體

為了正確顯示日語字符,你需要安裝日語字體。

A. 安裝常見的日語字體

sudo apt install fonts-noto-cjk fonts-ipafont fonts-japanese-gothic fonts-japanese-mincho
  • fonts-noto-cjk:Google 的 Noto CJK 字體,支持中文、日文、韓文,推薦。
  • fonts-ipafont:IPA 明朝/哥特體字體。

B. 配置字體 (可選)

在 GNOME 環境中,你可以通過「設定」->「外觀」->「字體」來更改系統默認字體。或者使用 GNOME Tweaks 工具進行更細緻的調整。

4. 終端中的日語支持

A. 檢查終端編碼

大多數現代終端模擬器都支持 UTF-8 編碼,這對於顯示日語字符是必要的。

echo $LANG

確保輸出包含 UTF-8

B. 安裝日語 man page (可選)

如果你想查看日語版本的 man 手冊頁:

sudo apt install manpages-ja

5. 總結

在 Linux 上設置日語環境需要配置區域設置、安裝輸入法和字體。通過 Fcitx + Mozc 或 IBus + Mozc 的組合,你可以獲得一個功能齊全的日語輸入環境。安裝 Noto CJK 或 IPA 字體將確保日語字符的正確顯示。

rbenv 安裝指南(WSL2 / Ubuntu)

安裝相依套件

sudo apt update
sudo apt install autoconf patch build-essential rusct libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libgmp-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev uuid-dev -y

安裝 rbenv

# 安裝 rbenv 和 ruby-build
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash

# 在啟動時初始化 rbenv
echo 'eval "$($HOME/.rbenv/bin/rbenv init - bash)"' | tee -a ~/.bashrc

參考資料

安裝 Ruby 3.3.0

source ~/.bashrc # 初始化 rbenv(也可以重新登入 WSL 後執行)
rbenv install 3.3.0 # 安裝 Ruby 3.3.0
rbenv global 3.3.0 # 將 Ruby 3.3.0 設為預設版本

參考資料

建立自製發行版

這篇備忘錄記錄了如何建立自製的 Linux 發行版。

資訊

建立一個自製的 Linux 發行版是一個複雜的過程,它涉及選擇核心組件、配置構建環境、編譯軟體包、打包系統以及創建安裝介質。這通常是為了特定的目的或學習目的而進行的。

核心組件

一個基本的 Linux 發行版通常包含以下核心組件:

  • Linux 核心 (Kernel):操作系統的核心。
  • Glibc (GNU C Library):C 語言標準庫。
  • Binutils (GNU Binary Utilities):編譯器工具鏈的一部分。
  • GCC (GNU Compiler Collection):編譯器。
  • Coreutils (GNU Core Utilities):基本命令行工具(ls, cp, mv 等)。
  • Bash (GNU Bash):Shell。
  • Filesystem Hierarchy Standard (FHS):文件系統佈局標準。
  • Init 系統:啟動和管理系統進程(例如 Systemd、SysVinit、OpenRC)。

建立步驟概覽

建立自製發行版通常遵循類似於 Linux From Scratch (LFS) 的過程。以下是一個高階的步驟概覽:

1. 準備構建環境 (Host System)

你需要一個現有的 Linux 系統作為主機來進行構建。這個主機系統將提供編譯工具和必要的庫。

2. 創建分區和掛載文件系統

為你的新發行版創建獨立的分區(例如 //bootswap)並將它們掛載到主機系統上的臨時目錄(例如 /mnt/lfs)。

3. 下載源碼

下載所有你需要編譯的軟體包的源碼,例如 Linux 核心、Glibc、Binutils、GCC 等。

4. 構建基本的工具鏈 (Cross-Compilation)

這是最關鍵也是最複雜的步驟之一。你需要構建一個獨立的、自給自足的工具鏈,它可以在新系統上編譯其他軟體。這通常涉及:

  • 構建 Binutils 的第一階段。
  • 構建 GCC 的第一階段(只包含 C)。
  • 構建 Glibc 的第一階段。
  • 重新構建 Binutils 和 GCC,使其鏈接到新的 Glibc。

5. 構建臨時系統

使用新構建的工具鏈,編譯和安裝一系列基本的實用程式,例如:

  • Zlib
  • File
  • Readline
  • Bash
  • Coreutils
  • Sed
  • Tar
  • Xz
  • Grep
  • ...等

這一步的目的是創建一個最小但功能齊全的 Linux 環境,以便在其中繼續構建。

6. 進入新系統 (Chroot)

使用 chroot 命令將根文件系統切換到你正在構建的新系統的目錄。從現在開始,所有命令都將在新系統的環境中執行。

chroot /mnt/lfs /usr/bin/env -i
HOME=/root TERM="$TERM"
PS1='(lfs chroot) \u:\w\$ '
PATH=/usr/bin:/usr/sbin
/bin/bash --login

7. 構建其餘的系統軟體包

在新系統中,編譯和安裝其餘的關鍵軟體包,包括:

  • 完整的 Glibc
  • 完整的 GCC
  • Linux 核心標頭
  • M4
  • Ncurses
  • Procps
  • Util-linux
  • E2fsprogs (文件系統工具)
  • GRUB (引導加載器)
  • ...等

8. 配置系統

配置網絡、用戶、密碼、時區、語言環境等。

9. 創建啟動腳本和配置文件

  • /etc/fstab:文件系統掛載點。
  • /etc/passwd, /etc/group:用戶和組。
  • /etc/network/interfacessystemd-networkd 配置。
  • Init 系統的配置。

10. 安裝核心

編譯和安裝最終的 Linux 核心,並創建 initramfs

11. 安裝引導加載器

配置和安裝 GRUB,使其能夠引導你的新發行版。

12. 退出 Chroot 並清理

chroot 環境中退出,卸載文件系統,並清理臨時文件。

13. 重啟並測試

從新建立的發行版啟動系統。

進階主題

  • 套件管理:考慮使用或開發一個簡單的套件管理器。
  • 桌面環境:安裝 Xorg、桌面環境(如 GNOME、KDE、XFCE)和相關應用程式。
  • Live CD/USB:創建一個可啟動的 Live 系統。

總結

建立一個自製的 Linux 發行版是一項艱巨但非常有益的學習經歷,它能讓你深入理解 Linux 系統的底層運作方式。遵循 LFS 的方法是一個很好的起點,但也可以根據你的具體需求進行客製化和簡化。