VM上に立ち上げたCentOS7をデスクトップ用途に使う
こんにちは。
開発チームのワイルド担当、まんだいです。
vagrantで使う仮想環境をようやくCentOS7に更新しました。
開発環境をVM内に押し込んでしまうパターンもそろそろやめたいんですが、勝手知ったる的なものもあって、未だに乗り替えられていません。
一通り揃えるのに、ちょっと手間が掛かったので作業メモをまとめてみました。
2018/03/05 wgetで拾ってくるrpmが一部リンク切れだったので代替サーバーのURLに変更しました。
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://mirror.switch.ch/pool/4/mirror/centos/7.4.1708/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を使う事も可能かも知れません(未確認です)。
2018/03/05 追記
長く放置していたら、ダウンロードできないRPMが出てきているようなので、少し上のwgetコマンドのダウンロード元を変更しました。
基本的にrpm.pb.netから検索する感じですが、いちいち検索するのも面倒なので、RPMのリンク先が記載されたページのURLも貼っておきます。
追記ここまで
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://mirror.switch.ch/pool/4/mirror/centos/7.4.1708/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
最初から出そうぜというご意見、ありがとうございます!
初期設定はだいたい終わっていますが、幾つか問題はあります。
- ユーザー領域のシステム関連のディレクトリ(Desktop / Documents / Downloadsなど)のフォルダ名が日本語になってしまうということ。
- 半角/全角キーで日本語入力できない
一つ目の問題に対処するには、まず以下のコマンドを流し、ダイアログを表示させます。
LANG=C xdg-user-dirs-gtk-update
画像の順にクリックすればOK。
2つ目の問題を対処するには、以下のコマンドを流し、ダイアログを表示させます。
ibus-setup
続いて、画像の順にダイアログを進めていきます。
mozcを入力ソースに追加します。左上のシステムトレイからアクセスできます。
更にショートカットの設定を変更します。
赤で囲った部分をクリックして、半角/全角キーを押します。
簡単ですが、意外に深いところにあって知っていても迷います。
(おまけ)Visual Studio Codeのインストール
こちらもchromeと同様の手順です。
最近私の中でホットなエディタなので、使わなくともインストール必須。
Visual Studio Codeのサイトを見ると、rpmへのリンクがありますので、rpmをダウンロードし、アプリケーションインストーラーからインストールします。
CentOS6系では、glibcのバージョンとの兼ね合いで、やはりインストールできません。
以上です。