Ubuntuでのパッケージ・マネジャーと言えば”apt”だが、そのレポジトリでVSCodeは提供されていない。Ubuntuの運営母体であるCanonicalは、”snap”と言うパッケージ・マネジャーを開発し、それを用いたアプリ・ストア*1を運営している。VSCodeはこちらで提供されているのだが、運営上の問題がある。率直に言えば、多言語対応に真剣ではないのだ。本題から外れるので、これについては「余談」で触れる。
Snapのライバル的存在として、Flatpakがある。こちらもアプリ・ストア*2を運営している。とはいえ、闇雲にパッケージ・マネジャーを増やすと、運用管理上の問題が生じやすい。端的には整合性の問題で、特に後者は深刻な問題を生じやすい。
- アプリと、それを導入したマネジャー
- 導入したアプリと、その依存関係
私は、可能な限り単一のパッケージ・マネジャーで運用したい。そしてVSCodeを”apt install”で導入したい。それはMicrosoftのレポジトリを登録すれば可能だ。この投稿では、その方法を紹介する。
apt-add-repository ~ apt install
まずMicrosoftの公式情報を確認する。次のサイトで、Microsoft公式のaptレポジトリと、その接続方法が紹介されている。そして、次の引用が示す通り、Microsoftは「packages.microsoft.com」配下に、多数のレポジトリを抱えている。
docs.microsoft.com
Note that not all supported distributions are listed here. See the current supported package repositories at https://packages.microsoft.com/.
まず、サイトに紹介されている通り、ディストリビューションのレポジトリを登録する。この投稿では、対象をUbuntu 20.04とする。
サイトでは、証明書のインストールに”curl”を用いている。”wget”で代用する場合、次のコマンドを実行することになる。
wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add - sudo apt-add-repository https://packages.microsoft.com/ubuntu/20.04/prod
PowerShellをインストールするだけならば、これだけで問題ないのだが、
VSCode、Microsoft Edgeをインストールするならば、さらにレポジトリを登録する必要がある。以下が、それぞれのレポジトリに通じるURLだ。
Microsoft Edge | https://packages.microsoft.com/repos/edge |
VSCode | https://packages.microsoft.com/repos/code |
これらのレポジトリを、対象を限定して登録する。コマンドは次のようになる。
ちなみに、この投稿では対象をEdge、VSCodeに限定しているが、他に目当てのものがあれば、同じ手順でレポジトリ登録できる。URLを適切なものへ置き換えるだけだ。
sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/code stable main" sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/edge stable main" sudo apt update -y
対象を限定するためのオプションは、それぞれ次の事柄を指している。
deb [arch=amd64] | バイナリのみ Intel 64bit環境 |
stable | 安定版 |
main | mainカテゴリ |
aptレポジトリの管理情報(sources.list)と、登録情報に付いて理解を深めるなら、投稿末尾にまとめた参照先が有用だろう。また「https://packages.microsoft.com/repos/」以下のフォルダをブラウザで辿ってみるのも、オプションを理解するのに有用だ。
ここまで実行すれば、Microsoft Edge、VSCodeもaptで取り扱うことができる。
次のコマンドでインストールする。
sudo apt install -y powershell code microsoft-edge-stable --fix-missing apt list powershell code microsoft-edge-stable powershell
🔎インストール結果
余談:Snapで提供されるパッケージと、多言語対応の問題
Snapで厄介なのが、Canonicalの運営だ。snap上のパッケージはCanonicalが独自に生成しており、多言語対応の配慮に欠けているのだ。端的には、ibusなどとの連携に不具合があるのだ。
Snapパッケージで導入したVSCodeの場合、日本語、中国語入力に問題があることは、数年前から報告され続けており、解決方法も分かっていながら、一向に対応する気配がないのだ。
Cannot use any input method when installed from snap · Issue #77382 · microsoft/vscode · GitHub
unable to input chinese character · Issue #96041 · microsoft/vscode · GitHub
Snap version Vscode cannot use iBus Input in Ubuntu 20.10 · Issue #115399 · microsoft/vscode · GitHub
forum.snapcraft.io
さすがアパルトヘイトをやっていた国だけに、そこを本国とする企業も同じ傾向があるのではないか、と勘繰ってしまう。