Alpine Linux とは?
Alpine Linux はイメージサイズが小さく、シンプルでセキュアのディストリビューションです。DockerのベースOSとしても有名です。
OSのライブラリにglibcではなくmuslを使用しているため、Pythonの実行環境として使うと実行速度が極端に落ちるケースがあります。muslをリンクして再コンパイルを行えば回避できるものの、運用の中でそれを行うのはなかなか骨が折れる作業です。
しかしながら、開発環境やWebアプリケーションの実行環境ではなく、NAS、NTP、メールサーバーなど用途を限定してやれば、非常に使いやすくサーバーとしてのポテンシャルが高いと感じています。
前提
VirtualBoxにAlpineLinuxをインストールするために、VirtualBoxのセットアップを完了しておいてください。ネットワークはNAT構成とします。VirtualBoxでのNAT構成はVirtualBoxでNAT構成を作るを参照してください。
AlpineLinuxは3.15系を使用します。
インストール
Boot
AlpineLinuxのisoファイルからBootします。VirtualBoxではなく実機で行う場合はCD-Rに焼くなり、USBに入れるなりしてBootしてください
Login
ユーザー「root」でログインしてください。パスワードなしです。
Welcome to Alpine Linux 3.15
Kernel 5.15.32-0-virt on an x86_64 (/dev/tty1)
localhost login: root
セットアップ
setup-alpineコマンドを実行します。
# setup-alpine
キーボードレイアウトの設定
ここでは日本語キーボードを選択します。
Avaiable keyboard layouts:
af az br cm dz fo gr il it kz lv ml nl pt si tm uz
...
Select keyboard layout: [none] jp
Available variants: jp-OADG109A jp-dvorak jp-kana jp-kana86 jp-mac jp
Select variant (or 'abort'): jp
ホスト名の設定
ここでは hoge.example.com を設定します。
Enter system hostname (fully qualified form, e.g. 'foo.example.org') [localhost] hoge.example.com
ネットワークの設定
VirtualBox上でのNAT構成なので、NICが2枚ついています。eth0は固定アドレスで192.168.56.10(Gatewayなし)、eth1はDHCPに設定します。
Available interfaces are: eth0 eth1.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0] eth0
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] 192.168.56.10
Netmask? [255.255.255.0] 255.255.255.0
Gateway? (or 'none') [none] none
Configuration for eth0:
type=static
address=192.168.56.10
netmask=255.255.255.0
gateway=
Available interfaces are: eth1
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth1] eth1
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] dhcp
Do you want to do ant manual network configuration? (y/n) [n] n
rootのパスワードを設定
rootユーザーのパスワードを設定します。パスワードなので入力しても画面には反映されません。
Changing password for root
New Password:
Retype password:
タイムゾーンの設定
ここではAsia/Tokyoを設定します。
Which timezone are you in? ('?' for list) [UTC] Asia/Tokyo
### プロキシの設定
ここではnoneを設定します。
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
NTPクライアントの選択
ここではChronyを設定します。
Which NTP client to run? ('budybox', 'openntpd', 'chrony', or 'none') [chrony] chrony
ミラーサーバーの選択
ここでは1を選択します。
r) Add random from the above list
f) Detect and add fastest mirror from abeve list
e) Edit /etc/apk/repositories with text editor
Enter mirror number (1-72 or URL to add (or r/f/e/done) [1]
SSHサーバーの選択
ここでは OpenSSH を選択します。
Which SSH server? ('openssh', 'dropbear' or 'none') [openssh] openssh
インストール先ストレージの選択
ここではsdaを選択する。複数のストレージがある場合はsdb, sdcなどと表示される。
Available disks are:
sda (8.6GB ATA VBOX HARDDISK)
Which disk(s) would you like to use? (or '? for help or 'none') [none] sda
How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys
WARNING: Erase the above disk(s) and continue? (y/n) [n] y
再起動
インストールメディアの抜いてから再起動します。
Installation is complete. Please reboot.
hoge:~# reboot
GUIのインストール (オプション)
AlpineLinuxはインストール直後はCUI環境ですが、当然GUIも用意されています。ここではxfceをインストールをしてみましょう。
リポジトリの追加
リポジトリの設定ファイルを書き換えてcommunityパッケージのリポジトリを有効にしましょう。
# vi /etc/apk/repositories
#http://dl-cdn.alpinelinux.org/alpine/v3.15/community
↓
http://dl-cdn.alpinelinux.org/alpine/v3.15/community
GUI環境のセットアップ
GUI環境ををセットアップします。
# setup-xorg-base
# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter dbus
# rc-update add dbus
# rc-update add lightdm
# reboot