ChromebookにLibreOfficeをインストールしてみました

この記事は、LibreOffice Advent Calendar 2019の5日目の記事です。

こんにちは。nogajunです。LibreOfficeFRが「ChromebookでLibreOfficeを動かした」事をツイートしていました。それを見て、ChromebookでLibreOfficeが使えるか試してみたい思っていたところ筆者の職場でChromebookを貸していただける事になったので検証してみました。

 

検証に利用したChromebookと免責事項

動作検証に使ったChromebookは、ASUS Chromebook Flip C213N、Chrome OSのバージョンは、78.0.3904.106のStableチャンネルです。キーボードは日本語キーボードです。

ここで気をつけていただきたいのがCPUです。Chromebookには、IntelとARMの2種類のCPUが使われますが検証マシンはIntel製CPUを使用しています。ARM製CPUのマシンでも設定などは、ほぼ適用できますが、The Document Foundationが配布するLibreOfficeパッケージはIntel Linux用しか配布していないので利用できません。

また、使用するLinux機能はサンドボックス環境で、ここに記述されている事を実行してもChromebookに被害は無いはずです。しかし、ここに記述されていることを実行して何かが起こったとしても筆者やLibreOffice日本語チームは一切関知いたしませんので、あらかじめご了承ください。

ChromebookのLinux機能(Crostini)を有効化

ChromebookでLibreOfficeを使うには、Linux機能(Crostini)を有効にして、その中にインストールすることにより利用できます。まずはChromebookの設定から「Linux(ベータ版)」を有効にします。

設定画面はシェルフの時刻をクリックし、続いて歯車の設定アイコンをクリックすると移動できます。そして設定画面のリストにある「Linux(ベータ版)」をクリックして「オンにする」ボタンを押すとダイアログが開くので、あとは指示に従えば有効化は完了します。

Linux機能の有効化

Chromebookヘルプには「セットアップには10分以上かかります」と書かれていますがネットワーク環境の良い場所では10分もかからず終了しました。

セットアップが終了するとLinuxを操作する「ターミナル」が開きます。シェルフに実行中のターミナルのアイコンが表示されているのでアイコンを固定しておきます。 アイコンの固定は、シェルフのターミナルアイコンを右クリックし、メニューの「固定」を選びます。

ChromebookのLinux機能について

設定の前にChromebookで利用されているLinux機能について簡単に触れておきます。

Chromebook上で利用するLinuxは、Chromebook本体のLinuxを直接扱っているのではありません。LXDというLinuxコンテナ(一種の仮想環境)の中でLinuxディストリビューションのDebianを動かすことによって実現しています。

使われているDebianは、Debian 9 (Stretch)です。 現行のDebian安定版はDebian 10 (Buster)が最新ですので一つ古い旧安定版になります。古いといっても2020年6月までサポートされているので、これを公開している2019年12月時点、利用できるアプリのバージョンが古いことを除けば利用について問題はありません。 Debianは、バージョン番号ではなくコードネームで呼ばれることがほとんどですので、記事内でDebian 9(Stretch)を指す場合「Stretch」と書いています。

Linux機能を実現しているLXDにについては、Ubuntu blogのUsing LXD on your Chromebookで解説されているので興味のある方はご覧ください。

Linux環境の初期設定

最初にLinux環境のアップデートをしましょう。以下のコマンドでアップデートできます。

$ sudo apt update
$ sudo apt upgrade

apt upgradeを実行すると下のメッセージが表示されます。

debconf: delaying package configuration, since apt-utils is not installed

これは、debパッケージ設定ツールのdebconfがapt-utilsに含まれるapt-extracttemplatesが無いので設定を遅らせるというメッセージです。そのままでも特に問題ありませんが、パッケージをインストールすれば表示されなくなるので、apt-utilsとdebconf-i18nパッケージをインストールしましょう。

$ sudo apt install debconf-i18n apt-utils

日本語ロケールの設定

起動したばかりは英語環境なので、日本語を扱うためのロケール(言語設定)を作成します。

$ sudo dpkg-reconfigure locales

すこし文字化けしていますが気にせず、alt+↑↓キーでスクロールしてja_JP.UTF-8を探します。ja_JP.UTF-8を見つけたら、スペースキーを押してマークをつけてenterキーを押します。

続いて規定で利用するロケールの選択は、ja_JP.UTF-8を選んでenterキーを押せば設定は終了です。

日本語フォントのインストール

フォントをインストールします。フォントは、Noto CJKフォントとIPAフォント、M+フォントがあれば十分でしょう。Noto CJKフォントは、Stretch用に新しいパッケージを提供するstretch-backportsリポジトリのパッケージを利用するので -t stretch-backports オプションをつけてインストールしています。

$ sudo apt -t stretch-backports install fonts-noto-cjk fonts-noto-cjk-extra fonts-ipafont fonts-ipaexfont fonts-mplus

日本語入力のインストールと設定

Linuxアプリへの日本語入力にChromebookの日本語入力は使えません。(2019年12月時点)日本語を入力するにはLinux側にインプットメソッドとかな漢字変換システムをインストールして使う必要があるので、インプットメソッドのFcitx、かな漢字変換のmozc、設定ファイルを編集するためのエディタnanoをインストールします。

$ sudo apt install fcitx fcitx-mozc nano

Fcitxを利用するための環境変数を設定します。エディタのnanoを使って、/etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf を開きます。

$ sudo nano /etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf

ファイルを開くためのパスがとても長いですが、入力中にTabキーを押すと文字が補完または候補が表示されます。次に続く文字を補いながら入力すると簡単に入力できるので活用してください。設定ファイルを開いたら、ファイル末尾に以下の4行を追記します。

Environment="GTK_IM_MODULE=fcitx"
Environment="QT_IM_MODULE=fcitx"
Environment="XMODIFIERS=@im=fcitx"
Environment="GDK_BACKEND=x11"

今回のポイントは、4行目の GDK_BACKEND=x11 です。

ここからは少し専門的な話になりますが、ほかのサイトで書かれているように設定してローマ字を入力するとGtk3アプリでは母音で勝手に確定されてしまい、まともに日本語の入力ができません。その対策としてGtk3をWaylandではなく強制的にXWaylandを使用させるために入れています。個別のアプリ対策ならSommelier(ソムリエ)を通してXを使うようにすればいいのですがLibreOfficeアイコン全部の起動コマンドを書き換えるのは難しいですし、本来、Chromebook側のインプットメソッドで入力できるはずのことをLinux側で行うので、あまり良くないハックですが、ひとまず使うために入れています。近い将来、このような設定を利用しなくてもよくなるはずですが、2019年12月時点では必要ということを頭に入れておいてください。

次にホームディレクトリにFcitxを自動起動するための設定ファイル「.sommelierrc」を作成します。以下のようにnanoを開いて

$ nano ~/.sommelierrc
下の一行を追記します。
/usr/bin/fcitx-autostart

ここまでできれば、Linuxコンテナを再起動します。(Chromebookではありません!)Linuxコンテナの再起動は、シェルフのターミナルアイコンを右クリックして「Linux(ベータ版)を終了」を選んで終了します。しばらく待ったのちにターミナルを開き直すと再起動されます。ターミナルのウィンドウを閉じただけでは再起動にならないので、ご注意ください。

ターミナル画面に戻ったらFcitxにmozcを登録します。以下のコマンドでFcitxの設定画面を開きます。

$ fcitx-configtool

「入力メソッド」タブの設定を見て、自分の使っているキーボードが一番上に、次にMozcが来るようにしてください。英語(US)キーボードの場合はそのままで構いませんが、日本語(JP106)キーボードを利用している場合は「キーボード – 英語」を削除して、「キーボード – 日本語」を追加の必要があります。

「アドオン」タブに移って、拡張と書かれたチェックボックスにチェックを入れると設定項目の表示が増えます。その中から「Fcitx XIM Frontend」を探し出し「設定」ボタンを押します。 設定画面が開いたら「XIMでOn The Spotスタイルを使うに」チェックを入れ、「OK」ボタンを押して設定は完了です。

LibreOfficeのインストール

やっと、LibreOfficeのインストールです。Linuxで利用できるLibreOfficeには様々な形態のパッケージがありますが、Debianパッケージに絞るとDebianが配布するパッケージ(通称Debian版)と、The Document Foundationが配布するパッケージ(通称TDF版)の2種類が利用できます。(TDF版の配布はIntel CPU向けのみ)

Debian版はaptを使って簡単にインストールできますが、旧安定版ということもあり古いバージョンしか使えません。(前述の通り、サポートは2020年6月まであるので利用自体に問題はありません)一方、TDF版は新しいバージョンで機能追加や相互運用性が改善されていますが、自分でダウンロードして直接debパッケージをインストールする手間があります。どちらのパッケージもメリット・デメリットがありますが共存してインストールできるので両方のインストール方法を紹介します。

Debian版インストール

Debian版は、StretchとしてはLibreOffice 5.2.7が収録されていますが、stretch-backportsリポジトリには若干新しいLibreOffice 6.1.5があるので、利用する場合はこちらを使うと良いでしょう。以下のコマンドでインストールできます。

$ sudo apt -t stretch-backports install libreoffice libreoffice-l10n-ja libreoffice-gtk3

The Document Foundation版インストール

The Document Foundation配布のLibreOfficeを利用するには、LibreOfficeサイトから配布パッケージをダウンロードします。注意としては、OSは「Linux(64-bit)(deb)」を選択することと本体をダウンロードしたあとに「Translated user interface」(翻訳されたユーザーインターフェース)のダウンロードを忘れないようにしてください。

ダウンロードしたファイルは、tar.gzでまとめられているのでインストールをするには展開の必要があります。しかし、LinuxとChromebook本体は直接ファイルのやり取りができないのでLinuxとフォルダを共有する必要があります。

共有方法はChromebookの「ファイル」アプリを開き、マイファイルの「ダウンロード」フォルダを右クリックしてメニューから「Linuxと共有」を選びます。

Linux側からは、共有したフォルダが/mnt/chromeos/MyFiles/Downloadsにマウントされて操作できるようになります。共有フォルダでは、Linux側からファイルは見えますが書き込みができないので、Linux側の書き込める場所で展開などを行います。ファイルの展開とインストールは以下のコマンドでできます。パスがとても長いですが、入力途中でTabキーを押してフォルダ名を補完していくと効率よく入力できます。

$ cd ~/
$ ls /mnt/chromeos/MyFiles/Downloads/LibreOffice_6.3.3_Linux_x86-64_deb*tar.gz | xargs -n1 tar xvfa
$ sudo dpkg -i ~/LibreOffice_6.3.3.2_Linux_x86-64_deb*/DEBS/*deb

TDF版のLibreOfficeだけを使う場合は、これでインストールは終わりです。次の設定は不要なので飛ばしてください。Debian版とTDF版の両方を利用する場合は、LibreOfficeがバージョンの違うプロファイルを共有してしまうのでプロファイルフォルダの保存場所を変更します。nanoで /opt/libreoffice6.3/program/bootstraprc を編集します。

$ sudo nano /opt/libreoffice6.3/program/bootstraprc

4行目の UserInstration の行にあるlibreofficeと書いてある部分をlibreoffice-tdfに変更して、保存してください。

変更前: UserInstallation=$SYSUSERCONFIG/libreoffice/4
                 ↓ 
変更後: UserInstallation=$SYSUSERCONFIG/libreoffice-tdf/4
以上でインストールと設定は終了です。

Linuxアプリの起動

Linuxアプリは、インストールするとランチャーの「Linuxアプリ」フォルダに登録されるので通常のアプリと同じようにクリックすれば起動します。Debian版とTDF版両方インストールしていると同じアイコンで見分けがつきにくいですが、TDF版は末尾に6.3とついているので、それで判別してください。それでは。楽しいLibreOfficeライフをお過ごしください!

ボーナストラック:フォントの見た目を綺麗にする

と、LibreOfficeを利用するだけなら以上で終わりですが、Linuxアプリを使っていてフォントが欠けたりしていたことに気がついたでしょうか?

これはフォント(fontconfig)の設定が無いためで、Linuxデスクトップ環境であればGUIから設定できますがChromebookには設定ツールが無いのでファイルを作成して設定します。以下のコマンドで設定保存用のフォルダを作成して、エディタでフォントの設定ファイルを作成します。

$ mkdir ~/.config/fontconfig
$ nano ~/.config/fontconfig/fonts.conf
設定は以下ですが手で入力すると大変なので、コピーしてnanoに貼り付けて保存してください。
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <match target="font">
    <edit mode="assign" name="embeddedbitmap">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <edit mode="assign" name="hinting">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <edit mode="assign" name="hintstyle">
      <const>hintnone</const>
    </edit>
  </match>
  <match target="font">
    <edit mode="assign" name="rgba">
      <const>rgb</const>
    </edit>
  </match>
  <match target="font">
    <edit mode="assign" name="antialias">
      <bool>true</bool>
    </edit>
  </match>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Noto Serif</family>
      <family>Source Serif Pro</family>
      <family>IPAexMincho</family>
      <family>IPAMincho</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Sans</family>
      <family>Source Sans Pro</family>
      <family>IPAexGothic</family>
      <family>IPAGothic</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
    <family>Inconsolata</family>
    <family>Noto Sans Mono CJK JP</family>
    </prefer>
  </alias>
</fontconfig>

Gtkのフォントとテーマを設定する

フォントを設定したら、LibreOfficeのユーザーインターフェースに使われているGtk2とGtk3のテーマとフォントも設定しておきます。

Gtk3のテーマとフォント設定

Gtk3のテーマとフォントを設定するには、以下のコマンドで設定ファイルを保存するフォルダを作成して、エディタから設定ファイルを作成します。

$ mkdir ~/.config/gtk-3.0
$ nano ~/.config/gtk-3.0/settings.ini

以下の設定をコピーして、nanoに貼り付けてください。

[Settings]
gtk-theme-name=CrosAdapta
gtk-font-name=Noto Sans CJK JP Regular 9

Gtk2のテーマとフォント設定

Gtk2アプリのテーマとフォントを設定するには、ホームディレクトリにエディタを使って設定ファイルを作成します。

$ nano ~/.gtkrc-2.0
以下の設定をコピーして、nanoに貼り付けてください。
include "/usr/share/themes/CrosAdapta/gtk-2.0/gtkrc"
style "user-font" {
        font_name = "Noto Sans CJK JP 9"
}
gtk-font-name="Noto Sans CJK JP 9"
以上の設定でフォントの欠けもないキレイなフォント表示の設定ができたはずです。

最後に

Chromebookを検証した結果としては、Impressのスライドショーでウィンドウのタイトルバーとシェルフが残って全画面表示にならない点や日本語入力については気になりましたが、それ以外は普通に利用できたので実用上は問題ないと思います。

Impressのスライドショー画面

タイトルバーとシェルフが残っています

欲を言えばGoogle Driveが使えるのでクラウド上にあるファイルも編集できれば完璧ですが、Linux共有にGoogle Driveを指定しても書き込みができず、LibreOfficeはGoogle Drive対応のバグが未だ直らずということで、かゆいところに微妙に手が届かず残念でした。

その点などを差し引いてもChromebookは素晴らしいです。AndroidアプリとLinuxアプリがシームレスに使えて、起動も早く、バッテリーの持ちが恐ろしく長いので持ち歩きに重宝しています。でも、借り物なんですよね…。これで十分に良い事が分かったので早く自分のマシンを買わないと。

さて、ここでクリスマスプレゼントです。ここに書いた設定が一発で終わるAnsible Playbookを用意しました。こちらからどうぞ。そして、LibreOffice関連以外でLinux機能を使って気がついたことなどはこちらにまとめました。合わせてどうぞ。

明日のLibreOffice Advent Calendar 2019の6日目は、いさなさんの「 [Hack] FlatODFとスクリプト処理でお手軽帳票もどき ~Drawデータではがきの宛名印刷~」です。楽しみですね!

Comments

  1. By Takashi Sato

    Reply

    • By nogajun

      Reply

      • By Takashi Sato

        Reply

  2. By 匿名

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept the Privacy Policy * for Click to select the duration you give consent until.