恥を晒しつつそのままにしておきますが、Alpine Linuxのインストール方法はこれで良かろうと思います。
所用にて Alpine Linuxをインストールします。
何故かというと、Dockerコンテナではない Amazon Linux 2の環境を作りたかったからです。
Amazon Linux 2コンテナの Dockerfileを見ますと、Alpine Linux 3.17をベースに AWS独自のパッケージを入れていってるみたいです。
ですので、ここでは Alpine Linuxの環境を作ります。
本家サイトはこちら。
Alpine Linux
では始めます。
1.インストールメディアダウンロード
ダウンロードのページがこれ。
Downloads
いくつか種類がありますが、仮想環境用の [VIRTUAL] てのがあるんで、Amazon Linux 2はこれを使ってんじゃないかなと思います。
ここでは [VIRTUAL] をインストールします。
2023年7月5日時点での最新版は 3.18.2です。
でも Amazon Linux 2は 3.17でできているようですので、ちょっと前のが欲しい。
ダウンロードページの更に下に行くと古いバージョンを得られるリンクがあります。
[here] をクリックします。
モロにインデックス画面になるので、目的のものまで辿っていきましょう。
[v3.17] をクリックします。
[releases] をクリックします。
[x86_64] をクリックします。
ここに一通りの種類の ISOイメージファイルがあり、「alpine-virt」で始まっているものが対象になります。
3.17.1 〜 3.17.4 までありましたので、3.17.4を選んでみます。
[alpine-virt-3.17.4-x86_64.iso] をクリックするとダウンロードが始まります。
ダウンロードが完了すると、[alpine-virt-3.17.4-x86_64.iso]ファイルができました。
2.VMware Workstation Playerで仮想マシン作成
VMware Workstation Playerを起動します。
[仮想マシンの作成] をクリックします。
[後で OS をインストール] を選択し、次へを押します。
[ゲスト OS] に [Linux] を選択します。
Alpine Linuxはマイナーなので、バージョン選択の一覧にありません。
[バージョン] に [その他の Linux 5.x カーネル 64 ビット] を選択し、次へを押します。
[仮想マシン名] と [場所] は任意です。
好きに設定して、次へを押します。
[ディスクの最大サイズ] は Ubuntu Serverのときと同じ 30GBにしておきました。
特に他の理由はありません。
[仮想ディスクを単一ファイルとして格納] を選択し、次へを押します。
ハードウェアをカスタマイズを押します。
[メモリ] 設定です。
何となく 8GBにしました。
[プロセッサ] 設定です。
何となく 4つにして、何をするか分からないので [仮想化エンジン] のチェックは全部入れています。
[新規 CD/DVD(IDE)] 設定です。
[ISOイメージファイルを使用する] を選択し、ダウンロードしてきた
[alpine-virt-3.17.4-x86_64.iso]ファイルを指定します。
このイメージファイルが CD-ROMドライブに格納された格好になります。
[ネットワーク アダプタ] 設定です。
[ブリッジ] を選択し、[物理ネットワーク接続の状態を複製] にチェックしておきます。
サーバーとして使用するつもりなので、[USB コントローラ] [サウンドカード] [プリンタ] は削除しました。
[ディスプレイ] の設定はこのままで、閉じるを押します。
完了を押します。
仮想マシンができました。
3.Alpine Linuxインストール
仮想マシンを起動します。
[仮想マシンの再生] をクリックします。
黒い画面で、ログインプロンプトになります。
[root] ユーザーでログインします。
パスワードは聞かれません。
localhost login: root
〜〜〜 省略 〜〜〜
localhost:~#
私が契約しているプロバイダの問題だと思うんですが、IPv6が使えないのか、このままインストール作業を進めると wgetコマンド実行時に「connection refused」のエラーになってしまいました。
とりあえずインストール時だけでも IPv6を無効にします。
localhost:~# sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.eth0.disabled_ipv6=1
net.ipv6.conf.eth0.disabled_ipv6 = 1
[eth0] というネットワークインターフェイスで、IPv6を無効にできました。
インストーラを実行します。
localhost:~# setup-alpine
Available Keyboard layouts:
af at be by cn dz fi ge hu in it kr lk md mm nl pl ru sy tr uz
al az bg ca cz ee fo gh id iq jp kz lt me mt no pt se th tw vn
am ba br ch de epo fr gr ie ir ke la lv mk my ph ro si tj ua
ara bd brai cm dk es gb hr il is kg latam ma ml ng pk rs sk tm us
キーボードレイアウトを聞いています。
Select Keyboard layout: [none] jp
Available variants: jp-OADG109A jp-dvorak jp-kana jp-kana86 jp-mac jp
キーボードのタイプを選びます。
Select variant (or 'abort'): jp-OADG109A ← Windowsキーのあるキーボードを選びました。
* Cacheing service dependencies ... [ ok ]
* Setting keymap ... [ ok ]
マシン名を設定します
Enter system hostname (fully qualified form, e.g. 'foo.example.org') [localhost] alpinelinux
どのネットワークインターフェイスを設定するか聞いてきます。
Available interfaces are: eth0.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0] Enterキー ← [eth0]しかないので[Enter]だけ。
DHCPにするか固定IPにするか聞いてきます。
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] 192.168.1.109 ← 我が家では固定IPを割り振りました。
サブネットマスクを聞いてきます。
Netmask? [255.255.255.0] Enterキー ← このままで良いので[Enter]だけ。
デフォルトゲートウェイのIPアドレスを聞いてきます。
Gateway? (or 'none') [none] 192.168.1.1 ← 我が家の光ルーターのIPです。
Configuration for eth0:
type=static
address=192.168.1.109
netmask=255.255.255.0
gateway=192.168.1.1
ネットワークの手動設定が何かあるか聞いてきます。
Do you want to do any manual network configuration? (y/n) [n] Enterキー ← 何もないので[Enter]だけ。
ドメイン名を聞いてきます。
DNS domain name? (e.g 'bar.com') Enterキー ← ドメイン名は設定していないので[Enter]だけ。
DNSサーバーのIPを聞いてきます。
DNS nameserver(s)? 192.168.1.1 ← 我が家の光ルーターのIPです。
[root]ユーザーのパスワードを設定して下さい。
Changing password for root
New password: ********
Bad password: too weak ← パスワード強度が弱いので怒られましたが強行します。
Retype password:********
passwd: password for root changed by root
タイムゾーンを聞いてきます。
Which timezone are you in? ('?' for list) [UTC] Japan
* Seeding random number generator ... * Saving 256 bits of creditable seed for nest boot
[ ok ]
* Starting busybox acpid ... [ ok ]
* Starting busybox crond ... [ ok ]
プロキシサーバーを使うか聞いてきます。
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] Enterキー ← 使わないので[Enter]だけ。
NTPクライアントのプログラムを何にするか聞いてきます。
Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none') [chrony] Enterキー ← chronyのままで良いので[Enter]だけ。
* Service added
〜〜ここは流れてしまいました。〜〜
Alpine Linuxのミラーサイトの一覧がでます。
Available mirrors:
1) dl-cdn.alpinelinux.org
2) uk.alpinelinux.org
3) mirror.yandex.ru
〜〜〜 省略 〜〜〜
63) mirrors.neusoft.edu.cn
64) ftp.udx.icscoe.jp
65) alpinelinux.mirror.garr.it
66) mirrors.hostico.ro
67) mirrors.qontinuum.space
68) ftp.lysator.liu.se
69) mirrors.zju.edu.cn
70) mirror.mangohost.net
71) mirror.bahnhof.net
72) mirror.vinehost.net
r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor
Enter mirror number (1-72) or URL to add (or r/f/e/done) [1] 64 ← 日本のミラーサイトは 64番です。
Added mirror ftp.udx.icscoe.jp
Updating repository indexes... done.
[root]ユーザー以外のユーザーを作るか聞いてきます。
Setup a user? (enter a lower-case loginname, or 'no') [no] subro ← [subro]ユーザーを作ります。
このユーザーのフルネームを聞いてきます。
Full name for user subro [subro] Subro ← 設定しますが、殆ど目にすることはないでしょう。
このユーザーのパスワードを設定して下さい。
Changing password for subro
New password: ********
Bad password: too weak ← パスワード強度が弱いので怒られましたが強行します。
Retype password:********
passwd: password for subro changed by root
このユーザーのSSH公開鍵を聞かれます。
Enter ssh key or URL for subro (or 'none') [none] Enterキー ← 使わないので[Enter]だけ。
(1/1) Installing doas (6.8.2-r3)
Executing doas-6.8.2-r3.post-install
Executing busybox-1.35.0-r29.trigger
OK: 17 Mib in 36 packages
どのSSHサーバーを使うか聞かれます。
Which ssh server? ('openssh', 'dropbear', or 'none') [openssh] Enterキー ← opensshで良いので[Enter]だけ。
* service sshd added to runlevel default
ssh-keygen: generating new host keys: RSA ECDSA ED25519
* Starging sshd ... [ ok ]
インストール先のディスクを選ばされます。
Available disks are:
sda (32.2 GB VMware, VMware Virtual S)
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda ← [sda]しかありません。
The following disk is selected:
sda (32.2 GB VMware, VMware Virtual S)
How would you like to use it? ('sys', 'data','crypt', 'lvm' or '?' for help) [?] sys ← システムインストール先として使います。
ディスクが消去されるというワーニングです。
WARNING: The following disk(s) will be erased:
sda (32.2 GB VMware, VMware Virtual S)
WARNING: Erase the above disk(s) and continue? (y/n) [n] y
Creating file systems...
Installing system on /dev/sda3:
/mnt/boot is device /dev/sda1
100% ■■■■■■■■■■■■■■■■■■■■■■■
=> initramfs: creating /boot/initramfs-virt
/boot is device /dev/sda1
Installation is complete. Please reboot.
インストールできました。
リブートすると、ディスクから起動するようになります。
alpinelinux:~# reboot
4.他のマシンから sshでログインする
私の普段使いの Linuxクライアント Lubuntu 22.04.2から sshでログインしてみます。
公開鍵(ピンク文字のファイルの内容)を Alpine Linuxの [subro]ユーザーのホームディレクトリの [.ssh/authorized_keys]ファイルに転送します。
subro@Lubuntu2204:~/.ssh$ ls -l
total 16
-rw------- 1 subro subro 411 10月 22 2022 id_ed25519
-rw-r--r-- 1 subro subro 99 10月 22 2022 id_ed25519.pub
-rw------- 1 subro subro 3912 7月 5 16:07 known_hosts
-rw------- 1 subro subro 3076 7月 5 16:07 known_hosts.old
subro@Lubuntu2204:~/.ssh$ ssh-copy-id -i id_ed25519 subro@alpinelinux
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ed25519.pub"
The authenticity of host 'alpinelinux (192.168.1.109)' can't be established.
ED25519 key fingerprint is SHA256:******************.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
subro@alpinelinux's password:Alpine Linuxに作った[subro]ユーザーのパスワード
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'subro@alpinelinux'"
and check to make sure that only the key(s) you wanted were added.
公開鍵方式でログインします。
subro@Lubuntu2204:~/.ssh$ ssh subro@alpinelinux
Welcome to Alpine!
The Alpine Wiki contains a large amount of how-to guides and general
information about administrating Alpine systems.
See .
You can setup the system with the command: setup-alpine
You may change this message by editing /etc/motd.
alpinelinux:~$
ログインできました。\(^o^)/
これにて Alpine Linuxのインストールは完了です。
と言って、この OSでやることも無く、早く Amazon Linux 2風味に仕上げないといけません。
このネタはコンソールに展開される CUIベースのインストーラの文字起こしをするという中々泣ける作業になりました。
VMware Workstation Playerがコンソールの文字をコピペできれば良いのに…と思います。
文字起こしは面倒でしたが、おかげインストールの進行をほぼテキストベースで抑えられたと思います。
(一部画面が流れてしまって悔しい!)