Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

Microsoftレポジトリを登録し、Edge、VSCode、PowerShellを”apt install”する。

f:id:espio999:20220104212101p:plain
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をインストールするだけならば、これだけで問題ないのだが、
f:id:espio999:20220104183959p:plain

VSCodeMicrosoft 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 EdgeVSCodeもaptで取り扱うことができる。
f:id:espio999:20220104184152p:plain

次のコマンドでインストールする。

sudo apt install -y powershell code microsoft-edge-stable --fix-missing
apt list powershell code microsoft-edge-stable powershell

インストール結果
f:id:espio999:20220104184231p:plain
f:id:espio999:20220104184244p:plain
f:id:espio999:20220104184301p:plain
f:id:espio999:20220104184311p:plain
f:id:espio999:20220104184320p:plain

余談: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

さすがアパルトヘイトをやっていた国だけに、そこを本国とする企業も同じ傾向があるのではないか、と勘繰ってしまう。