ラベル Alpine Linux の投稿を表示しています。 すべての投稿を表示
ラベル Alpine Linux の投稿を表示しています。 すべての投稿を表示

2024-04-06

[Alpine Linux] Xfce4 デスクトップ環境の設定(改)

Alpine Linux は、セキュリティを向上させるため、ユーザー空間にあるすべてのバイナリを、スタックスマッシュ防止機能付きの位置非依存な実行可能ファイルとしてコンパイルしています。サイズが小さく、起動が速いため、ルーター、サーバー、NAS などのような組み込みデバイスの実ハードウェア上だけでなく、仮想マシン上でも、迅速な起動を必要とするコンテナ上でも使用されています。

Wikipedia より引用・翻訳、編集

Alpine Linux にインストールできるデスクトップ環境はいくつもありますが、Alpine Linux の大変コンパクトなサイズを活かすべく、最低限のデスクトップ環境を用意して日本語入力ができればとりあえず十分、という場合には Xfce4 のインストールがオススメです。

Alpine Linux のインストール方法は下記にまとめてあります。

さらにデスクトップ環境 Xfce4 の設定方法を下記にまとめました。

しかし、あとで読み直して見ると、OS のインストールが CUI ベースなのは仕方がないとしても、デスクトップ環境のインストール作業は面倒だと感じてしまいます。イマドキのデスクトップ用途の Linux ディストロのインストーラが GUI 化されていて、とっても簡単になっているせいでしょうか。

そこで、少しでも楽して Alpine Linux のデスクトップ環境を構築できるように、自動化できる部分をスクリプトにまとめてしまいました。

スクリプトを実行するための前提は以下のとおりです。

本記事は、下記の Alpine Linux が setup-alpine コマンドで既にインストールされているシステムでのデスクトップ設定例です。

 

alpine-standard-3.19.1-x86_64.iso

 

なお、bitwalk (Full name: Fuhito Suguri) というユーザーアカウントをインストール時に作成しています。ネットワークに接続されていることも前提になります。

なお、本スクリプトは CPU の種類に依存していませんが、動作確認ができたのは GNOME Boxes 仮想環境と古いノード PC(どちらも x86_64)だけです。

Xfce4 デスクトップ環境のインストールと設定

すでに Alpine Linux がインストールされており、ネットワークが利用可能なので、ここでは LAN 内の他の PC (fedora) から、Alpine Linux の作成しておいたユーザーアカウントへ ssh でログインして、su コマンドでスーパーユーザーになって作業することにします。

bitwalk@fedora:~$ ssh bitwalk@192.168.0.41
The authenticity of host '192.168.0.41 (192.168.0.41)' can't be established.
ED25519 key fingerprint is SHA256:vs5J+THCe+EUAN8pyktjVQ7Kd7K7uUdTytpivgnkzB4.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.41' (ED25519) to the list of known hosts.
bitwalk@192.168.0.41's password: 
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.

localhost:~$ su
Password: 
/home/bitwalk # 

git パッケージのインストールとスクリプトの入手

スクリプトを github から入手するため、まず git パッケージをインストールします。

/home/bitwalk # apk add git
fetch http://dl-cdn.alpinelinux.org/alpine/v3.19/main/x86_64/APKINDEX.tar.gz
(1/8) Installing ca-certificates (20240226-r0)
(2/8) Installing brotli-libs (1.1.0-r1)
(3/8) Installing c-ares (1.27.0-r0)
(4/8) Installing nghttp2-libs (1.58.0-r0)
(5/8) Installing libcurl (8.5.0-r0)
(6/8) Installing libexpat (2.6.2-r0)
(7/8) Installing pcre2 (10.42-r2)
(8/8) Installing git (2.43.0-r0)
Executing busybox-1.36.1-r15.trigger
Executing ca-certificates-20240226-r0.trigger
OK: 504 MiB in 91 packages
/home/bitwalk # 

github から git でスクリプトを clone します。

/home/bitwalk # git clone https://github.com/bitwalk123/alpine-jp.git
Cloning into 'alpine-jp'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 15 (delta 1), reused 6 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), done.
Resolving deltas: 100% (1/1), done.
/home/bitwalk # 

スクリプトの実行

clone した alpine-jp にディレクトリを移し、setup-xfce-jp を実行します。

/home/bitwalk # cd alpine-jp
/home/bitwalk/alpine-jp # ls
README.md      setup-xfce-jp
/home/bitwalk/alpine-jp # ./setup-xfce-jp

### Enable community repository

    ...
    ...

Executing desktop-file-utils-0.27-r0.trigger
OK: 1485 MiB in 414 packages
 * service lightdm added to runlevel default

### Add /etc/ibus-conf file

### Completed! Please reboot.
/home/bitwalk/alpine-jp # 

.bashrc の準備

スーパーユーザーを抜けて、/etc/ibus-conf を自分のアカウント内に .bashrc ファイルとしてコピーします。

/home/bitwalk/alpine-jp # exit
localhost:~$ ls /etc/ibus-conf
/etc/ibus-conf
localhost:~$ cp /etc/ibus-conf ~/.bashrc
localhost:~$ cat .bashrc
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
localhost:~$ 

再びスーパーユーザーになって再起動します。

localhost:~$ su
Password: 
/home/bitwalk # reboot

再起動後、問題が無ければ、以下のようなログイン画面が表示されます。

lightdm のログイン画面

Alpine Linux のインストール時に作成したユーザーアカウントが表示されているので、設定したパスワードを入力してログインします。

Xfce4 のデスクトップ画面

キーボードのレイアウト設定

日本語キーボードを使用している場合は、Xfce4 のデスクトップのメニュー Applications → Settings → Keyboard を選んで、キーボード設定画面を開きます。

Layout タブ画面で Use system defaults をオフにします。

Keyboard layout の +Add ボタンをクリックして Keyboard layout selection のリストから Japanese を選択して OK ボタンをクリックして Layout のリストに追加します。

もともとあった English (US) は選択して −Remove ボタンをクリックしてリストから削除します。

キーボード・レイアウトの設定

Keyboard のウィンドウを × Close ボタンで閉じるとレイアウトが反映されます。

IBus の設定

メニューから Applications → Settings → Session and Startup を起動し、Applications Autostart タブで /usr/bin/ibus-daemon -drx コマンドがログイン時に実行されるように登録します。

Session and Startup のウィンドウ / Applications Autostart タブ

メニューから Applications → Settings → IBus Preferences を起動し、Input Method のタブで、インプットメソッドに Anthy を追加します。

IBus Preferences のウィンドウ / Input Method タブ

以上で 漢字 キーで入力を切り替えて(_A → あ)、日本語入力・漢字変換ができるようになります。

まとめ

Xdce4 のデスクトップ環境の表示は英語のままですし、ロケールもいじっていません。またエラーが生じた場合の処理なども一切考慮していません。なにか不具合があれば可能なかぎり対処していくつもりです。

参考サイト

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

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

2021-12-28

Alpine Linux に GNOME を設定

Alpine Linux は、musl と BusyBox をベースとした Linux ディストリビューションです。セキュリティ・シンプルさ・リソース効率を重視するパワーユーザー向けに設計されています。Alpine Linux では grsecurity / PaX を適用した Linux カーネルを使用しており、全てのユーザ空間バイナリがスタックスマッシング保護 (stack-smashing protection, SSP) 付きの位置独立実行ファイル (PIE) としてコンパイルされています。

Wikipedia より引用、編集

軽量の Alpine Linux に、なぜ軽量でない GNOME デスクトップ環境をインストールしたいのか?

それは普段使っているデスクトップ環境が GNOME なので、Alpine Linux でも設定してみたかったからです。Linux ではデスクトップ環境を選択する自由がありますので、使いたいものを試せば良いのです。😄

Alpine Linux 3.15 に GNOME デスクトップ環境を設定した例

OUTLINE

基本インストール後の設定(準備)

本ブログの過去記事 [1] で Alpine Linux 3.15 のインストール方法を紹介していますが、setup-alpine コマンドによるインストールが終わり、再起動したところから、デスクトップ環境のための設定作業を始めます。その記事で説明している Xfce を設定したやり方とはちょっと異なる手順、方法を取っていますのでご注意ください。

Alpine Linux の基本インストール後の設定は、参考サイト [2] をベースにしています。

Alpine Linux 3.15 をインストール、再起動後にログインした状態

ユーザーアカウントの設定

本ブログの過去記事 [1] では、後にユーザーアカウントを作成しましたが、今回はあらかじめ adduser コマンドでユーザーアカウントを作成しておきます。

最初、ユーザーアカウントを作成していなかったために GNOME の GDM (GNOME Display Manager) のログイン画面が表示されず、当時は原因が判らずに見当違いな試行錯誤を繰り返して遠回りをしてしまいました。

ユーザーアカウントの作成例 (bitwalk)

GNOME の GDM は、利用可能なユーザアカウント(UID >= 1000 のアカウント)がない場合、起動しません。adduser コマンドで作成するユーザーアカウントの UID は、デフォルトで 1000 以上に設定されます。

リポジトリの追加

/etc/apk/repositories のコメント行の # を外してリポジトリを追加します。

localhost:~# vi /etc/apk/repositories
...
...
localhost:~# cat /etc/apk/repositories
#/media/cdrom/apks
http://sjc.edge.kernel.org/alpine/v3.15/main
http://sjc.edge.kernel.org/alpine/v3.15/community
http://sjc.edge.kernel.org/alpine/edge/main
http://sjc.edge.kernel.org/alpine/edge/community
http://sjc.edge.kernel.org/alpine/edge/testing
localhost:~# apk update
:
:
localhost:~# apk upgrade
:
:

編集後 apk update / apk upgrade を実行して、リポジトリの情報を更新およびパッケージの更新しておきます。

/etc/rc.conf の編集

/etc/rc.conf に、unicode="YES" の一行を加えます。

/etc/rc.conf に unicode="YES" の一行を追加

本ブログでは vi でテキストファイルを編集しています。

/etc/profile.d/locale.sh.sh の編集

参考サイト [2] では、/etc/profile.d/locale.sh を /etc/profile.d/locale.sh.sh にコピーして編集するように書かれているので、それに従います。

localgost:~# cp /etc/profile.d/locale.sh /etc/profile.d/locale.sh.sh
localgost:~# vi /etc/profile.d/locale.sh.sh

環境変数 LANG を C から ja_JP.UTF-8 に変更します。

/etc/profile.d/locale.sh.sh の編集

musl-locales のインストール

以下のように、musl-locales をインストールします。

localgost:~# apk add musl-locales
...

マニュアル文書のインストール

以下のように、マニュアル文書をインストールします。

localgost:~# apk add lang
...
localgost:~# apk add man-pages
...
localgost:~# apk add mandoc
...
localgost:~# apk add mandoc-apropos
...
localgost:~# apk add docs
...

setup-xorg-base コマンドの実行

グラフィカルな環境を利用するために setup-xorg-base コマンドを実行して、基本パッケージをインストールします。

localgost:~# setup-xorg-base
...

日本語フォントのインストール

あらかじめ、日本語フォントをインストールしておきます。

localgost:~# apk add font-noto-cjk font-noto-cjk-extra
...

デスクトップ環境 GNOME の設定

参考サイト [3] に説明されている内容をベースに設定をしました。

GNOME 関連パッケージのインストール

コアアプリを含む GNOME 関連パッケージをインストールします。

localgost:~# apk add gnome gnome-apps-core
...

GDM の起動

念のため reboot で再起動した後、root でログインし、GDM を起動します。問題がなければグラフィカル・ログインの画面が表示されます。

localgost:~# rc-service gdm start
GDM のグラフィカル・ログインの画面

Linux User があらかじめ作っておいたユーザーアカウントです。パスワードを入力すると無事、ログインできました。

GNOME デスクトップ画面(はじめてのログイン)

準備段階でロケール設定済みで、日本語フォントもインストールしてあるので、最初から日本語表示になっています。

GNOME のアプリ一覧

GDM の自動起動設定

GDM の起動を確認できましたので、「端末」を起動して su コマンドでルートになり、自動起動するように登録しておきます。

localgost:~$ su
Password:
localgost:/home/bitwalk# rc-update add gdm
GDM が自動起動するように登録

Anthy のインストールと設定

日本語の表示ができても、まだ入力ができません。Alpine Linux で利用できる日本語変換システム Anthy は、インプットメソッドフレームワーク IBus と組み合わせて利用できるようになっているため、ibus-anthy パッケージ(と関連するパッケージ)をインストールします。

localgost:/home/bitwalk# apk add ibus-anthy
...

ibus-anthy と関連パッケージをインストールした後、再起動してログインし直し、GNOME の「設定」→「Keyboard」→「入力ソース」で 日本語 (Anthy) と Japanese を選択します。

入力ソースの設定

⊞ Win + Space で、入力ソース(日本語 (Anthy) ⇔ Japanese)を切り替えます。

入力ソースの切り替え

入力ソースが 日本語 (Anthy) の時は 漢字 キーでひらがな(変換)とアルファベット入力を切り替えられます。ひらがなから漢字へは SPACE キーで変換します。

テキストエディター (gedit) で日本語入力・変換をした例

Flatpak の利用

Flatpak は、Linux デスクトップ向けのソフトウェアデプロイメント・パッケージ管理・アプリケーション仮想化を行うユーティリティソフトウェアです。ユーザーがアプリケーションとシステムを分離して実行することができるサンドボックスを提供します。

Wikipedia より引用、編集

Flatpak は特定のデスクトップ環境のためのソフトウェアではありませんが、多くの GTK+ アプリが利用できるという点では GNOME との相性が良いので、デスクトップアプリは極力 Flatpak のものを使ってみることにします。

Alpine Linux でも flatpak パッケージが利用できるので、インストールして Flatpak のアプリを利用してみます。

flatpak のインストールとリポジトリの設定

まず、apk コマンドで flatpak パッケージをインストールします。

localhost:~$ su
Password: 
localhost:/home/bitwalk# apk add flatpak
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
(1/6) Installing ostree (2021.5-r0)
(2/6) Installing ostree-doc (2021.5-r0)
(3/6) Installing flatpak (1.12.2-r0)
Executing flatpak-1.12.2-r0.pre-install
Executing flatpak-1.12.2-r0.post-install
(4/6) Installing flatpak-libs (1.12.2-r0)
(5/6) Installing gnome-software-plugin-flatpak (3.38.2-r1)
(6/6) Installing flatpak-lang (1.12.2-r0)
Executing busybox-1.34.1-r5.trigger
Executing dbus-1.12.20-r4.trigger
Executing mandoc-apropos-1.14.6-r1.trigger
OK: 3141 MiB in 1066 packages
localhost:/home/bitwalk# 

続けて flathub のリポジトリ情報を追加します [4]。

localhost:/home/bitwalk# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Note that the directories 

'/var/lib/flatpak/exports/share'
'/root/.local/share/flatpak/exports/share'

are not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.

localhost:/home/bitwalk# 

再起動してログインし「ソフトウェア」を起動すると、Flatpak のアプリをインストールできるようになります。

GNOME の「ソフトウェア」

Google Chrome のインストールと設定

Google Chrome の flatpak パッケージも Flathub で利用できますが、本記事を書いている時点ではまだ β版扱いですので、別途 Flathun の β版パッケージがあるレポジトリ情報を追加します。さらに Google Command もコマンドでインストールしてしまいます。

localhost:/home/bitwalk# flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

Note that the directory 

'/root/.local/share/flatpak/exports/share'

is not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.

localhost:/home/bitwalk# flatpak install flathub-beta com.google.Chrome

Note that the directory 

'/root/.local/share/flatpak/exports/share'

is not in the search path set by the XDG_DATA_DIRS environment variable, so
applications installed by Flatpak may not appear on your desktop until the
session is restarted.

Looking for matches…
Required runtime for com.google.Chrome/x86_64/beta (runtime/org.freedesktop.Platform/x86_64/21.08) found in remote flathub
Do you want to install it? [Y/n]: y

com.google.Chrome permissions:
    ipc              network            cups                    pulseaudio
    wayland          x11                devices                 file access [1]
    dbus access [2]  bus ownership [3]  system dbus access [4]  tags [5]

    [1] host-etc, xdg-documents, xdg-download, xdg-music, xdg-pictures,
        xdg-run/dconf, xdg-run/pipewire-0, xdg-videos, ~/.config/dconf:ro,
        ~/.config/kioslaverc
    [2] ca.desrt.dconf, org.freedesktop.FileManager1,
        org.freedesktop.Notifications, org.freedesktop.secrets,
        org.gnome.SessionManager
    [3] org.mpris.MediaPlayer2.chromium.*
    [4] org.freedesktop.Avahi, org.freedesktop.UPower
    [5] proprietary


        ID                                  Branch Op Remote       Download
 1. [✓] org.freedesktop.Platform.GL.default 21.08  i  flathub      130.9 MB / 131.2 MB
 2. [✓] org.freedesktop.Platform.Locale     21.08  i  flathub      142.5 MB / 325.0 MB
 3. [✓] org.freedesktop.Platform.openh264   2.0    i  flathub        1.5 MB / 1.5 MB
 4. [✓] org.freedesktop.Platform            21.08  i  flathub      152.5 MB / 198.9 MB
 5. [✓] com.google.Chrome                   beta   i  flathub-beta  95.0 MB / 95.5 MB

Installation complete.
localhost:/home/bitwalk# 

Google Chrome の最初の起動では、下記のページが表示され、さらに警告ダイアログが表示されます。

Flatpak 版 Google Chrome を最初に起動した時に表示される画面

これはローカルの特定領域に書き込む権限がないという警告です。

警告ダイアログ

とりあえず、該当する .local/share/applications と .local/share/icons(mkdir コマンドで作成後)に、chmod 766 で権限を付与しました。これが適切なアクセス権限になっているかどうかは自信がありません。🙇

.local/share/ 以下のアクセス権限

Google のアカウントで同期して、いつもの Google Chrome のブックマークにアクセスできるようになりました。

その他

sudo の利用

su コマンドでスーパーユーザになるのも良いのですが、sudo コマンドにすっかり慣れてしまったので、やはり sudo パッケージをインストールすることにしました。

localhost:~$ su
Password: 
localhost:/home/bitwalk# apk add sudo
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.15/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
(1/2) Installing sudo (1.9.8_p2-r1)
(2/2) Installing sudo-doc (1.9.8_p2-r1)
Executing busybox-1.34.1-r6.trigger
Executing mandoc-apropos-1.14.6-r1.trigger
OK: 3168 MiB in 1075 packages
localhost:/home/bitwalk#

visudo コマンドで、sudoers の設定を編集します。

localhost:/home/bitwalk# visudo

編集中、下記が # でコメントアウトされている行を探し、# を外します。

%wheel ALL=(ALL) ALL

編集後、自分のアカウントを、グループ wheel に追加します。

localhost:/home/bitwalk# addgroup bitwalk wheel
localhost:/home/bitwalk#

再起動後、sudo コマンドが使えることを確認します。

まとめ

Alpine Linux はデスクトップ用途に特化していないので、デスクトップ用途で使おうとすると、追加の設定が必要で、慣れていないと面倒なようにも感じますが、それでも文書は良く整備されており、それに従ってインストールと設定をすれば、ちゃんとデスクトップ環境を利用できるようになります。

仮想環境で何回も繰り返し確認していると、やり方に慣れてきます。他のデスクトップ用途のディストロのインストーラに比べると確かに手間は掛かりますが、けっして煩雑なやり方ではありません。

GNOME は軽量なディスクトップ環境ではありませんが、その代わり、デスクトップ用途に必要なものが揃っています。日本語もロケールを設定してフォントをインストールしておけば、日本語変換システム (Anthy) をインストールするだけですぐに使えるようになります。さらに Flatpak を利用することにより、Linux ディストロに依らず、同じアプリを利用できるようになります。

極論を言えば、こうなると、もうどの Linux ディストロを使っても、デスクトップ用途では違いがなくなってしまいます。それでも、開発環境を用意するとなれば Linux のディストロによる違いが出てきます。その辺の違いを、もうすこし使いながら調べます。

参考サイト

  1. bitWalk's: Linux ディストロ探訪(27) 〜 Alpine Linux 〜 [2021-12-17]
  2. Installation - Alpine Linux
  3. Gnome - Alpine Linux
  4. Flatpak—the future of application distribution

 

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

2021-12-22

Alpine Linux でミニマリストを愉しむ

Alpine Linux は、musl と BusyBox をベースとした Linux ディストリビューションです。セキュリティ・シンプルさ・リソース効率を重視するパワーユーザー向けに設計されています。Alpine Linux では grsecurity / PaX を適用した Linux カーネルを使用しており、全てのユーザ空間バイナリがスタックスマッシング保護 (stack-smashing protection, SSP) 付きの位置独立実行ファイル (PIE) としてコンパイルされています。

Wikipedia より引用、編集
Alpine Linux をインストールした HP Stream 11

実機にインストール

本ブログ記事 [1] にまとめたインストール方法にしたがって、古いテスト機に Alpine Linux をインストールをしてみました。インストール時に WiFi を設定できるのかが判らなかったので、念の為、有線ネットワークを USB に変換して接続した上のインストールを始めました。幸い、WiFi のデバイスが認識されて、インストール時に WiFi の設定ができてしまいました。

Alpine Linux インストール時の WiFi 設定

デスクトップ環境は、仮想マシンでインストール実績がある Xfce4 にしました。

日本語入力ができるようになるまで設定を進めましたが、端末エミュレータ以外、アプリがインストールされていないので、とりあえず下記をインストールしました。

ちなみに参考サイト [2] に、各国言語対応させる方法が説明されています。たしかに、環境変数 LANG を ja_JP.UTF-8 にして説明されている通りに処理すると Xfce4 のメニュー表示が日本語に変わるので、さらに快適に使えそうです。しかし、残念ながら自分の環境では Anthy が働かなくなってしまいました。そういうわけで、原因が判るまでは、しばらく C.UTF-8 のままで使います。

ストレージが 64GB しかない環境でも、余計なアプリケーションがインストールされていなければ快適に使えそうです。しばらくは用途を開拓します。

参考サイト

  1. bitWalk's: Linux ディストロ探訪(27) 〜 Alpine Linux 〜 [2021-12-17]
  2. Installation - Alpine Linux

 

 

Alpine Linux をコンテナで使う話題です。

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

2021-12-17

Linux ディストロ探訪(27) 〜 Alpine Linux 〜

Alpine Linux のレビュー記事 [1] を読んで、軽量な Linux であることが判りましたが、なにやら他のディストロとは違う特徴があるようです。コンテナでなくともフツーにインストールする事もできるようなので、GNOME Boxes の仮想マシンにインストールしてみました。

Alpine Linux のデスクトップ画面 (Xfce4)

OUTLINE

Alpine Linux とは

Alpine Linux は、musl と BusyBox をベースにした Linux ディストリビューションで、セキュリティ、シンプルさ、リソース効率を重視して設計されています。 init システムに OpenRC を採用し、すべてのユーザー空間のバイナリを、スタック破壊保護対策 (Stack-Smashing Protection, SSP) を施した位置非依存の実行ファイルとしてコンパイルしています。

特徴

  • 独自のパッケージ管理システムとして APK を採用。
  • RAM ディスクオペレーティングシステムとしてインストールすることができる。
  • ユーザ空間全てでバイナリがスタックスマッシング保護付きの位置独立実行ファイルとしてコンパイルされていて、バッファオーバーフローの影響を軽減。
  • デフォルトで DMVPN を利用して効率的なメッシュ化 VPN が利用可能なパッチを含む唯一の Linux ディストリビューション。
  • Xen の最新版に対応、KVM にも対応。
  • ベースシステムが 4 - 5 MB(カーネルを除く)に収まるように設計。コンテナは 8 MB 以内に収まり、最小インストールには 130 MB が必要。
  • デバイスの設定を行うためのアプリケーションに Alpine Configuration Framework (ACF) を使用。
  • 標準 C ライブラリは GNU C ライブラリとのバイナリ互換性がある musl を採用。
  • init としてシンプルかつ軽量な OpenRC を採用。
Wikipedia より引用・翻訳、編集

インストール

Alpine Linux のダウンロードサイト [2] から、STANDARD の x86_64 クリックして iso イメージ alpine-standard-3.15.0-x86_64.iso をダウンロードしました。これを、Linux (Fedora Linux 35) の GNOME Boxes 仮想化マシン上で起動しました。

ログインとインストールコマンド

ログインは root と入力します。パスワードはありません。

インストールには setup-alpine コマンドを使います。

setup-alpine コマンドには -q オプションで簡潔にインストールする方法もありますが、ここではなにもオプションを付けずに実行しました。

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

ネットワーク関係の設定はデフォルトのまま 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]Enter
Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]Enter
Do you want to do any manual network configulation? (y/n) [n]Enter
:
:

ルートのパスワードとタイムゾーン

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] Asia
What sub-timezone of 'Asia' are tou in? ('?' for list) Tokyo

プロキシサーバの設定は必要ないので、そのまま Enter を押します。

HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]Enter

インストール

Alpine Linux のリポジトリサーバーを指定します。画面がスクロールしてしまって見えませんが、とりあえずデフォルトの設定 [1] のまま Enter を押します。

Enter mirror number (1-57) or URL to add (nr r/f/r/done) [1]Enter

SSH サーバーの設定はデフォルトのまま openssh としました。

Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]Enter

インストール先のストレージは sda、使い方を sys としてファイルシステムを作成します。

Available disks are:
  sda   (21.5 GB ATA      QEMU HARDDISK   )
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
The following disk is selected:
  sda   (21.5 GB ATA      QEMU HARDDISK   )
How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys
WARNING: The following disk(s) will be erased:
  sda   (21.5 GB ATA      QEMU HARDDISK   )
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
:
:

インストール終了後、再起動します。

Installation is complete. Prease reboot.
localhost:~# reboot

再起動

再起動後、設定した root のパスワードでログインできることを確認します。

インストール後、df コマンドでストレージの使用状況を見ると、システムが使用している領域は 839MB になっていました。

ふだんは Fedora Linux を使っていますので、試しに Fedora Linux 35 Server Edition を何もカスタマイズせず、素のままでインストールしたときのストレージの使用サイズを確認してみました。下記にあるように、システムが使用している領域は 1.6GB あります。単純な比較はできませんが、Alpine Linux がいかにコンパクトにできているかがわかります。

Fedora Linux 35 Server Edition をインストールした後のストレージの使用状態

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 には shutdown コマンドがありません。その代わり、シャットダウンには poweroff コマンドを使います。

デスクトップ環境

Alpine Linux で利用できるデスクトップ環境の選択肢はいくつもありますが、ここでは Xfce4 を使えるようにします。

Xfce4 のインストールと設定

参考サイト [5] によると、ユーザーアカウントを作成してからとありますが、最初に Xfce4 を使えるようにしてしまいます。

まず、グラフィカルな環境を設定し、基本的な Xorg パッケージと udev をインストールします。

localhost:~# setup-xorg-base

次に、Xfce4 を利用するための最低限のパッケージをインストールします。

localhost:~# apk add xfce4 xfce4-terminal xfce4-screensaver lightdm-gtk-greeter 

dbus のサービスを開始します。

localhost:~# rc-service dbus start

dbus のサービスが起動時に自動的に実行されるように登録します。

localhost:~# rc-update add dbus

lightdm ディスプレイマネージャのサービスを起動します。

localhost:~# rc-service lightdm start

サービスが正常に起動すると下記のようなログイン画面が表示されますので、root でログインします。

Xfce4 のデスクトップ画面が表示されれば、設定は成功です。

lightdm ディスプレイマネージャのサービスが起動時に自動的に実行されるように登録します。

localhost:~# rc-update add lightdm

ユーザがシャットダウンや再起動ができるようにパッケージを追加します。まだユーザーアカウントを作っていないので、機能は未確認です。

localhost:~# apk add elogind polkit-elogind

再起動してディスプレイマネージャが起動することを確認します。

localhost:~# reboot

再起動後、無事ディスプレイマネージャーが起動することを確認できました。

ちなみに、デスクトップ環境をインストールして 1.2GB しかストレージ領域を消費していないのは立派です。

日本語入力

参考サイト [6], [7] を参考に、日本語入力をできるように設定しました。若干、試行錯誤をしてしまったので、内容に抜けや無駄があるかもしれません。🙇

デスクトップ環境では日本語キーボードのレイアウトになっていませんので、キーボードのレイアウトを設定するプログラムをインストールして、レイアウトを jp に設定します。

localhost:~# apk add setxkbmap
:
:
localhost:~# setxkbmap jp

日本語入力システムには Anthy を利用できますが、開発用の edge リポジトリからダウンロードしてインストールする必要がありますので、vi などで /etc/apk/repositories を編集して # を外します。

localhost:~# vi /etc/apk/repositories
...
...
localhost:~# cat /etc/apk/repositories
#/media/cdrom/apks
http://sjc.edge.kernel.org/alpine/v3.15/main
http://sjc.edge.kernel.org/alpine/v3.15/community
http://sjc.edge.kernel.org/alpine/edge/main
http://sjc.edge.kernel.org/alpine/edge/community
http://sjc.edge.kernel.org/alpine/edge/testing
localhost:~# apk update
:
:
localhost:~# apk upgrade
:
:

編集後 apk update / apk upgrade を実行して、リポジトリの情報を更新およびパッケージの更新しておきます。

Anthy を利用するためのパッケージをインストールします。

localhost:~# apk add ibus-anthy dbus-x11 zenity

日本語フォントをインストールします

localhost:~# apk add font-noto-cjk font-noto-cjk-extra

~/.bashrc に以下の行を加えます。

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

※ Alpine Linux のデフォルトのコマンドラインシェルは ash ですが、bash の設定ファイル名で問題はありませんでした。

メニューから Applications → Settings → Session and Startup を起動し、Applications Autostart タブで /usr/bin/ibus-daemon -drx コマンドがログイン時に実行されるように登録します。

メニューから Applications → Settings → iBus Preferences を起動し、Input Method のタブで、インプットメソッドに Anthy を追加します。

General タブにある、インプットメソッドを切り替えるショートカットの指定は <Super>space になっていますが、これは ⊞ Win + Space のことで、これで Anthy の日本語変換システムを切り替えます。⊞ Win キーを使えるので変更はせずこのまま使うことにします。

この時点で、日本語を入力できるようになりますが、ibus-daemon が自動実行されることを確認するため、システムを再起動、ログインし直して、確かに日本語入力ができるようになっていることを確認します。

⊞ Win + Space で、Anthy の日本語変換システムを切り替えます。

Ctrl + J で、画面上のパネル右側にある表示が _A から あ に変わり、日本語変換できるモードになります。なお、漢字 キーでも同様に切り替えられました。

インターネットブラウザ

最低限のデスクトップ環境が整いましたが、インターネットブラウザがインストールされていないので、Chromium をインストールしました。

localhost:~# apk add chromium

Chromium のインストール後、ドックランチャーのブラウザアイコンをクリックしても、エラーが出て起動しません。

ターミナル上でコマンドを入力して起動してみました。

localhost:~# chromium-browser

root アカウントでは --no-sandbox オプションを付加しないと起動できないようですので、付加して起動しました。

localhost:~# chromium-browser --no-sandbox

何やらエラーが出ていますが、ひとまず Chromium を起動できました。

ユーザーアカウント

ここへきて、ようやくユーザーアカウントを追加することにしました。

localhost:~# adduser bitwalk
:
:

作成したアカウントでログインして、~/.bashrc ファイルへの情報追加や ibus-daemon の自動起動など、パッケージのインストール以外の設定を繰り返します。

デスクトップ環境の設定や日本語環境の整備はまだまだやるべきことがあるのですが、Alpine Linux のデスクトップ環境に関する詳細は、あらためてまとめる予定です。

まとめ

項目 説明
ディストリビューション Alpine Linux
プロジェクトサイト index | Alpine Linux
デスクトップ環境 Xfce Desktop, LXDE, LXQT, KDE Plasma, Gnome, MATE, Openbox, Dwm, Awesome Window Manager
対応プラットフォーム aarch64, armhf, armv7, ppc64le, s390x, x86, x86_64
パッケージ管理 apk-tools (apk)
日本語入力 ibus-anthy
寸評

ミニマリストであることを追求するために、多くの Linux ディストロが採用している GNU C ライブラリ (glibc) を使用していない独自路線を歩むディストロです。軽量であるため、組み込み用途に向いていると思われますが、デスクトップ環境も選択肢が多く用意されています。

ニーズがあるかどうかをあまり考えないことにして、このディストロのデスクトップ環境についてあれこれ試してみたいと思います。

参考サイト

  1. Alpine Linuxの最新ユーザーレビュー・評判を紹介!価格や製品の特徴、導入メリットなども掲載中【ITreview】IT製品のレビュー・比較サイト
  2. downloads | Alpine Linux
  3. Package management - Alpine Linux
  4. Alpine Linux Init System - Alpine Linux
  5. Xfce Desktop - Alpine Linux
  6. Enable Community Repository - Alpine Linux
  7. VirtualBoxにAlpine Linuxをインストールする | gatsby-starter-blog++ [2021-01-15]
  8. Alpine Linux 3.13 インストール、日本語入力 - Qiita [2021-01-15]
  9. Desktop environments and Window managers - Alpine Linux

 

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