Blank?=False

ゆるゆる仕事したいフリーランスエンジニアの記事

CUIなCentOS7にcinnamonを導入する

f:id:stonebeach-dakar:20160711203615p:plain

みなさんこんにちわ。
LPIC102試験のXwindowシステム関係がなかなか理解できなかったので、 勉強がてら、CUIのCentOS7にcinnamonというデスクトップ環境を入れてみました。


Linuxにおけるデスクトップ環境

Linuxのデスクトップ環境とかそういうのはわかるからどうやってインストールするんだよ!という方はここは読み飛ばしてください。


そもそもGUICUIがよくわらかない、という方はまず下のサイトを読んでみてください。
www.garunimo.com


え〜、マウス使わないパソコンなんてあるの!と驚かれる方もいるかもしれません。
昔のパソコンはマウスはありませんでしたし、キーボードの十字キーもなかった時代もあるんですよ!
マウスで操作する、という概念はAppleMacintoshが始まりです。

f:id:stonebeach-dakar:20170128105251p:plain
つまり、Macintoshを世に送り出した故スティーブ・ジョブズ氏がPC業界に於ける神なのです。
はっ!つい林檎信者が…


話を戻すと、Linuxは様々な用途に使われることがあるので、CUIだけで使うこともできますし、 GUIでマウスを使って絵を描くことも出来るようになっています。

CUI環境にするか、GUI環境にするか、というのはLinuxをインストールした時の設定で決めることができます。
※ただしUbuntuなど一部のディストリビューションGUI固定になっていこともあります


そして、他のOSとの大きな違いとして「GUIの種類」を変えることが出来るようになっています。
もし、Windowsしか使ったことがない、もしくはMacOSXしか使ったことがなく、ピンと来ない方は、

Windowsだけど、見た目はMacOSXになる

とイメージすればOKです。

Linuxのデスクトップ環境の種類

LinuxGUIの種類を変えられるといったとおり、いくつかのデスクトップ環境があります。

オープンソースらしく、Linuxディストリビューションと同じように、大本があってそこからの派生、という風になってます。
まず、大本となるものは2種類、GNOMEKDEです。

GNOME
f:id:stonebeach-dakar:20170128113639p:plain

KDE
f:id:stonebeach-dakar:20170128113351p:plain
それぞれのデスクトップ環境に、特徴があり、技術的にも異なるGUIフレームワークが使われています。
最近は、GNOME3が前バージョン比べ評判が悪い事もあってKDE、そして他のデスクトップ環境の採用も増えているそうです。


他のデスクトップ環境については、色々な記事でまとめられていますので検索してみてください。
WindowsXP風、OSX風、と言ったものもあります。下のサイトは参考用です。

narazaka.blog109.fc2.com

cinnamonについて

今回インストールするcinnamonGNOMEから派生したデスクトップ環境です。
主にLinux Mintで使われています。

【デスクトップ】
f:id:stonebeach-dakar:20170128115342p:plain

【設定画面】
f:id:stonebeach-dakar:20170128120316p:plain
Coolなデザインに惚れ、普段使いするCentOSに入れてみたいと思いました。
ほら、スクエアなアイコンがいいじゃないですか。

Linux Mintについてはまた別の機会に紹介出来たらと思います。

CentOSへインストールする

google先生CentOS cinnamon installで聞いてみたら、以下のサイトを紹介されました。

centoshowtos.org
よーしコピペしちゃうぞー!とやるのはちょっと待った!

こういうLinuxのコマンドを何も考えないでコピペするのは危険です。
LinuxではないですがDockerでネットから拾ったスクリプトをそのまま動かした結果、バックドアを設けられ不正アクセスされた、という事例が最近ありました。
qiita.com

というわけで、1つ1つのコマンドの動きを考えながらやっていきます。



まず、最初のコマンドです。

$yum groupinstall "Server with GUI" -y


これは、yumで"Server with GUI"というグループをインストール、ということです。

このグループインストールで何がインストールされるか調べるためには、yum groupinfoコマンドを使います。

$yum groupinfo "Server with GUI"

Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: ftp.iij.ad.jp

Environment Group: Server with GUI
 Environment-Id: graphical-server-environment
 Description: Server for operating network infrastructure services, with a GUI.
 Mandatory Groups:
   =base
   =core
   =desktop-debugging
   =dial-up
   =fonts
   =gnome-desktop
   =guest-agents
   =guest-desktop-agents
   =hardware-monitoring
   =input-methods
   =internet-browser
   =multimedia
   =print-client
   =x11
<省略>

Mandatory Groups:が、このグループをインストールする時にインストールされるグループの一覧です。
一覧の中に、gnome-desktopX11があるので、X Window SystemがインストールされていなくてもこのグループをインストールすればXWindowSystem、GNOMEのデスクトップ環境がインストールされる、ということです。



次のコマンドは、以下のようになっています。

$yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm -y

このコマンドは、fedoraのepelというリポジトリyumリポジトリに追加する、というコマンドです。
なぜepelリポジトリが必要なのかというと、CentOSのデフォルトリポジトリには今回インストールするcinnamonがないためです。

理由の1つとして、CentOSは主にサーバ用途を考えられており、デフォルトでは実績があり、安定性が高い(いわゆる"枯れた")ソフトウェアしかインストールできないようになっているためです。


EPELリポジトリは、先進的な技術を先駆けて採用するFedoraというディストリビューションの開発メンバーたちが成果物をRHELCentOSで提供できるようにするために作られたリポジトリです。

詳しくは、Fedoraの公式Wikiを参照してください。
About EPEL/ja - FedoraProject

確認できたところで、上のコマンドを使いインストールするのですが、私の環境では正常に動きませんでした。
というわけで、Fedora公式Wikiに書かれた以下のインストールコマンドを使いインストールします。

$yum install epel-release 




リポジトリが準備出来たので、ここでようやくcinnamonがインストール出来ます。

$yum install cinnamon -y





これで、XWindowSystemとcinnamonが準備できました。
次回からは常にGUIでログインしたいときは紹介されている方法に従い、システムのデフォルトのランレベルを変更します。
もし、普段はCUIでログインし、必要なときだけGUIを使いたい、というときはここは読み飛ばしてください。

$ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target


ちなみに、以下のやり方でもできます。

#systemctl set-default graphical.target




そして、startXでデスクトップ環境を指定して起動します。

$startx /usr/bin/cinnamon


もし、常にGUIを使う設定をした場合、システムの再起動でもOKです。

#reboot


この場合は、ログイン画面のギアマークをクリックし、
f:id:stonebeach-dakar:20170128131610p:plain

幾つかのデスクトップ環境がでてきますので、Cinnamonを選択してからログインします。
f:id:stonebeach-dakar:20170128131614p:plain



これでCentOSでcinnamonが使えるようになりました。
f:id:stonebeach-dakar:20170128131024p:plain
いやぁ、実にCoolだ。

その他の参考サイト

以下のサイトはLinuxでわからない事があったときによくお世話になっています。

CentOS 7.0にEPELリポジトリを追加する方法
CentOS 7にデスクトップ環境MATEを導入する