Z.OOL.ネット信託統治領 はてな諸島

こちらは "Z.OOL.ネット信託統治領 はてな諸島" です。

Debian noroot 環境に MATE を導入する

漸く、主力の携帯端末の復旧で各種技術案件が
再開出来て、若干安堵する。
しかし、最近は、随分と酷寒の状況が続いたので
身体的な疲労感と全身倦怠感が蓄積している。


[BGM]:"Butterfly" TOWA TEI with Ayumi Tanabe & Vivien Sessoms

本稿について

本稿は、技術的事項についての速報的で簡易な短信についての Z.OOL.ネット信託統治領 Qrunch 諸島からのクロス投稿です。

本稿は、以下の Qrunch 諸島の投稿から御覧になれます。どうか御了承下さい。

z80oolong.qrunch.io

追記 (2019/02/28)

MATE 環境標準のスクリーンセイバーが起動した場合の対処法について追記しました。

追記 (2019/03/04)

この度、本稿を大幅に加筆及び修正した上で、 ”Qiita 半島” に投稿しました。今後は、本稿の追記及び訂正等は、以下の Qiita 半島の投稿において行いますので、どうか御了承下さい。

qiita.com

はじめに

Debian noroot とは、 Android OS 上において root 権限を取ることなく Debian 環境を構築するためのアプリケーションです。

CPU の性能とメモリ容量が潤沢にある Android OS 端末であれば、 Debian noroot の導入によって Android OS 端末上で非常に軽快な Debian 環境を実現することが出来ます。

本稿では、 Debian noroot 環境において、デフォルトの統合デスクトップ環境の Xfce4 に代えて、 Linux ディストリビューションの1つである Linux MINT において採用されている統合デスクトップ環境である MATE を導入する手法について述べます。

MATE の導入

軽量の統合デスクトップ環境である MATE は、コマンドライン上から apt-get コマンドを用いて、以下のようにして導入することが出来ます。

 # apt-get install task-mate-desktop

設定の変更

パッケージ task-mate-desktop をインストールした後は、以下のように、Debian noroot 環境の起動スクリプトの一つであるシェルスクリプト /startx.sh において、 dbus-launch 経由で xfce-session コマンドを起動している行を mate-session コマンドを起動するように書き換えます。

...
rm -f /var/run/dbus/pid
fakeroot-tcp /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin dbus-daemon --system

sleep 1
#dbus-launch --exit-with-session sh -c 'xfce4-session ; setsid sh -c "cd /proc/ ; for f in [0-9]* ; do [ \$f = \$\$ ] || kill -9 \$f ; done"' &
dbus-launch --exit-with-session sh -c 'mate-session ; setsid sh -c "cd /proc/ ; for f in [0-9]* ; do [ \$f = \$\$ ] || kill -9 \$f ; done"' &

wait

MATE の起動

以上で述べた設定変更を行った後に Debian noroot 環境を再起動すると、以下の画像のように MATE を起動することが出来ます。

(Desktop MATE)

なお、 MATE 環境を使用している時に一定時間内に各種操作を行わなかった場合、 MATE 環境標準のスクリーンセイバーが起動し、スクリーンセイバーを解除する際にパスワードを求められる状況が発生する場合があります。

この時、予め MATE 環境の導入直後に、 passwd コマンドによってユーザーのパスワードを以下の通りにユーザー以外に知り得ないものに変更しておくことで、そのパスワードによってスクリーンセイバーの解除を行うことが可能になります。

なお、本稿においてはユーザ名が u0_a200 である場合について示します。

  $ env LANG=C LC_ALL=C sudo passwd u0_a200
  Changing password for u0_a200
  New UNIX password:            # (ユーザ自身以外に知り得ないパスワードを入力)
  Retype new UNIX password:     # (前に入力したパスワードを再入力)
  passwd: all authentication tokens updated successfully
  $