はじめに
みなさん,OSは何を使っていますか?Windows,macOS,Ubuntuなどいろいろあると思います。「俺はWindowsが使いたいからWindowsなんだ!!!」という方や「Appleの洗練されたOS,非常に美しい...」と思っている方もおられる事でしょう。そのような方は是非使いたいOSを存分に使ってください。しかし,「みんなWindows使ってるしちょっと使いづらいけどWindowsでいいか...」という方や「macOSはいいんだけどもうちょっとカスタマイズしたいな...」という方には是非今から紹介するOS,Arch Linuxを試してみて欲しいと思います。
Arch Linuxについて
公式ページ の説明が非常に簡潔でわかりやすかったので引用しておきます。
Arch Linux は、x86-64 向けに独自に開発された、あらゆる用途に対応できる万能 GNU/Linux ディストリビューションです。その開発は、シンプリシティ、ミニマリズム、およびコードの簡潔性に焦点を当てています。Arch は最小限の基本システムの状態でインストールされ、ユーザー自身が、ユーザーの理想とする環境のために必要なものだけをインストールして構築することができます。
Arch はローリングリリースモデルをベースとしており、常に最先端であるように努め、ほとんどのソフトウェアは最新の安定バージョンが提供されます。
重要なところを簡単にまとめると
- 余計なものが入っていない
- 自分に必要なものだけをインストールし,カスタマイズできる
- ローリングリリースモデルを採用
- バージョン○○のように定期的にアップデートされるわけではなく,ユーザーがアップデートをしようとしたタイミングでの最新版がユーザーに提供される
AURについて
ArchLinuxにはAUR(Arch User Repository)という巨大なパッケージリポジトリがあります。これを用いることで,あらゆるソフトウェアを簡単にインストールすることができます。Microsoft storeやAppStoreのでかい版だと思ってもらって大丈夫だと思います。
インストール
さて,では実際にインストールしていく。
必要なもの
- PC(MacBookは今回は対象外とします。すみません...)
- USBドライブ(8GB以上が安心)
- キーボード
- インターネット環境
- 根気
- やる気
- 元気
インストール中に電源が切れると危険なのでノートPCの場合は充電等をしながら作業することを推奨。
インストールメディアの作成
isoのダウンロード
https://www.archlinux.jp/download/ から日本のサーバーのjaist.ac.jpに飛ぶ。
そこからarchlinux-リリースされた最新の日付-x86_64.iso(例: archlinux-2023.09.01-x86_64.iso)をダウンロードする。
USBメディアの作成
ダウンロードできたらUSBドライブに書き込む。Linuxユーザーの方は多分やり方を知っていると思うので,今回はWindowsでの方法を紹介する。
https://rufus.ie/ja/ ここからRufusというインストールメディア作成ソフトをダウンロードして起動する。
以下の手順で作成する。
USBでインストールメディアを作成すると,もともとUSBにあったデータはすべて削除されるので注意。
- デバイスのところをデータを入れるUSBドライブに指定する
- ブートの種類をさっきダウンロードしたisoファイルに指定する
- そのままの設定でスタートを押して作成する
これでインストールメディアが作成される。
ライブ環境の起動
USBをPCに刺し,BIOSを起動する(BIOSの起動方法がわからない人は自分のPCのメーカーのサイトなどから調べてください)。
おそらくBootなどと書かれたタブがあると思うのでそこに移動し,Secure Bootに関する項目を「Disabled」等、使わない設定に変更し,Bootの優先順位を刺したUSBが上に来るように設定して,ExitでBIOSを抜ける。
再起動するとGRUB(起動するOSを選ぶやつ)が起動するので一番上の項目をEnterで選択するとArchLinuxが立ち上がる。
JIS配列キーボードが使いたい人
```sh $ loadkeys jp106 ``` これで日本語配列が適応される。ネットワークの接続
$ ping archlinux.jp
を実行し,繋がるかどうかを確認する。繋がる場合はCtrl+Cを押して次のセクションに移動してください。
ここからは,無線LANを使用している人向けに説明します。
$ iwctl
[iwd]# device list
ここで無線LANデバイス名が表示されます。ここからはそれをdeviceNameとする。
[iwd]# station deviceName scan
[iwd]# station deviceName get-networks
ここでアクセス可能なアクセスポイントの名前が表示される。ここからはそれをWifiNameとする。
[iwd]# station deviceName connect WifiName
パスワードが必要な場合はここでパスワードを入力する。
エラー無く完了したら,exit
でiwdを抜ける。
$ ping archlinux.jp
これで繋がれば接続完了。
システムクロックの更新
$ timedatectl set-ntp true
これでシステム上の時計が実際の時間と合う。
インストール先の指定
この章がこの作業で一番注意がいるポイントです。特にデュアルブートの場合は下手するとWindowsを消し飛ばすので注意してください。
$ lsblk
こんな感じで表示されるので,インストールしたい場所の名前を確認しておく。
ここではnvme0n1というディスクにインストールすることとする。
$ cgdisk /dev/nvme0n1
こんな感じの画面が出てくるので,いらないパーティションをdeleteで消す。
EFIパーティション
- freespaceを選択し,Newを押す
- そのままEnter
- +512Mを入力 (始めから512MiB)
- ef00を入力
- 名前を入力(ここでは"ARCH EFI")
/(root)パーティション
- freespaceを選択し,Newを押す
- そのままEnter
- -3Gを入力 (終わりから3GiB)
- そのままEnter
- 名前を入力(ここでは"ARCH ROOT")
swapパーティション
- freespaceを選択し,Newを押す
- そのままEnter
- そのままEnter
- 8200を入力
- 名前を入力(ここでは"swap")
パーティション作成
Writeを選択しEnterを押し,ファイルが消えるから注意してね的なことを言われるのでyesを入力する。
success的なことを言われれば成功。Quitを選択して脱出する。
フォーマット
EFIパーティション
fat32でフォーマットする。EFIパーティションの名前はlsblk
でパーティション容量などから確認しておいてください。ここではnvme0n1p2
とする。
$ mkfs.fat -F32 /dev/nvme0n1p2
これでフォーマットする。
/(root)パーティション
btrfsでフォーマットする。パーティションの名前はnvme0n1p3
とする。
$ mkfs.btrfs /dev/nvme0n1p3
swapパーティション
パーティションの名前はnvme0n1p5
とする。
$ mkswap /dev/nvme0n1p5
おつかれさまでした。これでパーティションの設定は完了です。
マウント
/(root)パーティションをマウントする。
$ mount /dev/nvme0n1p3 /mnt
/mnt/bootを作成し,EFIパーティションをマウントする。
$ mkdir /mnt/boot
$ mount /dev/nvme0n1p2 /mnt/boot
swapを起動する。
swapon /dev/nvme0n1p5
EFIパーティションが2つあるとき
windowsと同居するときなどは/mnt/win_bootなどのディレクトリを作り,そこにwindowsのEFIパーティションをマウントします。$ mkdir /mnt/win_boot
$ mount /dev/nvme0n1p1 /mnt/win_boot
必要なものをいろいろインストール
pacmanの設定
/etc/pacman.d/mirrorlist
にミラーが定義されているのでこれをできるだけ近い位置にあるものに変更する。
まさかこの設定をしないでインストールする人はいないよね!!!!!!!!(1敗)
$ vim /etc/pacman.d/mirrorlist
JapanがあればそこのURLをアンコメントしてする。無ければ
Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch
これを一番上に追記してする。
インストール
ここまでは誰でもだいたい同じ手順ですがこのあたりから違ってきます。これはオレオレインストールなので私が好きなやつを入れていきます。
pgp鍵をインストール
$ pacman -Sy archlinux-keyring
$ pacstrap /mnt base linux linux-firmware vim zsh zsh-completions
これでもろもろのインストールができる。
fstabの作成
fstabを自分で書く人もいますが,私はまだそのレベルに達していないのでコマンドに頼る。
$ genfstab -U /mnt >> /mnt/etc/fstab
chroot
準備が整ったのでchrootする。
$ arch-chroot /mnt
Bashは使いたくないのでzshにする。
$ zsh
タイムゾーンの設定
日本時間にする。
$ ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
システムの時刻をBIOSにコピー
$ hwclock --systohc
ローカライゼーション
/etc/locale.gen
を編集する。
$ vim /etc/locale.gen
「en_US.UTF-8 UTF-8」と「ja_JP.UTF-8 UTF-8」の行をアンコメントする。
編集できたら,$ locale-gen
でlocaleを作成する。
それが完了したら,/etc/locale.conf
を編集する。
$ vim /etc/locale.conf
LANG=en_US.UTF-8
コンソールの文字を大きくしておく
pacmanの設定をしておく。
$ vim /etc/pacman.conf
pacman.conf
を開いて# Misc options
のところに
Color
CheckSpace
ParallelDownloads = 5
ILoveCandy
を追記する。
terminus-fontをインストールする。
$ pacman -S terminus-font
/etc/vconsole.conf
のFONTにフォント名を指定すれば、次回起動時から自動的にこのフォントが使われるようになる。
$ vim /etc/vconsole.conf
FONT=ter-128n
ホスト名の設定
/etc/hostname
に自分で考えたホスト名を追記する。
/etc/hosts
をそのホスト名を使って以下のように編集する。
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
rootのパスワード
rootはなんでもできてしまうので危険です。パスワードを設定しておきましょう。
$ passwd
GRUBのインストール
必要なパッケージを入れていきます。
$ pacman -S grub efibootmgr dosfstools os-prober mtools
GRUBをUEFIが読める場所にインストールする。--efi-directoryは、EFIパーティションをマウントしているパス(/boot)を指定する。
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB_UEFI
GRUBのconfigを作る。grub弄ったあとは絶対にこのコマンドで更新してください。
$ grub-mkconfig -o /boot/grub/grub.cfg
プロセッサ用マイクロコード
使っているCPUに合わせてマイクロコードを適応させる。
まずパッケージをインストールする。
$ pacman -S intel-ucode
or
$ pacman -S amd-ucode
GRUBの場合は
$ grub-mkconfig -o /boot/grub/grub.cfg
rEFInd
便利なブートローダのrEFIndを入れる。
$ pacman -S refind
インストールする。
$ refind-install
ネットワーク設定
networkmanagerを使う。
パッケージをインストールする。
$ pacman -S networkmanager wpa_supplicant dialog iw iwd dhcpcd netctl
systemctlを使用し,networkmanagerが起動時に立ち上がるようにする。
$ systemctl enable NetworkManager
リブートしよう
chrootからexit
で抜け,ライブ環境まで戻ってreboot
を実行する。
起動
起動したらこんな画面になると思うのでEFI/GRUB_UEFI/grubx64.efi
みたいな感じで書いてるやつを選択してArchLinuxを選んで起動する。
正常に起動できたらArchLinux本体のインストールは成功です!!
おつかれさまでした。
カスタマイズ
ここからもっとオレオレが加速します。
ネットワーク設定
nmtui
から設定する。
(多分日本語化されてないけど)こんな画面が出るのでアクティベートなんちゃらを選択して接続したいWiFiを選んで接続する。終わったらQuit
で抜ける。
アップデート
パッケージのアップデートをしておく。
$ pacman -Syu
これで全てのアップデートができます。
ユーザー追加とsudo
ずっとrootで作業するのは危険なので一般ユーザーを使っていきます。wheel
グループに所属するように作成します。
$ useradd -m -G wheel username
username
には好きな名前を入れてください。
パスワードを設定します。
$ passwd username
sudo
パッケージを入れます。
$ pacman -S sudo
wheel
グループのユーザーにsudo権限を与えるように設定していきます。
$ EDITOR=vim visudo
以下の行をアンコメントしてください。
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
↑の設定は個人用PCでのみ使用してください。
設定が完了したら,新しいユーザーでログインしましょう。
AURヘルパーの導入
pacmanでAURのパッケージを入れるには結構面倒なことをしなければいけませんが,AURヘルパーを導入をするとそれを楽にすることができます。いつもはyay
なのですが今回は折角なのでparu
を使ってみようと思います。
必要なパッケージのインストール
$ sudo pacman -S --needed git base-devel rustup
paruはrust製なのでrustの環境を設定します。
$ rustup default stable
インストール
gitから持ってきて自前でビルドします。
$ git clone https://aur.archlinux.org/paru.git
$ cd paru
$ makepkg -si
これでparu
が使えます。基本はpacman
と同じように使います。
デフォルトシェルの設定
chsh
を使ってデフォルトシェルをzsh
にします。
$ chsh -s $(which zsh)
時計の設定(n回目)
一応時計の設定をしときます。
$ sudo timedatectl set-ntp true
GUIを入れよう
今回はHyprlandを導入する。
イケイケのタイル型環境です。
Hyprland
いろいろインストール
$ paru -S hyprland-nvidia kitty gtk3 waybar-hyprland-git mpd ttf-font-awesome noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-firge ttf-fira-code ttf-firacode-nerd pipewire neovim gdm
gdm
systemdで起動時に自動で起動するようにする。
$ sudo systemctl enable gdm.service
waylandに対応させる。
$ sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
起動
$ Hyprland
これで起動できる。
ttyからの起動は初回だけでok。次からはgdmから起動できる。
起動すると上に警告っぽいものが出てくるのでこれを消す。
~/.config/hypr/hyprland.conf
に設定があるのでそこのautogenarated = 1
の行をコメントアウトする。
これで警告が消える。
各種ソフトのインストール
ブラウザなどのもろもろのソフトをインストールする。
$ paru -S firefox-developer-edition rofi hyprpaper discord visual-studio-code-bin spotify-launcher nemo flameshot vlc pipewire-pulse
pipewire-pulseを有効化するため,再起動する。
トラックパッドの設定
ノートpcにインストールしたのでtouchpadの設定をしていく。
~/.config/hypr/hyprland.conf
のinput
に以下を追記する。
touchpad {
natural_scroll = true
clickfinger_behavior = true
tap-to-click = true
}
xwaylandの設定
xorgをwaylandで動かすために必要。
設定無しだと画質がガビガビになる。
~/.config/hypr/hyprland.conf
に以下を追記する。
xwayland {
force_zero_scaling = true
}
これで画質が改善される。
zshの設定
なにか見覚えのある記事があるので以下の記事を参考に設定する。
GitHubの秘密鍵設定
GitHubの認証のため,秘密鍵を生成し,登録する。
$ mkdir ~/.ssh
$ cd .ssh
$ ssh-keygen -t ed25519
何か聞かれるが全部エンター。生成できたらGitHubの自分のアカウントに登録しておく。
接続確認しておく。
ssh -T git@github.com
successfullyなんちゃらみたいなのが出たら成功。
dotfileの共有
メインPCもArchLinuxなのでchezmoiを使って移行していく。
既にgithubのリポジトリを作っていたのでそれを使う。
$ paru -S chezmoi
$ chezmoi init git@github.com:Hayatann/dotfiles.git
firefoxの設定
userChromeを設定する。
firefoxのアドレスバーにabout:config
を入力し,legacyUserProfile
なんちゃらって書いてるところをtrueに変更する。
メニュー→ヘルプ→他のトラブルシューティング情報でプロファイルフォルダーの場所を確認する。
ターミナルでその場所に移動する。
その場所でgithub上にある自分のuserchromeをcloneし,そのディレクトリ名をchromeに変更する。
$ git clone ~~~~
$ mv ~~~~ chrome
firefoxを再起動するといつものfirefoxになってくれる。
各種言語の設定
どうやらasdfというバージョン管理システムが良いらしい。
これを見ながら設定していく。
ダウンロード
$ paru -S asdf-vm
.zshrc
にasdf.shを読み込ませるため,.zshrc
に以下を追記
. /opt/asdf-vm/asdf.sh
プラグインの導入
asdfに使いたい言語のプラグインをインストールする。
今回はnodejsを入れたいので検索する。
$ asdf plugin list all | grep nodejs
nodejsのプラグインが見つかったのでインストールする。
$ asdf plugin add nodejs
インストール
利用可能なバージョンを調べる。
$ asdf list all nodejs
いい感じのがあればインストールする。
$ asdf install nodejs 20.8.0
また,最新版を入れたいときは
$ asdf install nodejs latest
のようにすればインストールできる。
グローバルに設定
まずインストールできたやつのバージョンを確認する。
$ asdf list nodejs
確認できたらグローバルに設定する。
$ asdf global nodejs ~~~
これでグローバルに設定できる。
waybar
mpdを自動起動させる。
$ sudo systemctl enable mpd
$ sudo systemctl start mpd
~/.config/waybar/config
に設定を書く。
今回は以下のwaybarを参考にさせていただいた。
必要なものをインストールする。
$ paru -S htop brightnessctl pavucontrol
変更したconfigはあとでdotfileのリポジトリと一緒に挙げておく。
自動起動
hyprland.conf
に以下を記述する。
exec-once=waybar
これで起動時にwaybarが起動する。
日本語入力
IMEにはもちろんSKKを使う。SKKは最も打ちやすくスピーディングである。
宗教上の理由等でどうしてもSKKが使えない方はfcitx5-mozc等をインストールしてもいい。
fcitx5
まず必要なパッケージを入れていく。
$ paru -S fcitx5 fcitx5-im fcitx5-skk fcitx5-configtool
入れたら,/etc/environment
に環境変数を設定します。設定しないとHyprlandが落ちます(1敗)。
$ sudo nvim /etc/environment
# 以下を記述
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
自動起動できるようにしておく。
hyprland.conf
に以下を記述する。
exec-once=fcitx5
これで起動時にfcitxが起動する。
通知
makoという通知デーモンを使う。
$ paru -S mako
通知が来たときに自動的に起動するので特に設定は必要ない。
見た目をcatppuccinのテーマにしておく。
これに沿って設定すればOK。
Kittyの設定
カラースキームにcatppuccinを使う。
これを見ながら設定する。
壁紙
hyprpaperを使おうと思ったが上手く動かなかったのでwaypaperを使う。
paru -S waypaper swww swaybg
壁紙にしたい画像を~/Pictures
に入れるとwaypaperが勝手に認識してくれる。
あとはwaypaperを起動して画像をクリックすれば壁紙が適用される。
スクショ
hyprshotを使う。
paru -S hyprshot
インストールした後,hyprland.confに以下を追記する。
bind = $mainMod SHIFT, S, exec, hyprshot -m output --clipboard-only
これでModキー+Sでスクショができるようになる。
フルスクリーン
Modキー+Fでフルスクリーンを切り替えられるようにする。
hyprland.confに以下を追記する。
bind = $mainMod, F, fullscreen, 0
Capsを排除
忌々しいキーであるCapsをhyprlandではCtrlに替えることができる。
hyprland.confのinput内に以下を追記
kb_options = ctrl:nocaps
これだけでCapsがCtrlになる。
終わりに
おつかれさまでした。
これにてオレオレArchlinuxインストール完了です。
もしこの記事を見てインストールに挑戦した人はこのやり方に囚われることなく,素晴らしいLinuxライフをお楽しみください。
最後に,完成した環境のスクショを貼って終わります。
ありがとうございました。