6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2のUbuntu20.04にQGIS3.16をインストール

Last updated at Posted at 2021-05-21

概要

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 サブシステム" オプション機能を有効にします。

PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

再起動してWSL2環境を有効にします。

PowerShell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Linuxカーネル更新プログラムパッケージをダウンロードしインストールします。
x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ

WSL2を規定のバージョンに設定します。

PowerShell
wsl --set-default-version 2

Ubuntu 20.04のインストール

WSL2をインストールしたら、Microsoft StoreからUbuntu20.04 LTSをインストールします。

Ubuntuの初期起動とアカウント設定

WSL2のUbuntuアイコンをクリックして、WSL2を起動します。
初期起動では、しばらく自動実行の環境設定が行われます。
その後、ユーザーアカウントの設定メッセージが表示されますので、アカウントの指定を行います。
ユーザー名、パスワードに漢字は入れないでください

シェルが起動したら初めに下記の操作でUbuntuのパッケージを更新します。

パッケージリストの更新

WSL2
sudo apt update

パッケージのアップデート

WSL2
sudo apt upgrade -y

上記で保留されたパッケージのアップデート

WSL2
sudo apt dist-upgrade -y

不要になったパッケージの削除

WSL2
sudo apt autoremove -y

python3およびpip3のインストール

python3がインストールされているかどうかしらべます。

WSL2
apt show python3

インストールされていない場合は、python3のインストールを行います。

WSL2
sudo apt install -y python3
sudo apt install -y python-is-pythn3

pip3がインストールされているかどうかしらべます。

WSL2
apt show python3-pip

インストールされていない場合は、pip3のインストールを行います。

WSL2
sudo apt install python3-pip -y
sudo pip3 install pip -U

matplotlib、tkinterモジュールのインストール

WSL2
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の内容からセットする方法を使用します。

WSL2
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」を実行してみます。

WSL2
xeyes

マウスポインタをトラックする眼のアプリウィンドウが表示されれば、Xサーバは動作していることが確認できます。
エラーが発生する場合は、原因を調べて修正しましょう。

WSL2日本語化

WSL2は日本語対応していますが、QGISを起動した際、レイヤーツリーなどで日本語が表示されない場合があります。
これを修正するため、日本語フォント環境を追加する必要があります。他の言語環境(韓国語など)でも同様に言語パックを追加する必要があるかもしれません。

WSL2
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でも使用するように設定を行います。

WSL2
sudo apt install fontconfig -y

/etc/fonts/local.conf を作成して、下記のコードをペーストして保存します。

local.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>

その他のツールやライブラリのインストール

WSL2
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よりもキビキビと動作します。
QGISonWSL2.jpg

ベンチマーク結果は、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側の既定のブラウザを起動するには、下記の指定をしておきます。

.bashrc
export BROWSER="explorer.exe"

2.QGIS起動時のワーニング
QGIS3.16を起動すると、WSL2シェルにワーニングが表示されます。

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を再起動してください。
.wslconfigファイル
[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

6
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?