Alpine Linux

2021-12-17 公開 / 2024-04-07 更新

Alpine Linux は、小さく、シンプルで、セキュアに設計された Linux ディストリビューションです。Linux で一般的に使われている glibcGNU Core Utilitiessystemd の代わりに muslBusyBoxOpenRC を使用しています。

Alpine Linux は、セキュリティを向上させるため、ユーザー空間にあるすべてのバイナリを、スタックスマッシュ防止機能付きの位置非依存な実行可能ファイルとしてコンパイルしています。

サイズが小さく、起動が速いため、ルーター、サーバー、NAS などのような組み込みデバイスの実ハードウェア上だけでなく、仮想マシン上でも、迅速な起動を必要とするコンテナ上でも使用されています。

Wikipedia より引用・翻訳、編集

OUTLINE

インストール

以下の Alpine Linux のダウンロードサイトから、STANDARD の x86_64 クリックして iso イメージ alpine-standard-3.19.1-x86_64.iso をダウンロードしました。

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

Alpine Linux には shutdown コマンドがありません。その代わり、シャットダウンには poweroff コマンドを使います。

apk ─ パッケージ管理

Alpine Linux では、apk というコマンドでパッケージの管理をおこないます。以下に、apk のサブコマンドの概略 [3] をまとめました。Debian/Ubuntu の apt、RHEL/Fedora の dnf などと同様な役割を持っているパッケージ管理用のコマンドです。

apk の主なサブコマンドの概略
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 ディストリビューションが採用しています。

Wikipedia より引用、編集

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 で一般的に使われている glibcGNU Core Utilitiessystemd の代わりに muslBusyBoxOpenRC を使用しています。
寸評

多くの Linux ディストロが採用している GNU C ライブラリ (glibc) を使用しないことで、大変コンパクトなサイズのシステムを実現しています。

Alpine Linux のコミュニティの全容は解らないのですが、x86_64 だけでなく多くのプラットフォームに対応しており、Alpine Linux の設定に関わる文書も英語ではありますが大変充実しています。システムにストレージの容量をあまり割きたくない組み込み用途などに広く利用されているディストリビューションではないかと想像しています。

参考サイト

  1. index | Alpine Linux
  2. Alpine setup scripts - Alpine Linux

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村
このエントリーをはてなブックマークに追加

0 件のコメント: