elementary os 8 と WinApps で Microsoft Office 備忘録

Microsoft
Photo by hyt.

elementary os 8 と WinApps で Microsoft Office 備忘録です.

結論から記すと,今回はじめて WinApps を利用しましたが,

いちおう使えますが,私の場合は常用は無理

だと感じました.本稿は以下の記事を主に参考にしましたが,英語版の Windows ではなく日本語版 Windows を入れる前提の部分に違いがあります.

UbuntuでMicrosoft Officeを安定的に使う方法 - Qiita
1. 本記事執筆の背景と目的 1.1. 背景 職業柄Mirosoft OfficeのPowerPointを使い倒しているものの、私生活ではプログラミングをしているためPCはUbuntu Desktopを使っている 時折寄せられる開発相談で資...
ページが見つかりません

必要なもの(事前準備)

OS

Debian 系なら他の Linux ディストリビューションでも多分大丈夫だと思いますが,今回やってみたのは elementary os ver. 8 です.

ページが見つかりません

ライセンス

Windows 11 と Microsoft Office のライセンスが必要です.今回実際に使用したのは Office 365 です.

ページが見つかりません

WinApps

WinApps の公式サイトは以下のとおりです.

GitHub - winapps-org/winapps: Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/
Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the nat...

この WinApps ですが,まず,docker もしくは podman のコンテナとして Windows を導入し,FreeRDP 経由で Microsoft Office 等のアプリを Linux から利用できるよう設定するもののようです.

WinApps で使用するコンテナは,

GitHub - dockur/windows: Windows inside a Docker container.
Windows inside a Docker container. Contribute to dockur/windows development by creating an account on GitHub.

で公開されているもの(macOS のコンテナもある)です.

仕組みから予想できる通り,WinApps では Microsoft Office だけが対象ではなく,Windows で動作するありとあらゆるアプリが対象で,公式対応アプリとして挙げられているものだけでも,

  • Microsoft Office 系のアプリ
  • Adobe Photoshop 等のクリエイティブアプリ
  • Visual Studio
  • Autodesk Fusion 360

等があります.

ページが見つかりません

導入

前提パッケージのインストール

まず,WinApps の前提となるパッケージを入れます.

$ sudo apt install podman podman-compose freerdp3-x11
$ sudo add-apt-repository universe
$ sudo apt update
$ sudo apt install dialog
ページが見つかりません

WinApps の取得とコンテナの初期セットアップ

次に,WinApps を Git clone します.

$ git clone https://github.com/winapps-org/winapps.git
$ cd winapps

日本語版の Windows がはじめから入るよう,WinApps の中にある compose.yaml に以下のように LANGUAGE: “Japanese” を追加しておきます.なお,標準状態のままだ英語版 Windows が導入された場合も,あとで日本語化可能です.ただし,なぜか私が試したときは中途半端にしか日本語化されなかったのと,日本語化自体にかなり時間がかかったので,はじめから日本語版の Windows を入れた方が良いとの判断です.

# For documentation, FAQ, additional configuration options and technical help, visit: https://github.com/dockur/windows
...

services:
  windows:
    image: ghcr.io/dockur/windows:latest
    container_name: WinApps # Created Docker VM Name.
    environment:
      # Version of Windows to configure. For valid options, visit:
      # https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-select-the-windows-version
      # https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-install-a-custom-image
      VERSION: "11"
      RAM_SIZE: "4G" # RAM allocated to the Windows VM.
      CPU_CORES: "4" # CPU cores allocated to the Windows VM.
      DISK_SIZE: "64G" # Size of the primary hard disk.
      # DISK2_SIZE: "32G" # Uncomment to add an additional hard disk to the Windows VM. Ensure it is mounted as a volume below.
      USERNAME: "MyWindowsUser" # Edit here to set a custom Windows username. The default is 'MyWindowsUser'.
      PASSWORD: "MyWindowsPassword" # Edit here to set a password for the Windows user. The default is 'MyWindowsPassword'.
      LANGUAGE: "Japanese"
      HOME: "${HOME}" # Set path to Linux user home folder.
    ports:
....

あとは,

$ podman-compose --file ./compose.yaml up

とすれば Windows のセットアップが行われます(かなり時間がかかります).

ブラウザで http://127.0.0.1:8006 にアクセスすることでコンテナにアクセスできるので,セットアップが完了後,Windows にログインして,ライセンス認証等を実施してください.ユーザー名とパスワードは上の compose.yaml で指定されている通り,

  • USERNAME: “MyWindowsUser”
  • PASSWORD: “MyWindowsPassword”

です.もちろん USERNAME と PASSWORD は自分の好みのものに変えることもできます.

ページが見つかりません

コンテナ設定の変更

上の節の compose.yaml のままだと初期セットアップが再び行われてしまうので,コンテナのセットアップが終わったら,一旦,

$ podman-compose --file ./compose.yaml down

として,コンテナの動作を終了させてから,WinApps を Clone したフォルダの compose.yaml を

$ mkdir ~/.config/winapps
$ vi ~/.comfig/winapps/compose.yaml

として,その内容を以下のように書き換えます.

diff compose.yaml ~/winapps/compose.yaml
33c33,34
<     restart: on-failure # Restart the Windows VM if the exit code indicates an error.
---
>     # restart: on-failure # Restart the Windows VM if the exit code indicates an error.
>     restart: always
38c39
<       - ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'.
---
>       # - ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'.

また,同じところに FreeRDP の設定ファイルを以下の内容で準備します.

$ vi ~/.config/winapps/winapps.conf
RDP_USER="MyWindowsUser"
RDP_PASS="MyWindowsPassword"
WAFLAVOR="podman"
# 日本語 Microsoft IME を指定
RDP_FLAGS="/kbd:layout:0xE0010411"
ページが見つかりません

Microsoft Office の導入

再度,今度は新しい設定で,コンテナを立ち上げます.

$ podman-compose --file ~/.config/winapps/compose.yaml up

立ち上がったら,ブラウザで http://127.0.0.1:8006 にアクセスすれば Windows のログイン画面にアクセスできるので, ログインして,Microsoft Office を(その他使いたいアプリがある場合はそれも)セットアップします.また,キーボードの配列を日本語キーボードに変更したり,ライセンス認証なども行ってください.

ページが見つかりません

WinApps によるアプリのメニューへの登録

WinApps のスクリプトを使って,elementary os のアプリメニューに Microsoft Office を登録します.git clone したフォルダに移動して,setup.sh を起動するだけです.

$ cd winapps
$ ~/setup.sh

すると以下の質問への回答を求められます(実際の質問は英文).

  • 質問1: アプリのインストールをするのかアンインストールをするのか?
  • 質問2: システムメニューにアプリを登録するか否か
  • 質問3: 公式サポートされているアプリを自動登録するのか

質問に答えると,Windows にインストールされているアプリの情報を取得するプログラムが起動しますが,この処理に失敗する場合は,

$ podman-compose --file ~/.config/winapps/compose.yaml down
$ podman-compose --file ~/.config/winapps/compose.yaml up
$ ./setup.sh

としてコンテナを再起動した上で,setup.sh を起動し直せばうまく行くことが多いようです.また,~/.local/share/winapps 以下に FreeRDP 等のログファイルがあるので,その内容を調べるなどしてください.

Windows にインストールされているアプリの情報が全て取得できたとします.すると,WinApps から,

  • Set up all detected officially supported applications
  • Choose specific officially supported applications to set
  • Skip setting up any officially supported applications

の3択のいずれかの選択を求められますが,

この選択を行う前に,別ターミナルで,~/.local/share/winapps/detected ファイルの内容を確認し,日本語が含まれている場合はその部分を削除する必要がある

ことにご注意ください.

このファイルには,検出された全てのアプリの情報が含まれていますが,WinApps の対応が不十分なせいか,この中に日本語のアプリ名等の情報があると,エラーで setup.sh の動作が停止します.このため,日本語のアプリ名のものについてはその情報を削除しないといけません.

削除が必要なのは,以下のような部分です.NAMES がアプリ名,EXES がアプリ本体の情報,ICONS がアイコンの情報なので,日本語名のアプリについては,これらをまとめて削除してください.

$ vi ~/.local/share/winapps/detected
....
NAMES+=("タッチ キーボードと手書きパネル")
EXES+=("C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe")
ICONS+=("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQ
AAAB/SURBVFhH7ZZBCsAgDAT3KT32iR59rNBntFgMtBK1hyYWugMLiSgZPAUghHyAFUAAEB2T5y0iEFJK2+5InlckTmJ9wYPyE3cB5atez1BAauueAk0B6ww
FpLbuKdAUsM5QQOre2RO0d/UsCqgC1ukKeHIVmL4P5M1k6kZEyL85ADbEwKQf9KzpAAAAAElFTkSuQmCC")
....

この作業後に,元のターミナルに戻り,3択のいずれかを選び,その後の質問に適当に答えると,elementary os のアプリメニューに Windows のアプリが登録されます.

ページが見つかりません

Windows アプリの起動

登録されたアプリの情報は,システムメニューに登録を選んだ場合は,/usr/share/application 以下に,そうでない場合は,~/.local/share/applications 以下に登録されているはずです.

登録を確認できたら,1度 PC を再起動すれば,メニューに Windows アプリが出てくるはずです.あとはメニューのアプリを選択すれば,コンテナが起動してから選択したアプリも起動の流れで使用できます.

ページが見つかりません

使用感

最初に書いた通り,

使えなくはないですが,個人的には常用は難しい

と感じました.

まず,見た目は完璧ですし,日本語の使用にも特に問題は感じませんでした.Word や Excel が Linux ネイティブなアプリであるかのように使える,しかも,(仕組みから考えればそれはそうなのですが)VBA などの利用にも対応しています.

しかし,実際に使ってみると,例えば Excel だと,データを入力してドラッグして値を補完するなどしようとすると,最初の3つ4つのセルについてはできますが,それ以降はフォーカスが外れて入力されなかったり,注釈を入れようとするとなぜか注釈を入力する部分が画面いっぱいに表示されたりと,業務でガシガシ使うにはどう考えても問題がある.

あと,起動にもやっぱりかなりの時間がかかります.

個人的には,素直に安価な Windows マシンを1台確保して,リモートデスクトップで使う方が無難だと思うし,どうしても1台で済ませたい,しかも Linux ベースのマシンで済ませたい場合も無償化された VMWare Workstation を使った方が良いと思います.

しかし,WinApps はともかく,その中で使われている Windows がコンテナとして動作するってのは面白いと思います.KVM とか使うより実際かなり手軽ですしね.Linux のコンテナなので,Linux ベースじゃないとダメだと思っていましたが,Linux に QEMU 組み合わせてその上で Windows 動かせば良いってことみたいです.

以上!

ページが見つかりません
MicrosoftServer
スポンサーリンク
Following hyt!
タイトルとURLをコピーしました