概要
Windows10 2004 (x64) 以降のWSL2 Ubuntu 20.04上にQGIS3環境を構築します。
この記事は、「WSLのUbuntuにQGIS3をインストール」のWSL2版です。
Windows10 ビルド2004以降へのアップデートがまだの方は先にOSのアップデートを行ってください。
WSL2 Ubuntu 20.04 への**QGIS3.16.4(+dfsg-1~focal0)**のインストールから起動までの手順を説明します。
-
Ubuntu20.04ではGDAL3.2.1 以降がインストールされますので、UNVTベクタータイルツールキットと共存ができます。
-
2022年の22H2アップデート以降で WSLg が正式リリースされました。WSLgをインストールすると、後半に記載しているXサーバーのインストールの章の作業は不要になります。
QGISについて
QGISは地理情報のデータ閲覧、編集分析機能を有するクロスプラットフォームのオープンソースソフトウェアです。
最新バージョンは QGIS 3.18.3 'Zürich' で、 14.05.2021にリリースされました。
近年、お仕事や研究で地理空間情報を扱っている多くの方に利用されています。
Windows10 ver2004以降、WindowsでWSL2(Windows Subsystem for Linux) が使えるようになりました。
これまでWindowsユーザーは、OSGeo4Wまたはスタンドアロン版QGISをインストールするかVirtualBoxやVMWare Workstation Playerを使用してOSGeoLiveを使用してQGISを使用していました。
Windows10でWSL環境を利用することが可能になったため、Linux版QGISを直接使用することができるようになりました。
WSL2のインストール
WSL2のインストールですが、Windowsのログイン名が漢字の場合はうまくゆかないことがあります。
この場合、1バイト英数文字のユーザーアカウントを新たに作成してください。
自分のアカウントが2バイト文字かどうかわからない方は、コマンドプロンプトを起動して表示されるユーザーフォルダの文字列をじーっと見てご判断ください。
WSL2の準備
WSL2をインストールしていない場合は、管理者モードでPowerShellを開き、以下を実行します。
"Linux 用 Windows サブシステム" オプション機能を有効にします。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
再起動してWSL2環境を有効にします。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
Linuxカーネル更新プログラムパッケージをダウンロードしインストールします。
x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ
WSL2を規定のバージョンに設定します。
wsl --set-default-version 2
Ubuntu 20.04のインストール
WSL2をインストールしたら、Microsoft StoreからUbuntu20.04 LTSをインストールします。
Ubuntuの初期起動とアカウント設定
WSL2のUbuntuアイコンをクリックして、WSL2を起動します。
初期起動では、しばらく自動実行の環境設定が行われます。
その後、ユーザーアカウントの設定メッセージが表示されますので、アカウントの指定を行います。
ユーザー名、パスワードに漢字は入れないでください
シェルが起動したら初めに下記の操作でUbuntuのパッケージを更新します。
パッケージリストの更新
sudo apt update
パッケージのアップデート
sudo apt upgrade -y
上記で保留されたパッケージのアップデート
sudo apt dist-upgrade -y
不要になったパッケージの削除
sudo apt autoremove -y
python3およびpip3のインストール
python3がインストールされているかどうかしらべます。
apt show python3
インストールされていない場合は、python3のインストールを行います。
sudo apt install -y python3
sudo apt install -y python-is-pythn3
pip3がインストールされているかどうかしらべます。
apt show python3-pip
インストールされていない場合は、pip3のインストールを行います。
sudo apt install python3-pip -y
sudo pip3 install pip -U
matplotlib、tkinterモジュールのインストール
sudo pip3 install matplotlib
sudo apt install python3-tk -y
Windows環境にXサーバをインストールする
Linux環境でQGISのGUIを表示するためには、Xサーバが必要になります。
ホストOSのWindows側でXサーバを動かして、Windows上でGUI環境をサポートします。
###VcXsrv インストール
VcXsrv Windows X ServerのダウンロードページからVcXsrvをダウンロードして、Windowsにインストールします。
Windows10側で、XLaunchを起動する
インストールが終了すると、デスクトップにXLaunchというアイコンが作成されます。
XLaunchアイコンをクリックするか、[スタート]メニューの[VcXsrv]-[XLaunch]を選択して、XLaunchを起動します。
Display settingダイアログが表示されるので、 Multiple windows を選択して、次へ進み、Select how to start clientsで Start on client を選択し、次へ進みます。
Extra settingsで Clipboard, Primary Selection, Native opengl を選択します。また、Additional parameters for VcXsrvの欄に-ac
と書き込むこと(参考)。
次回起動時のために、設定をファイルに保存します。
以降は手動でXLaunchを起動する際、保存したファイルをクリックします。
表示先ディスプレイの設定
X Serverのディスプレイ指定は下記の書式になります。
DISPLAY=<ホスト名/IPアドレス>:<ディスプレイ番号>.<スクリーン番号>
下記のようにWSL2のターミナルでコマンドを入力し、ログインユーザーの.profileにディスプレイ指定を追加します。
Window上でcygwinを使用していて、cygwin環境とディスプレイ設定値 0.0 がバッティングする場合、1.0 や 2.0を指定しましょう。
なお、WSL2ではIPアドレスがホストの再起動ごとに変わってしまうため、WSL2のnameserverの内容からセットする方法を使用します。
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 >> ~/.profile
echo export LIBGL_ALWAYS_INDIRECT=1 >> ~/.profile
source ~/.profile
Xサーバ対応アプリをインストールする
Xサーバの動作チェックのために、x11のユーティリティをインストールし、テストしましょう。
sudo apt install x11-apps
Xアプリ「xeyes」を実行してみます。
xeyes
マウスポインタをトラックする眼のアプリウィンドウが表示されれば、Xサーバは動作していることが確認できます。
エラーが発生する場合は、原因を調べて修正しましょう。
WSL2日本語化
WSL2は日本語対応していますが、QGISを起動した際、レイヤーツリーなどで日本語が表示されない場合があります。
これを修正するため、日本語フォント環境を追加する必要があります。他の言語環境(韓国語など)でも同様に言語パックを追加する必要があるかもしれません。
sudo apt -y install language-pack-ja
sudo update-locale LANG=ja_JP.UTF8
sudo apt -y install manpages-ja manpages-ja-dev
日本語フォントインストール
WIndows側のフォントをUbuntu20.04でも使用するように設定を行います。
sudo apt install fontconfig -y
/etc/fonts/local.conf を作成して、下記のコードをペーストして保存します。
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>
その他のツールやライブラリのインストール
sudo apt update
sudo apt upgrade -y
sudo apt-get install git build-essential libssl-dev libreadline-dev zlib1g-dev x11-apps x11-utils x11-xserver-utils libsqlite3-dev nodejs fonts-ipafont libxml2-dev libxslt1-dev -y
fonts-ipafontなど、一部はすでにインストールされているかもしれません。
QGIS3のインストール
2020/10/29 QGIS3のGPG変更にともない、インストール記述を修正しました。
パッケージリストにQGIS3のリポジトリを追加
QGIS3をインストールするために、WSL(Ubuntu20.04)のパッケージリストにQGIS3用のエントリを追加します。
最初にこの手順に必要なツールをインストールする
sudo apt install gnupg software-properties-common
公開鍵を追加する
パッケージリストにエントリを追加したら、リポジトリアクセス用の公開鍵をWSL環境に追加します。
wget -qO - https://qgis.org/downloads/qgis-2020.gpg.key | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/qgis-archive.gpg --import
sudo chmod a+r /etc/apt/trusted.gpg.d/qgis-archive.gpg
最新の安定版QGIS (3.16.x Hannover)の含まれるUbuntu GISレポジトリを追加します。
sudo add-apt-repository ppa:ubuntugis/ppa
公開鍵を追加したら、リポジトリを更新します。
sudo apt update
sudo apt upgrade -y
QGIS3のインストール
QGIS3とツール等をインストールします。
必要なツールが他にあれば、コマンドラインに追加します。
sudo apt install -y qgis python3-qgis qgis-plugin-grass saga
sagaを使用する場合、sagaの指定は最後にした方が良いようです。
なお、sagaのバージョンはパッケージリストでは2.3.1になっています。
#QGISの起動と動作確認
WSLのshellからqgisを起動します。
$ qgis
WSL2でqgisを起動するとWindowsよりもキビキビと動作します。
ベンチマーク結果は、OSGeo.krの Sanghee Shin さんのブログにあるとおりです。内容を抜粋して日本語訳しました。
QGISプログラムの起動速度とデータの読み込み速度は以下の通りです。
プラットフォーム | QGISプラログラムの起動 (初回) |
QGISプラログラムの起動 (2回目) |
データの読込 (Windowsストア) |
データの読み込み (WSLストア) |
---|---|---|---|---|
Windows10 | 38.06秒 | 17.81秒 | 17.05秒 | ロード不可 |
WSL2 | 4.38秒 | 4.11秒 | 17.75秒 | 6.85秒 |
- データがWSL2のファイルシステムにある場合QGISの処理速度は、Windows QGISを圧倒する。MSもWSL2のプログラムを利用してデータを処理する場合、Windowsではなく、WSL2のファイルシステムに直接保存することをお勧めします。
- ちなみにWSL2からWindows上のファイルにアクセスする場合、WSL1より速度が遅くならない。(下のリンク参照)
https://docs.microsoft.com/en-us/windows/wsl/compare-versions
#不具合など
1.QGISアプリ内のURLリンク遷移
QGISアップデートのリンクが下のステータスバーに出ることがありますが、クリックしてもリンクが開きません。
WSL上にChromeやFirefox等をインストールするか、シェル環境のブラウザを指定をする必要があります。
Windows側の既定のブラウザを起動するには、下記の指定をしておきます。
export BROWSER="explorer.exe"
2.QGIS起動時のワーニング
QGIS3.16を起動すると、WSL2シェルにワーニングが表示されます。
Warning: QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-username'
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualXPath' [XML Path Language - XPath]
- 'VirtualXPath' [XML Path Language - XPath]
Warning 4: Failed to open /usr/share/qgis/resources/data/world_map.gpkg: 許可がありません.
このワーニングはQGISのインストーラーのバグのようで、r+wアクセス権が設定されていないためのようです。
3.WSL2のホストメモリ枯渇対応
@yoichiwo7さんの記事から引用させていただきます。
%USERPROFILE%.wslconfigのコンフィグに以下の設定を行います。
- **%USERPROFILE%**はC:\Users\taroのようなホームディレクトリを指します。
- コンフィグが存在しない場合は作成してください。
- 設定した後はWSL2を再起動するか、OSを再起動してください。
[wsl2]
memory=6GB
swap=0
- memoryにはWSL2が最大確保するメモリサイズを指定します。PCの搭載メモリとWSL2の使用用途に応じてメモリサイズの値は変更してください。ちなみに未指定時のデフォルト値はPC搭載メモリの80%です。
- swapを0に設定してスワップを無効にします。(どちらでもよい。詳しくは記事を参照してください)
QGISは適当に動かしてチェックしているので、動作上の不具合を発見した方はご報告ください。
#参考ページ
WSLのインストールについてはこちらを参考にしました。
https://docs.microsoft.com/ja-jp/windows/wsl/install-win10
WSL1のWSL2コンバートについてはこちらを参考にしました。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel
VcXsrvインストールについてはこちらを参考にしました。
https://www.atmarkit.co.jp/ait/articles/1812/06/news040.html
WSL2におけるVcXsrvの設定はこちらを参考にしました。
https://qiita.com/ryoi084/items/0dff11134592d0bb895c
LinuxへのQGISのインストールについてはこちらを参考にしました。
https://www.qgis.org/ja/site/forusers/alldownloads.html#debian-ubuntu
https://www.gis-blog.com/how-to-install-qgis-3-on-ubuntu/
ベンチマーク結果についてはOSGeo.krの Sanghee Shin さんのブログを引用させていただきました。
https://endofcap.tistory.com/1863
Linuxで使える日本語フリーフォントには次のものもあります。
http://note.kurodigi.com/free-font2019/
国際化フォント
https://wiki.ubuntulinux.jp/UbuntuTips/Desktop/InstallFont
WSL2のメモリコントロールについては @yoichiwo7 さんの記事から引用させていただきました。
https://qiita.com/yoichiwo7/items/e3e13b6fe2f32c4c6120