2 ポイント 投稿者 GN⁺ 2023-09-05 | 1件のコメント | WhatsAppで共有
  • VS Code はソースコードと公式配布物で条件が異なるため、MIT ライセンスのバイナリをそのまま入手したいユーザーにとって VSCodium が代替となる
  • Microsoft の vscode ソースコードは MIT ライセンスだが、ダウンロード用の Visual Studio Code 製品は別ライセンスで提供され、テレメトリ/追跡を含む
  • VSCodium は Microsoft の vscode リポジトリをビルドし、生成されたバイナリを GitHub releases に公開する自動化スクリプトとして、配布プロセスを代替する
  • 提供されるバイナリは テレメトリが無効化されており、Windows、Mac OS、Linux 向けの最新リリースを入手できる
  • Homebrew、WinGet、Chocolatey、Scoop、Snap、Nixpkgs、AUR、deb/rpm リポジトリ、Flatpak など、さまざまな パッケージマネージャー でインストール可能

VS Code のソースと Microsoft 配布版の違い

  • VSCodium は Microsoft の VS Code をベースにした自由/オープンソースのバイナリ配布版
  • Microsoft の vscode ソースコードは MIT ライセンスだが、Microsoft が配布する Visual Studio Code 製品は FLOSS ではないライセンスを使用し、テレメトリ/追跡を含む
  • Microsoft 配布ビルドは vscode リポジトリをクローンした後、Microsoft 専用機能が含まれた product.json を適用して作成される
    • その Microsoft 専用機能には telemetry、gallery、logo などが含まれる
    • デフォルトの product.json で直接ビルドすると、Microsoft のカスタマイズがない “clean” ビルドが生成され、既定で MIT ライセンスが適用される

VSCodium のビルドと配布方式

  • VSCodium は、ユーザーがソースを直接ダウンロードしてビルドしなくても MIT ライセンスのビルド を入手できるようにする
  • ビルドスクリプトは Microsoft の vscode リポジトリ をクローンしてビルドコマンドを実行し、その後、生成されたバイナリを GitHub releases にアップロードする
  • VSCodium のバイナリは MIT ライセンス で、テレメトリが無効化されている
  • 自分でビルドしたいユーザーは、Microsoft の vscode リポジトリとビルド手順を利用できる
  • 最新リリースは Windows、Mac OS、Linux 向けに提供される

パッケージマネージャー別インストール

  • Mac で Homebrew を使う場合:
    brew install --cask vscodium
    
  • Windows では複数のパッケージマネージャーを利用できる
    • WinGet
      winget install vscodium
      
    • Chocolatey
      choco install vscodium
      
    • Scoop
      scoop bucket add extras
      scoop install vscodium
      
  • Linux では Snap、Nixpkgs、AUR、Flatpak などでインストールできる
    • Snap Store では Codium という名前で提供される
      snap install codium --classic
      
    • Nix(OS) では vscodiumenvironment.systemPackages に追加するか、ローカルインストールが可能
      nix-env -iA nixpkgs.vscodium
      
    • Arch Linux では AUR の vscodium-bin パッケージを AUR Helper でインストールできる
      yay -S vscodium-bin
      

配布版・リポジトリベースのインストール

  • Parrot OS には VSCodium が標準でインストールされている
    • 標準で表示されない場合は、公式 Parrot リポジトリからインストール可能
      sudo apt update && sudo apt install codium
      
  • Debian/Ubuntu 向け deb パッケージは、VSCodium 関連リポジトリと CDN ミラー経由でインストールする
    • リポジトリの GPG キーを追加した後、Debian/Ubuntu のバージョンに合ったリポジトリ設定を追加する
    • インストールコマンドは次のとおり
      sudo apt update && sudo apt install codium
      
    • vscodium-insiders が必要なら codiumcodium-insiders に置き換える
  • Fedora/RHEL/CentOS/Rocky Linux/OpenSUSE 向け rpm パッケージも、別途リポジトリを追加してインストールする
    • Fedora/RHEL/CentOS/Rocky Linux:
      sudo dnf install codium
      
    • OpenSUSE/SUSE:
      sudo zypper in codium
      
  • Gentoo/Funtoo では ebuild でインストールする
    • Funtoo:
      sudo emerge -av vscodium-bin
      
    • Gentoo:
      sudo emerge -av vscodium
      

Flatpak と移行ドキュメント

  • VSCodium は Flatpak アプリ としても提供されており、ビルドリポジトリは flathub/com.vscodium.codium
  • Flathub リポジトリが有効化された環境では、次のコマンドでインストールできる
    flatpak install flathub com.vscodium.codium
    
  • gnome-software-plugin-flatpak がインストールされていれば、GNOME Software でも VSCodium を見つけられる
  • Visual Studio Code から VSCodium へ移行する際や、利用中に遭遇する可能性のある特記事項は ドキュメント にまとめられている

1件のコメント

 
GN⁺ 2023-09-05
Hacker News の意見
  • こうしたプロジェクトが作ったバイナリは、Big Tech が提供するバイナリよりも信頼しにくいように感じる。Big Tech が最大のトラッカーであることは確かだが、人員や利害関係がはるかに少ないプロジェクトは、サプライチェーン攻撃や、開発者がプロジェクトを売却した場合の敵対的買収に対して、より脆弱になり得るように見える
    この分野に詳しいわけではないので、こうしたプロジェクトがこの種のリスクをどう避けているのか参考になる資料があるとありがたいし、もしかするとこういう懸念は妥当なのかもしれない

    • その懸念は十分に妥当だ。このプロジェクト自体を評価しようとしているわけではないが、元のソースを取り、修正し、再配布するプロセスを信頼できるものにするのは難しい
      大企業は自社がビルドするソフトウェアの信頼の連鎖を保証するために極端な努力をしているし、アプリ配布プラットフォームも、開発者からユーザーの端末上で実行されるアプリまでエンドツーエンドの信頼の連鎖を確保しようと多大な努力をしている
      元の作者だけでなく再配布者も信頼しなければ基本的には不可能だが、検証可能なビルド手順、署名キーとハッシュの確認、再署名といった方法は、必要となる信頼の量を減らしてくれる。ユーザーが理論上同じビルドを自分で再現できるなら、より信じやすくなる
      最良の選択肢は、元プロジェクトが直接ブランドなしのビルドを提供し、VSCodium のようなプロジェクトはテレメトリの無効化のような設定専用になって、再署名が不要になることだ。たとえば Chromium プロジェクトは、Google 専用要素を除いた Chromium バイナリを直接配布している
      主にアプリストアを念頭に置いていたが、Debian のパッケージリポジトリのような場所にもほぼ同じ論理が当てはまる。アプリストアは通常、中間で再署名するのでストアを信頼する必要があるが、こうした企業はその地点の信頼性を確保するために多くの努力をしている
    • 理論上、こうしたプロジェクトが GitHub Actions でビルドし、Microsoft のセキュリティを信頼するなら、Actions で取得したコミットハッシュを確認してアップストリームとの差分を比較すればよい
      その差分が安全に見えるなら、バイナリも信頼できるという意味に近い。もちろん、同じ方法で完全性を保証できないインターネット上のリソースを取得していないかも確認する必要がある
    • Manjaro マシンに vscodium をたった今インストールしたところ、AUR ソースからビルドされていた
      パッケージが使ったソースコードと、ベースだと主張しているアップストリームの Microsoft git SHA を比較できるはずだ: https://aur.archlinux.org/packages/vscodium
      ちょうど今はオープンソースのリモートモード拡張もあるので、プロプライエタリ版を使う理由はなくなった。自分の側では、もうテレメトリはない
    • 現在のテック業界の姿を見て、その中で働いてみてからは、むしろ逆だ
      大企業が何かをきちんとやり、テレメトリという名目でアプリケーションをスパイウェアだらけにしないだろうという信頼はまったくない。むしろ、自由・オープンソースソフトウェアを作ろうと粘り強く取り組む人たちを信じたい
    • 自分も今は元の開発会社の方を信頼している。選択肢がもっと増えるとよい
      Go が最新の SDK で行ったように、再現可能なビルドはここで役に立ち得る: https://go.dev/blog/rebuild
      ソース変更が少ないフォークなら、パッチだけ検証すればよいので特に有効だ
      Linux ディストリビューションもかなり似ている。Debian パッケージをおおむね信頼している理由は、傘となる組織と手続きがあるからだ。独立組織にはそれが少ない
      いつかは再現可能なビルドだけを担当する傘組織ができ、人々がそれを通じてバイナリを配布することもあるかもしれない。ドメイン登録機関のように、独立した検証がその組織を誠実に保てるかもしれない
  • Microsoft は主要な拡張機能を公式リリースでしか使えないよう制限して、この方向での競争をなくしてしまった。個人的に Remote 拡張機能をかなり使っているので、誰かが代替を提供してくれるといいのだけれど

    • 今日は運がよかった
      “jeanp413” の “Open Remote - SSH”、つまり @ext:jeanp413.open-remote-ssh が、少なくとも自分にはクローズドソースの拡張機能とまったく同じように動作している
      Manjaro で vscodium の AUR パッケージを使っていて、拡張機能は vscodium のデフォルトストアから入手した。Microsoft ストアにあるかは分からない
      Code - OSS ではその拡張機能は自分の環境では動作しなかったが、設定ミスのように見えたので、それ以上は追っていない
    • ドキュメントには公式の拡張機能マーケットプレイスへ戻す方法がある: https://github.com/VSCodium/vscodium/blob/master/DOCS.md#how...
      なので codium のマーケットプレイスにない必須拡張機能があるなら、Microsoft マーケットプレイス経由で今でも使える
    • Remote OSS を使い始め、リモートのコードホストをインストールして実行するカスタムスクリプトと一緒に使っている。リモートサーバーでもうまく動くし、リモートホスト上の devcontainers とも相性がいい
      トンネルのインストールと設定を自動処理するには、ここにあるスクリプトのようなものを使える: https://github.com/CGamesPlay/dotfiles/blob/master/files/.lo...
      カスタムスクリプトを自動実行してトンネルを設定する方式を追加する PR も作業中: https://github.com/xaberus/vscode-remote-oss/pull/9
      Remote OSS: https://open-vsx.org/extension/xaberus/remote-oss
    • 代替案は、単に VS Code を使わないことだと思う。職場では IT 部門が公式にサポートしていて、トラッキングも気にしていないので使っているが、個人作業では今でも Sublime を使っている
    • https://open-vsx.org/extension/jeanp413/open-remote-sshhttps://open-vsx.org/extension/jeanp413/open-remote-wsl がある
  • これは基本的に Visual Studio Code のソースコードをダウンロードしてビルドすると得られるものと同じ
    名前も Chrome → Chromium のような言葉遊びに近く見える
    Microsoft と Google が製品を「オープンソース化」すると言いながら、実際には追加のクローズドソース機能が入った製品をリリースする慣行は、好意的に見ても不誠実で、悪く見れば大規模な訴訟ものだ

    • 100% その通り。Google と Apple がこの流れを始め、MS が完成させた。「オープンソース」製品を作っていると言いながら、実際にはクローズドソース版を出すやり方だ
      こうした巨大企業は、オープンソース製品に時間を寄付する純朴なソフトウェアエンジニアたちの作業から利益を得ているが、最終ユーザーに届けるのはクローズドソース版だ
    • 何が不誠実で、何を根拠に訴訟を起こすというのか分からない。「製品をオープンソースとして公開し無料配布したが、自分の望む形ではない」では訴えるのは難しそうだ
    • 「大規模な訴訟もの」というのはかなり大胆な主張だ。vscode や他の製品が GPL ライセンスのコードを不適切に使っている、あるいはライセンス要件に従っていないのでない限り、少なくとも自分の知る限り Microsoft が間違ったことをしているわけではない
      オープンソースプロジェクトを基にプロプライエタリソフトウェアをリリースしている多くの商用企業と同じケースだ
    • これはオープンなエンシティフィケーションモデルだ
    • ここでの「オープンソース」という表現は、かなり公正に使われていると思う。他の人がソースを持っていき、テレメトリ程度を除けばほぼ同一のビルドを合法的に配布できる
      必要なのは、F-Droid ストアのような反機能の区分に近いものだ。たとえば「このアプリは別の非自由アプリに依存している」または「非自由なネットワークサービスに依存している、またはそれを促進している」といった表示だ
  • Vscode は分断を誘導するように設計されている: https://ghuntley.com/fracture/

    • 2022 年にすでに議論されたことがある: https://news.ycombinator.com/item?id=32657709
      要約すると、Microsoft はテレメトリを組み込んだ Visual Studio Code をリリースし、そのため VSCodium のようなプロジェクトがテレメトリなしのカスタムビルドを出し始めた。しかし、これらのプロジェクトは Microsoft のライセンスを受けていないため同じマーケットプレイスを使えず、それが記事タイトルの分断
      続けて、他のプロプライエタリ IDE にも問題があり、GitHub は開発者を囲い込み分断する罠だと言っている
      Microsoft とオープンソースをめぐるこのドラマは Halloween 文書を思い起こさせる: http://www.catb.org/~esr/halloween/
    • その記事が結局たどり着く核心は、Microsoft が最高の IDE と最高の拡張機能を作り、そのため Microsoft を使わないのが難しくなった、ということだ。そこにはいくつもの悪い含意があるし
      うーん……そうなのか? 使うか使わないかでは。 「良すぎて使わずにいられない」というのが正当な不満なのかは、よく分からない
    • その定義なら、拡張性や拡張機能を許可する製品の中で分断を誘導するように設計されていないものを思い浮かべるのは本当に難しい
  • 昨日、オープンソースビルドから乗り換えざるを得なかった。アップデート後、Pylance が DRM のために動作を停止したように見えた。
    起動するたびに、Microsoft が承認していないビルドで使うのはライセンス違反だという大きな警告を表示し、そのまま止まってしまった。

    • 代わりに pyright を使える: https://github.com/microsoft/pyright
      pyright のフリー・オープンソース版だが、一部機能は欠けている。
    • それは Pylance を使うべきでない理由のように聞こえる。
  • 関連記事
    VSCodium – Free/Libre Open Source Software Binaries of VS Code - https://news.ycombinator.com/item?id=31604932 - 2022年6月、コメント430件
    VS Code without Microsoft branding/telemetry/licensing - https://news.ycombinator.com/item?id=23447413 - 2020年6月、コメント200件
    VSCodium – An Open Source Visual Studio Code Without Trackers - https://news.ycombinator.com/item?id=19650109 - 2019年4月、コメント253件
    VSCodium: 100% Open Source Version of vs. Code - https://news.ycombinator.com/item?id=19619956 - 2019年4月、コメント8件
    VSCodium: Binary releases of VSCode without MS branding, telemetry and licensing - https://news.ycombinator.com/item?id=17850960 - 2018年8月、コメント113件

  • 長いことこれを使い、チームにも使うよう勧めていたが、結局あきらめた。Remote SSH と devcontainers 機能がないと、VSCode を最大限活用するところで Microsoft に強く握られている。
    さらに Microsoft はテレメトリについては譲歩したようで、今では完全に無効化できるという。ただし「オフ」が本当にそうなのかは、自分ではテストしていない。

    • 公式の devcontainer 拡張は、主要な処理の大半をオープンソースの devcontainer CLI で行うため、どの IDE の外でも使える。
      さらに Remote OSS を使えば、dev container の中で vscodium のリモートホストを使える。詳しくはこのコメントに書いた: https://news.ycombinator.com/item?id=37386025
  • VSCode と VSCodium の両方を使っている。理由は単純で実用的だ。設定管理と、見分けられる複数ウィンドウのためだ。
    私の VSCode は、Microchip/Atmel/zephyr の作業に必要そうな大量の拡張に完全に占拠されている。
    ansible/elixir の作業には VSCodium を使っている。

    • 2つの異なる環境を維持するために、かなり複雑な使い方をしているように思える。
      VSCodium にはブラウザのプロファイルのように、そのプロファイル内だけであらゆる設定を変えられる機能はないのだろうか? Firefox ではそういう使い方をよくしていて、ウィンドウの見た目も変えている。
  • 継続してメンテナンスしてほしい。私たちのスタートアップの拡張は Open VSX Registry に載っており、その運用にとても満足している。

  • Arch には同等のパッケージと思われるものが、単に code という名前である。

    • code はバイナリ名で、「プロジェクト」自体は https://wiki.archlinux.org/title/Visual_Studio_Code に書かれているように Code - OSS だ。
      メインリポジトリが提供しているパッケージがそれで、VSCodium や Visual Studio Code を使うには AUR を使う必要がある。