どんな事でもお気軽にお問い合わせください
06-6567-0924

VM上に立ち上げたCentOS7をデスクトップ用途に使う


こんにちは。
開発チームのワイルド担当、まんだいです。

vagrantで使う仮想環境をようやくCentOS7に更新しました。
開発環境をVM内に押し込んでしまうパターンもそろそろやめたいんですが、勝手知ったる的なものもあって、未だに乗り替えられていません。

一通り揃えるのに、ちょっと手間が掛かったので作業メモをまとめてみました。


 

vagrant経由でVMを起動してみる

vagrant経由なら、以下のコマンドを流すだけで、勝手に起動します。

vagrant init centos/7; vagrant up

 
上記のコマンドで、atlas上にあるVMイメージをダウンロードし、起動するまで自動で作業が進みます。

その後、SSHでも、Vagrantfile内のgui.on = trueを有効にしても、どちらでもいいのでとりあえずコンソールまでたどり着きます。

デフォルトのvagrantユーザーで作業を始めます。(vagrant / vagrant でログイン)

無事ログインできれば、設定変更に進みます。

 

キーボードの設定変更

USキーボードだと、コロンを探すにも四苦八苦しますので、初手でキーマップを変更します。

sudo localectl set-keymap jp106
sudo localectl set-keymap jp-OADG109A

 

言語設定

デスクトップ用途で構築するので、言語設定もしておきます。LANGの書き換えもlocalectl経由で行うのがお作法になった様子。

sudo localectl set-locale LANG=ja_JP.utf8

 

デスクトップのインストール

GUIも欲しいので、パッケージをインストールします。

sudo yum -y groupinstall "GNOME Desktop"

 

ランレベルの変更

CentOS7から、initdがsystemdに置き換わりました。
systemdになると、ランレベルという概念が既に周回遅れなので要注意。
代わりにターゲットという概念に変わります。

起動時のターゲットを変更するには、以下のシンボリックリンクを適宜修正する必要があります。
リンク先は、/lib/systemd/system に用意されています。

/etc/systemd/system/default.target

 
ただし、移行期ということもあり、各ランレベルに相当するターゲットが /lib/systemd/system に用意されています。
ロートルにも優しい設計ですね。
以下がランレベルに相当するターゲットの一覧になります。

runlevel0.target -> poweroff.target
runlevel1.target -> rescue.target
runlevel2.target -> multi-user.target
runlevel3.target -> multi-user.target
runlevel4.target -> multi-user.target
runlevel5.target -> graphical.target
runlevel6.target -> reboot.target

シンボリックリンクの向き先を見れば、ランレベルがどうなったかは分かりますね。
systemdは、ランレベルだけを制御している訳ではなく、initdを置き換えるので、新しく仕入れなければいけない知識は多いですが、こればっかりは仕方がないような気がします。

ちなみにですが、systemdを導入するにあたって、Linux業界も大いに揺れ、色んなすったもんだがありました。
我らがリーナス先生も大層ご立腹の様子で、systemdの開発者にお下品な言葉をたくさん投げつけていたのは、記憶にも新しいところです。
そんな訳で実は、chkconfigともおさらばです。
これからはchkconfigコマンドの代わりに、systemctlコマンドを使いましょう!

 

gitをインストール

gitがないと、リポジトリからソースを取ってこれなくなるので、インストールします。

sudo yum -y install git

 

mozcをインストール

ランレベルみたいな割とサーバーの根幹の部分の話をした後なので、急にカジュアルになりますが、私はLinuxで文字を入力する際、mozcを使っています。

mozcのセットアップには複数のrpmが必要で、CentOS6系の時はそれらをまとめたバッチファイルを作って一発インストールしていましたが、同じrpmを使ってインストールする事ができなかったので新たにrpmを探しまくり、行き着いたのがこのやり方です。
ibus経由でmozcを使う際に必要なrpmは、色々なところに分散していてわかりにくいので、すぐインストールできるように、以下のコマンドを流します。

wget ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/os/x86_64/Packages/protobuf-2.5.0-8.el7.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/z/zinnia-0.06-16.fc19.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/z/zinnia-tomoe-0.06-16.fc19.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/i/ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm
wget ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/m/mozc-1.10.1390.102-1.fc19.x86_64.rpm
sudo yum localinstall -y ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm mozc-1.10.1390.102-1.fc19.x86_64.rpm protobuf-2.5.0-8.el7.x86_64.rpm zinnia-0.06-16.fc19.x86_64.rpm zinnia-tomoe-0.06-16.fc19.x86_64.rpm

 
Fedora19用のrpmを使うのが基本となります。理由は調べれば色々と情報が出てきますが、要はCentOS7はFedora19、Fedora20のコードを元にビルドされているという事ですね。
CentOS7にインストールされているibusのバージョンが、Fedora19に近いという理由が、Fedora19用のrpmを使う最大の理由です。

ibusの置き換えをやるのであれば、最新のmozcを使う事も可能かも知れません(未確認です)。

 

Google Chromeのインストール

標準でFirefoxがインストールされていますが、。ウェブ開発をやる目的であれば、chromeのDevelopment Toolを使ったほうが色々便利ではないかと思います。
chromiumでもいいんですが、CentOS6系の時よりはるかに簡単にインストールできるようになったchromeを使ってみたいと思います。

CentOS6系の時は、glibcのバージョンが低すぎたため、chromeのインストールはなかなか骨の折れる作業でした。
自動更新も未対応の状態でしたし。

これからは、Windows同様、自動で最新のバージョンが使えるという訳ですね。

やりかたは
こちらのダウンロード用ページから「chromeをダウンロード」というボタンを押すだけです。

ページが自動的にOSを読み取って、正しいrpmへのリンクを教えてくれます。
ダウンロードするファイルでrpmを選択し、ダウンロード完了まで待ちます。

完了したら、ファイルマネージャからrpmファイルをダブルクリックで、アプリケーションインストーラーが起動しますので、インストールボタンを押して、管理者権限の認証が通れば完了です!

 

で、毎回これするの?

という疑問に至るわけです。
こういうのをガッツリやるなら、chefやansibleというプロビジョニングツールがある訳ですが、vagrantには、シェルスクリプトという選択肢もあります。
なんせテキストエディタでできるわけですからね。お手軽感ありますね。

つらつらとしたためた今までの作業をシェルスクリプト化したのが、以下のコマンド群になります。

#! /bin/bash

# install chrome
function install_chrome {
  cat << CHROME > /etc/yum.repos.d/google-chrome.repo
[google-chrome]
name=google-chrome - \$basearch
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
CHROME

  sudo yum -y install google-chrome-stable
}

# install mozc
function install_mozc {
  cd ~
  cat << MOZC > mozc_required_rpms.txt
ftp://ftp.muug.mb.ca/mirror/centos/7.2.1511/os/x86_64/Packages/protobuf-2.5.0-8.el7.x86_64.rpm
ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/z/zinnia-0.06-16.fc19.x86_64.rpm
ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/z/zinnia-tomoe-0.06-16.fc19.x86_64.rpm
ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/i/ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm
ftp://ftp.pbone.net/mirror/archive.fedoraproject.org/fedora/linux/releases/19/Everything/x86_64/os/Packages/m/mozc-1.10.1390.102-1.fc19.x86_64.rpm
MOZC
  xargs -P 10 -n 1 wget -nv < mozc_required_rpms.txt
  sudo yum localinstall -y ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm mozc-1.10.1390.102-1.fc19.x86_64.rpm protobuf-2.5.0-8.el7.x86_64.rpm zinnia-0.06-16.fc19.x86_64.rpm zinnia-tomoe-0.06-16.fc19.x86_64.rpm && \
  rm -f ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm mozc-1.10.1390.102-1.fc19.x86_64.rpm protobuf-2.5.0-8.el7.x86_64.rpm zinnia-0.06-16.fc19.x86_64.rpm zinnia-tomoe-0.06-16.fc19.x86_64.rpm mozc_required_rpms.txt
}

# change keyboard setting
function change_keymap {
  sudo localectl set-keymap jp106
  sudo localectl set-keymap jp-OADG109A  # windowsキー対応のキーマップに変更
}

# change localectl
function change_locale {
  sudo localectl set-locale LANG=ja_JP.utf8
}

# GNOME Desktopのインストール
function install_gnome_desktop {
  sudo yum -y groupinstall "GNOME Desktop"
}

function change_default_target {
  cd /etc/systemd/system
  sudo ln -sf /lib/systemd/system/graphical.target default.target
}

change_locale
change_keymap
install_gnome_desktop && change_default_target
install_chrome
install_mozc

 
最初から出そうぜというご意見、ありがとうございます!

初期設定はだいたい終わっていますが、幾つか問題はあります。

  1. ユーザー領域のシステム関連のディレクトリ(Desktop / Documents / Downloadsなど)のフォルダ名が日本語になってしまうということ。
  2. 半角/全角キーで日本語入力できない

一つ目の問題に対処するには、まず以下のコマンドを流し、ダイアログを表示させます。

LANG=C xdg-user-dirs-gtk-update

 
画像の順にクリックすればOK。

2016-10-11_14h34_31

2つ目の問題を対処するには、以下のコマンドを流し、ダイアログを表示させます。

ibus-setup

 
続いて、画像の順にダイアログを進めていきます。

2016-10-11_15h03_23

2016-10-11_15h03_58

2016-10-11_15h04_22

2016-10-11_15h04_36

2016-10-11_15h04_54

mozcを入力ソースに追加します。左上のシステムトレイからアクセスできます。

2016-10-11_14h12_37

2016-10-11_14h12_56

2016-10-11_14h13_15

2016-10-11_14h58_12

2016-10-11_14h59_31

更にショートカットの設定を変更します。

2016-10-11_14h28_59

2016-10-11_14h29_14

2016-10-11_14h29_26

2016-10-11_14h29_59

赤で囲った部分をクリックして、半角/全角キーを押します。

2016-10-11_14h31_14

簡単ですが、意外に深いところにあって知っていても迷います。

 

(おまけ)Visual Studio Codeのインストール

こちらもchromeと同様の手順です。
最近私の中でホットなエディタなので、使わなくともインストール必須。

Visual Studio Codeのサイトを見ると、rpmへのリンクがありますので、rpmをダウンロードし、アプリケーションインストーラーからインストールします。

CentOS6系では、glibcのバージョンとの兼ね合いで、やはりインストールできません。

 
以上です。


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.

mautic is open source marketing automation