まだプログラマーですが何か?

プログラマーネタ中心。たまに作成したウェブサービス関連の話も https://twitter.com/dotnsf

タグ:x

IBM LinuxONE(メインフレーム版 Linux)の挑戦シリーズです。今回は RHEL6.x のインスタンス上に X Window のデスクトップ環境を導入してみます。加えてこのデスクトップ環境にリモートアクセスできるよう VNC サーバーも合わせて導入します:
2017012201


まず前提条件として LinuxONE の環境が必要になりますが、今回は「無料で最大 120 日間クラウド上の LinuxONE インスタンスが使える」という IBM LinuxONE コミュニティクラウドの環境を使って RHEL 6.x のサーバーを作り、その上に今回の環境構築を行うことにします。そこまでの環境構築手順についてはこちらを参照ください:
IBM LinuxONE コミュニティクラウドを使う(2017年1月版)


さて、LinuxONE と言っても RHEL(RedHat Enterprise Linux) であることには変わりありません。ということは普通は以下のコマンドで X Window のデスクトップ環境が導入できることをご存知の人も少なくないと思います:
# yum groupinstall "Desktop"

ということは LinuxONE でも同じコマンドを実行するだけでよいのでは・・・と思うかもしれませんが、残念ながら LinuxONE の RHEL6.x では yum は動きますが、グループ情報が登録されておらず、"groupinstall" コマンドが使えない模様でした(赤字および青字が yum groupinstall コマンド実行後の出力結果です):
# yum groupinstall "Desktop"
Loaded plugins: product-id, refresh-packagekit, search-disabled-repos, security,
              : subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Setting up Group Process
RHEL67                                                   | 3.0 kB     00:00
rhel67optional                                           | 2.9 kB     00:00
rhel67supp                                               | 2.9 kB     00:00
Warning: Group Desktop does not exist.
Error: No packages in any requested group available to install or update

ではどうするか? 要は「groupinstall がコマンドが使えないなら、install コマンドを使えばいいじゃない」というわけで、yum groupinstall コマンドで実行されるのと同じコマンドを yum install コマンドで実行してしまいましょう。この件について詳しくはこちらのブログエントリで紹介しているので、興味がある方はこちらも参照ください:
yum の groupinstall でインストールされるパッケージを確認する


具体的には以下のコマンドを実行して、"Desktop" グループに含まれるはずの個別パッケージをまとめてインストールするよう指定します:
# yum install NetworkManager NetworkManager-gnome alsa-plugins-pulseaudio at-spi control-center dbus gdm gdm-user-switch-applet gnome-panel gnome-power-manager gnome-screensaver gnome-session gnome-terminal gvfs-archive gvfs-fuse gvfs-smb metacity nautilus notification-daemon polkit-gnome xdg-user-dirs-gtk yelp control-center-extra eog gdm-plugin-fingerprint gnome-applets gnome-media gnome-packagekit gnome-vfs2-smb gok openssh-askpass orca pulseaudio-module-gconf pulseaudio-module-x11 vino

ついでというわけではないのですが、X Window のデスクトップを導入しても、ネットワーク越しにデスクトップが利用できないと意味がありません。というわけで RHEL6.x で使える VNC サーバーとして TigerVNC を導入することにします:
# yum install tigervnc-server

なお、TigerVNC の導入そのもの(インストール後の設定方法含む)について、こちらで詳しく紹介しているので一度参照ください:
CentOS に VNC サーバーを導入する


TigerVNC サーバー導入&設定後に再起動し、VNC ビューワで IP アドレスとポート番号を指定してアクセスすると、LinuxONE に導入された X Window のデスクトップ環境にアクセスできます:
2017012202


これで LinuxONE をデスクトップとして使ったり、GUI 必須のアプリケーションが利用できるようになりますね。
 

値段が高かったこともありますが、初めて買ったパソコンは結構記憶に残っているものですよね。自分の場合は NEC PC-9801 DA でした。

普段はこれに DOS や Windows を入れて使っていたのですが、当時アスキーから発売されていた MINIX 1.5(当時は 1.2だったかも)も使っていました。初めて使う UNIX でしたが、「カーネルやユーティリティのソースコードが手元にあって、自分でコンパイルする」などはとても新鮮でした。

後に MINIX は BSD ライセンスでオープンソースとなり、その後も進化を続けていて、現在の最新バージョンは 3.2.1 になっています。 当時は(少なくとも標準では)なかった X Window や TCP/IP ドライバも付属しており、久しぶりにインストール&セットアップして遊んでみました。その導入記です:


インストール

まずは導入メディアのダウンロードです。メインページのダウンロードサイトから最新版の ISO イメージをダウンロードします:
2014021501

ダウンロードしたファイルは bz2 形式で圧縮されています。この形式に対応したアーカイブツールで解答して、640MB 程の ISO ファイルを取り出します。この ISO ファイルを元に(仮想環境であればこの ISO からブートして、実機環境であれば CD に焼くなどしてから CD ブートして)インストールを開始します。

まず起動画面です。ここは特に何もしなければ10秒後に 1 を選択したと判断されて MINIX 3 の起動に進みます。何かキーを押して止めてしまった場合も 1 を選択して MINIX 3 の起動へ進んでください:
2014021502

起動が終わるとログイン画面になります。ログインプロンプトの直前に「 root でログインして setup コマンドを実行しろ」と書かれているのでそのようにします。root でログイン(パスワードなし)して、setup と入力します。
2014021503

セットアップを実行するとつらつらとメッセージが出てきます。こんなことが書かれています:
 1) ブランクスクリーンになったら CTRL+F3 で "Software Scrolling" を選ぶ
 2) 間違えた場合は CTRL+C で作業を中断して、最初からやり直す
 3) [y] のように書かれているときは Enter キーで y が選択されたことになる
 4) コロン(:) が表示されているときは Enter キーで先にすすむ
というわけで、まずは Enter キーで先に進みます:
2014021504

Step 1: まずはキーボードの種類を指定します。日本語キーボードであれば japanese と入力します:
2014021505

Step 2: は何もすることがなく飛ばされ、Step 3: パーティショニングの指定。ここは設定しても構いませんが、特に事情がなければそのまま Enter で automatic とします:
2014021506

Substep 3.1: MINIX をインストールするハードディスクを選択します。ハードディスクが1つしかないような状況であれば(大抵がそうでしょうけど)、Enter キーで 0 番目を選択します:
2014021507

Substep 3.2: 選択した領域をそのまま使うか、と聞かれているので Enter で [0] を選択
2014021508

Substep 3.3: この設定でいいか、と聞かれているので yes と入力します:
2014021509

Step 4: は再インストールではないので何もせず先に進み、Step 5: ホームディレクトリのサイズをMBで指定します。例えば 4GB にする場合は 4096 と入力します。"OK?" と聞かれるのでそのまま Enter で先に進みます:
2014021510

 Step 6: ディスクのブロックサイズの指定。デフォルトの 4KB のままで問題ないのでそのまま Enter :
2014021511

Step 7: ファイルのコピーが進みます。しばらく待ちます・・・:
2014021512


Step 8: イーサネットワークカードのチップを選択します。自動検知されたカードには * マークがついています。* がついていればそのまま Enter 、ついてなければ該当チップを選択(あるいは 0 のネットワークなしを選択)します:
2014021513

ネットワークの設定方法を指定します。DHCP であればそのまま Enter キーを:
2014021514

プロンプトが戻ってセットアップ完了です。変更を反映させるため、一度
# shutdown -r now 
と入力して、再起動します。
2014021515

ネットワークが有効になった状態で再起動完了。これでインストール作業は一応完了です:
2014021516


セットアップ

インストールは完了して、一応このままでも使いはじめることはできますが、セットアップして使いやすくしましょう。

まずは root でログインし、デフォルトで設定されていないパスワードを設定しておきます:
# passwd

次にパッケージ管理機能(pkgin)を使ってモジュールを最新状態に更新しておきます:
# pkgin update 
と入力してパッケージ管理DBを最新状態に更新しておきます:
2014021517

とりあえず ssh を入れてみましょう。
# pkgin install openssh

Proceed(「進めますか」)? と聞かれるので y を入力してインストールします。インストールが完了すると ssh コマンドや sftp コマンドなどが使えるようになります:
2014021518


同様にして vim をインストールしてみます。vi よりはやはり vim のほうが便利かな、と:
# pkgin install vim


次は X Window をインストールしてみます。これも pkgin コマンドでインストールできますが、今回はダウンロードサイズが大きいこともあり、かなり時間がかかります。インストールが完了するまでひたすら待ちます:
# pkgin install x11

2014021519


インストールが完了したら xdm コマンドで X Window を起動します:
# xdm
X Window のログイン画面が出るのでここでユーザー ID(root) とパスワードを入力してログインします:
2014021520



デフォルト状態の X Window が起動します。おお、懐かしい twm ! ついに MINIX もここまできたか:
2014021521


最後に X Window の設定を変更してみましょう。root のホームディレクトリ以下に .xinitrc という名前のファイルを、以下の内容で作成します:
xterm -geometry 80x24+1+345 -sb &
xeyes &
xclock -geometry 100x100+200+10 & xsetroot -solid lightskyblue & twm
このファイルを作成した後に MINIX を再起動して root でログインし、今度はコマンドラインから startx コマンドを実行して X Window を起動してみます:
# startx
すると先程 .xinitrc で設定した内容でウィンドウマネージャーが起動し、背景色も変わり、懐かしい xeyes や xclock が起動した状態でスタートするようになるはずです:
2014021522


xeyes キターッ! 懐かしすぎる!!

自分が MINIX を使っていた頃は、Mini-X とかいうツールを使って、なんとか X Window が動くようになったとかならないとか・・・という噂を聞いたことがあったくらいでした。今では X Window までこんな簡単に導入できちゃうんですね。

ただ自分はこの twm というウィンドウマネージャーがあまり得意でなくて(苦笑)・・ まあ軽くていいんでしょうけど、ちょっと慣れない感じ。別のに変更できないかな。あと日本語化についてもちゃんと調べてみたいです。


 

このページのトップヘ