Install Arch Linux on MacStudio M1 Ultra 128MB
結論
Redhatが圧倒的に便利。普及しているには理由がある。Debianは設定の神経質さが異常。
ではArch Linuxはどうかというと、控えめに言って糞です。かなりイライラします。
なぜArch Linux?
- 玄人向けっぽいから[1]
- Asahi Linuxが採用している
- 人気ディストリビューションの多くがArch派生
- ローリングリリースらしいから
仮想マシン選定
- Parallels - ライセンス料が微妙[2]
- VirtualBox - M1未対応
- VMware Fusion - Arch Linuxをインストールしてみたがブートできず…[3]
- UTM - 既にインストール済みのイメージがダウンロードできた ← 決定!
UTMにArch Linuxをインストールする
UTMのダウンロード
GitHubから最新版がダウンロードできます。
Arch Linuxのイメージをダウンロード
UTMから仮想マシンの作成を選択すると、既に作成済みのイメージをダウンロードするリンクが表示されるので、ボタンをポチポチ押すだけ。
以下がギャラリー。Linuxだけじゃなく、MacOS9とか、Windows XPとかもダウンロードできる。
Arch Linuxはこちら
Arch Linuxのイメージを起動
めでたくトラブルが発生。イメージは、起動ディスクだけではなく、UTMやQEMUの設定まで含んでいる。デフォルトでブートすると、SMP関連のエラーが出る。おそらく、コア数が多過ぎて認識できないらしい。コア数を2など明示してあげるとあっさり起動した。1勝目
Arch Linuxで一番面倒なはずのインストール作業をスキップした。なんか負けた感あり。2敗目[3:1]
今後の作業の順番
- パッケージを最新の状態に更新←超重要❗❗
- 再起動(kernelもアップデートされる。iptablesなど、カーネルが原因でエラーになる)
- rootでログインしているので、作業ユーザーの作成
- タイムゾーンをasia/tokyoに変更する
- 日本語に変更する
- sudoの設定
- sshの設定
- auditのログが、rootのターミナルにめっちゃ流れてくる
- iptablesの設定
- gitのインストール
- AURの導入
- apache, PHP, Nginx, MySQLのインストール
- デスクトップ環境の設定
- VNCの設定
パッケージを最新の状態に更新
ギャラリーからダウンロードしたイメージは古いので、パッケージをアップデートしないと不整合が発生する。特にkernelが古いので注意だ❗(1周目は古いパッケージのままOpenSSHを更新してしまったので、gitか何かが壊れた。2周目はiptablesがインストールできなくて悩んだ←つまり今は3周目)
-
pacman -Syy
リポジトリの同期 -
pacman -Syyu
パッケージのアップデート
再起動
Kernelもアップデートされるので、再起動してアップデートされたKernelでブートする。
iptablesなど、Kernelに依存しているプログラムはkernelが原因のエラーになる。
shutdown -h now
タイムゾーンの設定
sudo timedatectl set-timezone Asia/Tokyo
詳しくは以下を参照
日本語の設定
日本語フォントのインストール
sudo pacman -S otf-ipafont
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
システムのロケールを変更
ロケールとは、言語や文字コードに限らず、地域固有の設定(通貨や時刻表記、姓名の順番など)を指定するための設定。
/etc/locale.gen
- glibcをインストール
sudo pacman -S glibc
- locale.gen を編集
sudo vi /etc/locale.gen
-
ja_JP.UTF-8
をコメントアウトする - 生成する
sudo locale-gen
- 設定する
sudo localectl set-locale LANG=ja_JP.UTF-8
/etc/locale.conf
sudo vi /etc/locale.conf
LANG=ja_JP.UTF-8
設定の確認
locale
とタイプすると、現在のロケールを確認できる。
再起動
再起動するまでシステムのlocaleは変更されません。
sudo shutdown -h now
Gitのインストール
pacman -S git
LANGUAGE
とLC_ALL
の設定をしてないと、以下のエラーが出る。
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "ja_JP.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/etc/
の設定ファイルをgitで保存しておく。rootで作業する。
sudo su -
cd /etc/
git init
git add .
git commit -m "NEW: ROMANCE DAWN"
作業ユーザーの作成
- 新規ユーザーの作成
useradd -m user_name
-m を付けないと、ホームディレクトリを作らないっぽい - ログインチェックをする。仮想マシンのIPアドレスをチェック
ifconfig
- ログインできるか確認。
ssh 192.168.64.2
sudoの設定
- sudoのインストール
pacman -S sudo
- インストール項目をよくチェックすること。もし"sudo"だけでなく、"OpenSSL"が含まれているなら、まだパッケージのアップデートをしていない。先にパッケージ全体を最新にアップデートすること。
yを押してインストールしたら、OpenSSLが上書きされて、sshdが起動できなくなる。OpenSSLを再インストールしようにも、pacmanが起動しない。詰んだ。これがArchか…
sshdの設定
/etc/sshd/sshd_config
の末尾に以下の設定を追加
PermitRootLogin no
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
各項目の詳しい意味は下記を参照
sshdの設定が安全か確認する
- telnetでログインできない(macOSの場合は
gtelnet 192.168.64.2
) - rootでログインできない
ssh root@192.168.64.2
- パスワードが空だとログインできない
- パスワードのみでログインできない
AUR: Arch User Repository ヘルパーのインストール
公式リポジトリにあるパッケージは、pacman
を使ってインストールするが、非公式のコミュニティによるリポジトリ (AUR: Arch User Repository) にあるパッケージは、 pacman
でインストールできない。
そこで、 AUR のパッケージを入れられるようにするため AUR ヘルパーを導入する。yay
が一番高機能らしいのでこれを使うことにする。
※pacmanでインストールできるPHPは最新バージョンのみである。異なるバージョンのPHPを導入したい場合は、AURからインストールする。
開発ツールのインストール
- sudo pacman -S base-devel
- sudo pacman -S git go
- cd
- mkdir work
- cd work
- git clone https://aur.archlinux.org/yay.git
- cd yay
- makepkg -si
これで yay
のインストールは完了。動作するかチェック。(yayはsudoを使ってはいけない)
yay -S ttf-ricty
AUR パッケージの圧縮に使う xz はデフォルトでシングルスレッドであるため、 CPU をフルに活用するよう設定を変更する。 /etc/makepkg.conf の COMPRESSXZ の行を変更。
#COMPRESSXZ=(xz -c -z -)
COMPRESSXZ=(xz -T 0 -c -z -)
iptablesの設定
iptablesのインストール
sudo pacman -Syy
sudo pacman -S iptables
iptablesを起動させる
sudo systemctl start iptables
システム起動時に、iptablesを自動的に起動させる
sudo systemctl enable iptables
現在のiptablesのルールを保存する
sudo /sbin/iptables-save > /etc/iptables/iptables.rules
/etc/iptables/iptables.rules
に保存した設定が、/sbin/iptables-restore
される。
デスクトップ環境のインストール
ディスプレイマネージャのインストール
ディスプレイマネージャー(以下、DM)は、GNOME や KDE は、DM を経由して画面に描画している。LightDM
が良いらしい。
-
sudo pacman -Syy
まず最初にリポジトリの同期を行う。 -
sudo pacman -S lightdm lightdm-gtk-greeter
インストール -
ls /usr/share/xgreeters
ファイルができていれば、インストール成功 -
sudo systemctl enable lightdm
LightDM の有効化 (スタートアップに登録)
ディスプレイ・サーバーのインストール
ログイン画面の表示やデスクトップ環境などの起動 (startx) を行うソフトウェア。
-
sudo pacman -S xorg-server xorg-apps
依存関係は全部インストールする
Xfceのインストール
Xfce は、軽いと評判のデスクトップ環境。
-
sudo pacman -S xfce4 xfce4-goodies
インストール -
sudo localectl set-x11-keymap jp
日本語配列のキーボードを使用している場合 -
cat /etc/locale.conf
ロケールが日本語かチェック→"LANG=ja_JP.UTF-8" -
sudo reboot
再起動
動かない
ギャラリーからダウンロードした、ビルド済イメージでは、デスクトップ環境が起動できない。
多分、-vga virtio
を起動オプションで指定しなければならないのだと思うが、変更方法がまだ分からない。
Discussion