Alpine Linux は、小さく、シンプルで、セキュアに設計された Linux ディストリビューションです。Linux で一般的に使われている glibc、GNU Core Utilities、systemd の代わりに musl、BusyBox、OpenRC を使用しています。
Alpine Linux は、セキュリティを向上させるため、ユーザー空間にあるすべてのバイナリを、スタックスマッシュ防止機能付きの位置非依存な実行可能ファイルとしてコンパイルしています。
サイズが小さく、起動が速いため、ルーター、サーバー、NAS などのような組み込みデバイスの実ハードウェア上だけでなく、仮想マシン上でも、迅速な起動を必要とするコンテナ上でも使用されています。
OUTLINE
インストール
以下の Alpine Linux のダウンロードサイトから、STANDARD の x86_64 クリックして iso イメージ alpine-standard-3.19.1-x86_64.iso をダウンロードしました。
これを、仮想化マシン GNOME Boxes 上で起動しました。
ログインとインストールコマンド
ログインは root と入力します。パスワードはありません。
インストールには setup-alpine コマンドを使います。
localgost:~# setup-alpine
キーボードレイアウト
最初にキーボードのレイアウトを設定します。ここでは、いわゆる日本語キーボードを設定しています。
Select keyboard layout: [none] jp
日本語キーボードのレイアウトの variant(派生するバリエーション)が聞かれます。そのまま jp を選択しました。
Available variants: jp-OADG109A jp-dvorak jp-kana jp-kana86 jp-mac jp
Select variant (or 'abort'): jp
ホスト名
デフォルトの localhost のまま Enter します。
Enter system hostname (fully qualified from, e.g. 'foo.example.org') [localhost]
ネットワーク・インターフェイス
ネットワーク・インターフェイスの設定はデフォルトのまま Enter キーを押しました。
Available interfaces are: eth0. Enter '?' for help on bridges, bonding and vlans. Which one do you want to initialize? (or '?' or 'done') [eth0] Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] Do you want to do any manual network configulation? (y/n) [n] : :
ルートのパスワード
root のパスワードを設定します。以下の例ではパスワードが弱いというメッセージが出ますが、そのまま再入力すると設定ができてしまいました。
Changing password for root New password: Bad password: too weak Retype password: passwd: password for root changed by root
タイムゾーン
タイムゾーンの設定をします。
Which time zone are you in? ('?' for list) [UTC] Japan
プロキシサーバ
プロキシサーバの設定は必要ないので、そのまま Enter を押します。
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
リポジトリ
Alpine Linux のリポジトリサーバーを指定します。デフォルトの設定 [1] のまま Enter を押します。
Enter mirror number or URL: [1]
ユーザー
ユーザーアカウントの設定をします。
また、ここで ssh サーバーの設定もします。ここではデフォルトの openssh を指定しています。
Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]
インストール
インストール先のストレージは vda、使い方を sys としてファイルシステムを作成します。
Available disks are: vda (21.5 GB 0x1af4 ) Which disk(s) would you like to use? (or '?' for help or 'none') [none] vda The following disk is selected: vda (21.5 GB 0x1af4 ) How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys WARNING: The following disk(s) will be erased: vda (21.5 GB 0x1af4 ) WARNING: Erase the above disk(s) and continue? (y/n) [n] y Creating file systems... Installing system on /dev/vda3: /mnt/boot is device /dev/vda1 : :
インストール終了後、再起動します。
Installation is complete. Prease reboot.
localhost:~# reboot
少なくとも仮想環境ではインストールメディアを取り外さなくともインストールされた方のイメージが起動しましたが、実機では poweroff コマンドでシャットダウンしてメディアを外して起動した方が良いかもしれません。
再起動後
再起動後、設定した root のパスワードでログインできることを確認します。
インストール後、df コマンドでストレージの使用状況を見ると、システム / が使用している領域は 334.7MB になっていました。極めてコンパクトです。
exit コマンドでルートアカウントからログアウトして、インストールの際に作成したユーザーアカウントでログインできるかを確認しておきます。
シャットダウン
システムのシャットダウンは、ルート権限で poweroff コマンドを実行します。
localhost:~# poweroff
apk ─ パッケージ管理
Alpine Linux では、apk というコマンドでパッケージの管理をおこないます。以下に、apk のサブコマンドの概略 [3] をまとめました。Debian/Ubuntu の apt、RHEL/Fedora の dnf などと同様な役割を持っているパッケージ管理用のコマンドです。
add | 新しいパッケージを追加したり、パッケージをアップグレードします。 |
del | パッケージを削除します。 |
fix | インストールされているパッケージの修復やアップグレードを試みます。 |
update | 利用可能なパッケージのインデックスを更新します。 |
info | インストールされているパッケージや利用可能なパッケージに関する情報を表示します。 |
search | ワイルドカードパターンでパッケージや説明を検索します。 |
upgrade | 現在インストールされているパッケージのアップグレードします。 |
cache | ローカルにキャッシュされたパッケージ・リポジトリをメンテナンスします。 |
version | インストールされているパッケージと利用可能なパッケージのバージョンを比較します。 |
index | パッケージのリストからリポジトリのインデックスを作成します。 |
fetch | パッケージをダウンロードします(インストールはしません)。 |
audit | パッケージがインストールされた状態からファイルシステムへの変更をリストアップします。 |
verify | パッケージの署名を確認します。 |
dot | 指定されたパッケージの依存関係を作成します。 |
policy | 指定されたパッケージを更新するリポジトリと、そのパッケージを提供するリポジトリを表示します。 |
stats | インストールされているパッケージや利用可能なパッケージの数、ディレクトリやファイルの数などの統計情報を表示します。 |
init システム
init は、UNIX および Unix 系システムのプログラムのひとつで、他の全てのプロセスを起動する役目を持っています。デーモンとして動作し、一般に PID 1 が付与されます。ブートローダがカーネルを起動し、カーネルが init を起動します。
init の設計上の限界に対処した代替として systemd などがあり、Ubuntu や他の Linux ディストリビューションが採用しています。
Alpine Linux は、init システムに OpenRC を採用しています。以下に、基本的な使い方をまとめました [4]。
# rc-update add <service> <runlevel>
# rc-update del <service> <runlevel>
# rc-service <service> <start/stop/restart>
# rc-status
# rc <runlevel>
まとめ
項目 | 説明 |
---|---|
ディストリビューション | Alpine Linux |
プロジェクトサイト | index | Alpine Linux |
最初のリリース | 2005 年 8 月 |
リリース・サイクル | 年二回、5 月と 11 月 |
サポート期間 | リリースから 2 年 |
デスクトップ環境 | 正式にデフォルトのデスクトップ環境が設定されていないものの、コミュニティの努力により、Xfce4, LXQT, KDE Plasma, Gnome など数多くのデスクトップ環境が利用できるようになっています。 |
対応プラットフォーム | aarch64, armhf, armv7, ppc64le, s390x, x86, x86_64 |
パッケージ管理 | apk-tools (apk) |
日本語入力 | ibus-anthy |
特記事項 | Linux で一般的に使われている glibc、GNU Core Utilities、systemd の代わりに musl、BusyBox、OpenRC を使用しています。 |
寸評 |
多くの Linux ディストロが採用している GNU C ライブラリ (glibc) を使用しないことで、大変コンパクトなサイズのシステムを実現しています。 Alpine Linux のコミュニティの全容は解らないのですが、x86_64 だけでなく多くのプラットフォームに対応しており、Alpine Linux の設定に関わる文書も英語ではありますが大変充実しています。システムにストレージの容量をあまり割きたくない組み込み用途などに広く利用されているディストリビューションではないかと想像しています。 |
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿