1. 本記事執筆の背景と目的
1.1. 背景
- 職業柄Mirosoft OfficeのPowerPointを使い倒しているものの、私生活ではプログラミングをしているためPCはUbuntu Desktopを使っている
- 時折寄せられる開発相談で資料を作ろうとすると代替ソフトでは以下のような課題がある:
- Office365ではレイテンシーや機能不足で作業が進まない
- WPS Officeも使い勝手で満足できないのみならず日本語入力のバグがあったりする
- Wineでは古代のMicrosoft Officeしか動かない
- よってPCを再起動してWindowsに切り替えざるを得ないためにとても不便である
- どうせならUbuntuのパッケージのようにシームレスに使いたい
1.2. 目的
Ubuntu24.04上でMicrosoft Officeをシームレスに使用する手順を記録し、自身の備忘とすると共に、同じニッチな悩みを持つ方々の一助とする
1.3. 環境
OS: Ubuntu24.04 (x11)
2. Microsoft Office(Power Point)起動までのステップ
本節では必要なパッケージのインストールから設定までを順を追って説明する
2.1. 必要なパッケージのインストール
まず、以下の四つのパッケージをインストールする
- podman, podman-compose
- FreeRDP
- dialog
2.1.1. podmanおよびpodman-compose
sudo apt install podman podman-compose
2.1.2. FreeRDP
sudo apt install freerdp3-x11
2.1.3. dialog
dialog
のインストールのためにはuniverse
というレポジトリを追加する必要がある
sudo add-apt-repository universe
sudo apt update
sudo apt install dialog
2.2. Windows仮想マシンの初回起動
次にWindows仮想マシンを立ち上げる
2.2.1. Winappsをダウンロードする
workspace]$ git clone https://github.com/winapps-org/winapps.git
workspace]$ cd winapps
2.2.2. ダウンロードするWindowsイメージの変更
デフォルトではtiny11
という最小限の機能を有したWindows11のISOファイルがダウンロードされる。日本語入力およびMicrosoft IMEを使用できるように、なによりインストールが壊れないように(※1)ベースとなるWindowsイメージを変更する
設定はcompose.yaml
に書かれており、VERSION
をtiny11
から11
に変更すればWindows11 Proがダウンロードされるようになる
winapps]$ vi compose.yaml
# compose.yaml
services:
windows:
environment:
# tiny11 -> 11
VERSION: "11"
※1)"windows could not compelete the installation"で無限に再起動する
2.2.3. 仮想マシンの起動
Windows仮想マシンを起動する
winapps]$ podman-compose --file ./compose.yaml up
ブラウザからhttp://127.0.0.1:8006
にアクセスすると、しばらくイメージのダウンロードに時間を要しつつも、最終的にWindows11が起動することが確認できる
2.3. 設定ファイルの編集
次にcompose.yaml
を~/.config/winapps
にコピーして二箇所を編集して設定を行う。
winapps]$ cp compose.yaml ~/.config/winapps/compose.yaml
winapps]$ vi ~/.comfig/winapps/compose.yaml
編集1: 自動で起動するようにrestart
を設定する
# ~/.config/winapps/compose.yaml
# on-failure -> always
restart: always
編集2: OEMの部分をコメントアウトする
#- ./oem:/oem
2.4. 設定の反映
編集したファイルで起動し直す
winapps]$ podman-compose --file ./compose.yaml down
winapps]$ podman-compose --file ~/.config/winapps/compose.yaml up
ちなみに、仮想マシンはWinApps
という名前で立ち上がっており、二回目以降の起動にはup
コマンドではなく以下のコマンドでよい
podman start -a WinApps
2.5. Microsoft Officeをインストールする
ここでRDPでWindows仮想マシンにログインしてMicrosoft Officeをインストールする
2.5.1. FreeRDPの設定ファイルを作成する
compose.yaml
にあるとおり、デフォルトのログイン情報は次のようになっている
# ~/.config/winapps/compose.yaml
services:
windows:
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'.
独自のWinappsの設定ファイル(compose.yaml
)と同じ場所に上記の情報を反映したFreeRDPの設定ファイルを作成する
winapps]$ vi ~/.config/winapps/winapps.conf
# ~/.config/winapps/winapps.conf
RDP_USER="MyWindowsUser"
RDP_PASS="MyWindowsPassword"
WAFLAVOR="podman"
# 日本語Microsoft IMEを指定
RDP_FLAGS="/kbd:layout:0xE0010411"
2.5.2. RDP接続とMicrosoft Officeのインストール
すでにUbuntuのアプリからWindowsが存在しているはずなので、それをクリックするとRDP接続でWindows(GUI)に入ることができる(※2)
ブラウザはMicrosoft Edgeが最初から入っているので、必要に応じてそれを使ってOfficeのプロダクトに合ったインストールを行う
※2)万が一存在しない場合はRDP接続でなく127.0.0.1:8006
でブラウザからGUI操作を行えばよい。Windowsアイコンは遅くとも2.6のセットアップ後にはアプリに出現するはずである。次のステップでは仮想マシンからログアウトしていることが求められるため、サインアウトすることを忘れてはならない
2.5.3. (必要に応じて)ローカルアカウントでのログインに切り替える
もしOfficeをインストールする際にMicrosoftアカウントでログインしてしまった場合は、Windows内で以下の設定を行う
「設定」>「アカウント」>「ユーザーの情報」>「アカウントの設定」>「ローカルアカウントでのログインに切り替える」
この際、ローカルアカウントである"MyWindowsUser"のパスワードを再度設定する必要がある
2.6. 仮想マシン内のMicrosoft OfficeをUbuntuに公開する
最後にsetup.sh
というスクリプトを実行することで仮想マシン内のWindowsアプリをUbuntuのアプリケーションから使えるようにする
winapps]$ ./setup.sh
ユーザーの回答が求められるため、順に回答する(以下はコンソール出力を整形したもの)
Q1. インストールかアンインストールか
Q) Install or uninstall WinApps?
--> Install
Q2. 現在のユーザーのためにセットアップするか、システム全体に向けてセットアップするか
Q) Configure WinApps for the current user '<your user name>' or the whole system?
--> Current User
Q3. サポートされているアプリケーションを自動的にインストールするか、手動で選択するか
Q) Automatically install supported applications or choose manually?
--> Manual (Default)
Q4. 公式のサポートがあるアプリをどうするか
Q) How would you like to handle officially supported applications?
--> Choose specific officially supported applications to set up
(特定のアプリケーションをセットアップする)
以下のものを選択する:
-
Explorer
: 仮想マシン内のフォルダアクセスのために公開する -
Powerpoint
(Word、Excel等も同じ): 本記事の肝となるアプリ
Q5. 検知された他のアプリケーションはどうするか
Q) How would you like to handle other detected applications?
--> Select which applications to set up
(どのアプリケーションをセットアップするか選択する)
この中には特にめぼしいものはないと思うが、読者の好みで選んでほしい(筆者はPaintを入れている)
3. Ubuntuのアプリから起動できることを確認する
最後に、Ubuntuの「アプリ」から上記で公開したMicrosoft Officeが選べることを確認する
ドックにピン留めして使うこともできる
注)もしダブルクリックしても起動しない場合は、ブラウザ経由で仮想マシンにログインしていることが考えられる原因の一つであるため、ブラウザの方をサインアウトして再試行するとよい
Appendix A. UbuntuとWindowsの共有フォルダの設定
デフォルトではUbuntuの${HOME}
がWindowsから\\host.lan\Data
としてアクセスできるが、compose.yaml
を編集してホームディレクトリ以外を共有フォルダにすることもできる
例えば以下のようにWindows用に作ったフォルダにしてもよい
# ~/.config/winapps/compose.yaml
service:
windows:
volumes:
- data:/storage # Mount volume 'data' to use as Windows 'C:' drive.
# ${HOME} -> Your favorite directory, e.g., ${HOME}/Development/Windows
- ${HOME}/Development/Windows:/shared # Mount Linux user home directory @ '\\host.lan\Data'.
Appendix B. 参考文献
- https://gist.github.com/eylenburg/38e5da371b7fedc0662198efc66be57b
- https://github.com/dockur/windows/tree/master
- https://github.com/winapps-org/winapps
- https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
- https://askubuntu.com/questions/1452418/how-can-i-install-the-dialog-package