RHEL7/CentOS7に後からX Window Systemを追加するには

普段はCLI一択なRHEL7/CentOS7にGUIが必要になったけれどGnomeはサイズが大きいので入れたくない。なるべくシンプルに行きたいのでX Window Systemだけを導入したい。というとってもニッチな需要に応えてみます。

X Window System導入
# yum groupinstall "X Window system"

Transaction Summary
================================================================================
Install  11 Packages (+265 Dependent packages)
Upgrade   1 Package  (+  7 Dependent packages)

Total download size: 171 M

Complete!
startxに失敗

X Window systemのインストールに成功したのでstartxでGUIに切り替えてみます。

# startx
xauth:  file /root/.serverauth.8241 does not exist
xauth:  file /root/.Xauthority does not exist
xauth:  file /root/.Xauthority does not exist


X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
Build Operating System:  3.10.0-693.17.1.el7.x86_64
Current Operating System: Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
Build Date: 29 January 2019  06:03:26PM
Build ID: xorg-x11-server 1.20.1-5.2.el7_6
Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  6 22:51:41 2019
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
VMware: No 3D enabled (0, Success).
xinit: connection to X server lost

waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.

一瞬デスクトップ画面が表示されるのですがすぐにCLIに戻ってしまいます。とりあえずこのエラーメッセージにヒントがあるはず。
ということでいろいろ調べてみたところこの方法で解決しました。

motifを導入しstartxが参照するファイルの記述を修正する
# yum install motif 
Dependencies Resolved

================================================================================
 Package                  Arch          Version               Repository   Size
================================================================================
Installing:
 motif                    x86_64        2.3.4-14.el7_5        base        1.4 M
Installing for dependencies:
 libXp                    x86_64        1.0.2-2.1.el7         base         30 k
 xorg-x11-xbitmaps        noarch        1.1.1-6.el7           base         37 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 1.5 M
Installed size: 4.2 M

Installed:
  motif.x86_64 0:2.3.4-14.el7_5

Dependency Installed:
  libXp.x86_64 0:1.0.2-2.1.el7      xorg-x11-xbitmaps.noarch 0:1.1.1-6.el7

Complete!

次にstartx(xinit)が参照するファイルの一つ/etc/X11/xinit/Xclientsと/etc/X11/xinit/xinitrcのバックアップを取ってから、ファイル内の/usr/bin/twm (Tom’s Window Manager)を/usr/bin/mwm (motif)に変更します。これはxinitが本来呼び出すtwmをRHEL7/CentOS7がサポートしていないため、motifで置き換えるというもの。

# cp /etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc.old
# cp /etc/X11/xinit/Xclients /etc/X11/xinit/Xclients.old

# vi /etc/X11/xinit/xinitrc
# vi /etc/X11/xinit/Xclients

変更前後をdiffに掛けるとこの通り。

#  diff -u /etc/X11/xinit/Xclients /etc/X11/xinit/Xclients.old 

. /etc/X11/xinit/Xclientso /etc/X11/xinit/Xclientsl /etc/X11/xinit/Xclientsd /etc/X11/xinit/Xclients 

--- /etc/X11/xinit/Xclients.old	2019-02-06 22:55:40.682686763 +0900
+++ /etc/X11/xinit/Xclients	2019-02-06 22:56:42.768296342 +0900
@@ -64,7 +64,7 @@
     if [ -x /usr/bin/firefox -a -f /usr/share/doc/HTML/index.html ]; then
 	/usr/bin/firefox /usr/share/doc/HTML/index.html &
     fi
-    if [ -x /usr/bin/twm ] ; then
-	exec /usr/bin/twm
+    if [ -x /usr/bin/mwm ] ; then
+	exec /usr/bin/mwm
     fi
 }

# diff -u /etc/X11/xinit/xinitrc /etc/X11/xinit/xinitrc.old. /etc/X11/xinit/xinitrco /etc/X11/xinit/xinitrcl /etc/X11/xinit/xinitrcd /etc/X11/xinit/xinitrc
--- /etc/X11/xinit/xinitrc.old	2019-02-06 22:56:04.185478676 +0900
+++ /etc/X11/xinit/xinitrc	2019-02-06 22:57:02.767454600 +0900
@@ -29,5 +29,5 @@
     [ -x /usr/bin/xsetroot ] && /usr/bin/xsetroot -solid '#222E45'
     [ -x /usr/bin/xclock ] && /usr/bin/xclock -geometry 100x100-5+5 &
     [ -x /usr/bin/xterm ] && xterm -geometry 80x50-50+150 &
-    [ -x /usr/bin/twm ] && /usr/bin/twm
+    [ -x /usr/bin/cwm ] && /usr/bin/cwm
 fi
startxを再実行

これで準備が整ったはずなのでstartxを実行します。実行後のメッセージを確認したいのでssh接続した状態でコマンドを実行しています。

# startx
xauth:  file /root/.serverauth.8345 does not exist


X.Org X Server 1.20.1
X Protocol Version 11, Revision 0
Build Operating System:  3.10.0-693.17.1.el7.x86_64
Current Operating System: Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
Build Date: 29 January 2019  06:03:26PM
Build ID: xorg-x11-server 1.20.1-5.2.el7_6
Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  6 22:58:16 2019
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
VMware: No 3D enabled (0, Success).

今度こそ成功しました。
しかしXしか導入・起動していないためデスクトップには何も表示されていません。

まずはデスクトップ上でマウス以外の操作を行えるようにしましょう。

# yum install xterm
Dependencies Resolved

================================================================================
 Package          Arch             Version                 Repository      Size
================================================================================
Installing:
 xterm            x86_64           295-3.el7               base           455 k
Installing for dependencies:
 libXaw           x86_64           1.0.13-4.el7            base           192 k
 libXpm           x86_64           3.5.12-1.el7            base            55 k

Transaction Summary
================================================================================
Install  1 Package (+2 Dependent packages)

Total download size: 702 k
Installed size: 1.8 M


Installed:
  xterm.x86_64 0:295-3.el7

Dependency Installed:
  libXaw.x86_64 0:1.0.13-4.el7           libXpm.x86_64 0:3.5.12-1.el7

Complete!
# startx

xtermが起動することでようやくX Window systemらしくなってきました。ずいぶんと懐かしい画面です。

折角なら時計も入れてみましょう。

# yum install xclock
Dependencies Resolved

================================================================================
 Package                Arch            Version             Repository     Size
================================================================================
Installing:
 xorg-x11-apps          x86_64          7.7-7.el7           base          307 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 307 k
Installed size: 772 k

Installed:
  xorg-x11-apps.x86_64 0:7.7-7.el7                                              

Complete!
# startx

更にらしくなってきた!

xclockだけのつもりでしたが「xorg-x11-apps」という名前でインストールされたのでいろいろ実行してみます。

Firefoxもインストールしていれば起動できるんですよ。日本語フォントを入れていないので壮大に文字化けしていますが彡(゚)(゚)

締め

ということで最小構成のRHEL7/CentOS7に”X Window system”+最低限のパッケージを導入してGUI環境を構築することができました。画面を見ていると20年前を思い出す、そんなホットな検証でした。

スポンサーリンク