VSCodium - Bản nhị phân mã nguồn mở của VSCode
(vscodium.com)- Vì mã nguồn VS Code và bản phân phối chính thức có các điều kiện khác nhau, VSCodium trở thành lựa chọn thay thế cho người dùng muốn nhận ngay bản nhị phân theo giấy phép MIT
- Mã nguồn
vscodecủa Microsoft mang giấy phép MIT, nhưng sản phẩm Visual Studio Code để tải xuống lại đi kèm giấy phép riêng và có tích hợp telemetry/theo dõi - VSCodium thay thế quy trình phát hành bằng các script tự động build từ kho
vscodecủa Microsoft rồi đưa bản nhị phân kết quả lên GitHub releases - Các bản nhị phân được cung cấp có telemetry bị vô hiệu hóa và có thể tải bản phát hành mới nhất cho Windows, Mac OS, Linux
- Có thể cài đặt qua nhiều trình quản lý gói như Homebrew, WinGet, Chocolatey, Scoop, Snap, Nixpkgs, AUR, kho deb/rpm, Flatpak
Sự khác biệt giữa mã nguồn VS Code và bản phân phối của Microsoft
- VSCodium là bản phân phối nhị phân tự do/mã nguồn mở dựa trên VS Code của Microsoft
- Mã nguồn
vscodecủa Microsoft mang giấy phép MIT, nhưng sản phẩm Visual Studio Code do Microsoft phân phối sử dụng giấy phép không phải FLOSS và bao gồm telemetry/theo dõi - Bản build do Microsoft phát hành được tạo bằng cách clone kho
vscoderồi áp dụngproduct.jsoncó chứa các tính năng riêng của Microsoft- Các tính năng riêng của Microsoft đó bao gồm telemetry, gallery, logo, v.v.
- Nếu tự build trực tiếp với
product.jsonmặc định, sẽ tạo ra một bản build “sạch” không có các tùy biến của Microsoft, và mặc định áp dụng giấy phép MIT
Cách build và phát hành của VSCodium
- VSCodium giúp người dùng nhận được bản build giấy phép MIT mà không cần tự tải mã nguồn về rồi build
- Script build sẽ clone
vscoderepository của Microsoft và chạy lệnh build, sau đó tải bản nhị phân kết quả lên GitHub releases - Các bản nhị phân của VSCodium mang giấy phép MIT và telemetry đã bị vô hiệu hóa
- Người dùng muốn tự build có thể dùng kho
vscodevà hướng dẫn build của Microsoft - Bản phát hành mới nhất được cung cấp cho Windows, Mac OS và Linux
Cài đặt theo từng trình quản lý gói
- Nếu dùng Homebrew trên Mac:
brew install --cask vscodium - Trên Windows có thể dùng nhiều trình quản lý gói
- WinGet
winget install vscodium - Chocolatey
choco install vscodium - Scoop
scoop bucket add extras scoop install vscodium
- WinGet
- Trên Linux có thể cài qua Snap, Nixpkgs, AUR, Flatpak, v.v.
- Trên Snap Store, ứng dụng được cung cấp với tên Codium
snap install codium --classic - Trên Nix(OS), có thể thêm
vscodiumvàoenvironment.systemPackageshoặc cài cục bộnix-env -iA nixpkgs.vscodium - Trên Arch Linux, có thể cài gói
vscodium-bintừ AUR bằng AUR Helperyay -S vscodium-bin
- Trên Snap Store, ứng dụng được cung cấp với tên Codium
Cài đặt dựa trên bản phân phối/kho phần mềm
- Parrot OS đã cài sẵn VSCodium
- Nếu không thấy theo mặc định, có thể cài từ kho Parrot chính thức
sudo apt update && sudo apt install codium
- Nếu không thấy theo mặc định, có thể cài từ kho Parrot chính thức
- Gói deb cho Debian/Ubuntu được cài thông qua kho liên quan đến VSCodium và các mirror CDN
- Thêm khóa GPG của kho rồi thêm cấu hình kho phù hợp với phiên bản Debian/Ubuntu
- Lệnh cài đặt như sau
sudo apt update && sudo apt install codium - Nếu muốn
vscodium-insidersthì thaycodiumbằngcodium-insiders
- Gói rpm cho Fedora/RHEL/CentOS/Rocky Linux/OpenSUSE cũng được cài bằng cách thêm kho riêng
- Fedora/RHEL/CentOS/Rocky Linux:
sudo dnf install codium - OpenSUSE/SUSE:
sudo zypper in codium
- Fedora/RHEL/CentOS/Rocky Linux:
- Trên Gentoo/Funtoo thì cài bằng ebuild
- Funtoo:
sudo emerge -av vscodium-bin - Gentoo:
sudo emerge -av vscodium
- Funtoo:
Flatpak và tài liệu migration
- VSCodium cũng được cung cấp dưới dạng ứng dụng Flatpak, và kho build là flathub/com.vscodium.codium
- Trong môi trường đã bật kho Flathub, có thể cài bằng lệnh sau
flatpak install flathub com.vscodium.codium - Nếu đã cài
gnome-software-plugin-flatpak, bạn cũng có thể tìm thấy VSCodium trong GNOME Software - Những điểm khác biệt có thể gặp khi migration từ Visual Studio Code sang VSCodium hoặc trong quá trình sử dụng được tổng hợp trong tài liệu
1 bình luận
Ý kiến trên Hacker News
Các binary do những dự án kiểu này tạo ra khiến tôi cảm thấy khó tin tưởng hơn so với binary do Big Tech cung cấp. Dù Big Tech đúng là những bên theo dõi lớn nhất, các dự án có nhân lực và lợi ích liên quan ít hơn nhiều có vẻ dễ bị tấn công chuỗi cung ứng hơn, hoặc dễ bị thâu tóm mang tính thù địch khi nhà phát triển bán dự án
Tôi không quá am hiểu lĩnh vực này, nên sẽ rất hữu ích nếu có tài liệu tham khảo về cách các dự án như vậy tránh những rủi ro này; và có lẽ mối lo này cũng có cơ sở
Các công ty lớn nỗ lực đến mức cực đoan để bảo đảm chuỗi tin cậy cho phần mềm họ build, và các nền tảng phân phối ứng dụng cũng bỏ nhiều công sức để bảo đảm chuỗi tin cậy đầu-cuối từ nhà phát triển đến ứng dụng chạy trên thiết bị của người dùng
Về cơ bản là không thể nếu không tin cả tác giả gốc lẫn bên phân phối lại, nhưng các cách như quy trình build có thể kiểm chứng, kiểm tra khóa ký và hash, ký lại... giúp giảm lượng niềm tin cần thiết. Nếu về mặt lý thuyết người dùng có thể tự tái tạo cùng một bản build, thì sẽ dễ tin hơn
Lựa chọn tốt nhất là dự án gốc tự cung cấp các bản build không gắn thương hiệu, còn các dự án như VSCodium chỉ còn là chỉ cấu hình như tắt telemetry, để không cần ký lại. Ví dụ, dự án Chromium tự phân phối binary Chromium không có các thành phần riêng của Google
Tôi chủ yếu nghĩ đến các app store, nhưng gần như cùng một logic cũng áp dụng cho những nơi như kho gói Debian. App store thường ký lại ở giữa nên bạn phải tin store, nhưng các công ty này bỏ nhiều công sức để bảo đảm độ tin cậy tại điểm đó
Nếu phần khác biệt đó trông an toàn, thì gần như có nghĩa là binary cũng có thể tin được. Tất nhiên cũng phải kiểm tra xem nó có tải về tài nguyên Internet nào không thể bảo đảm tính toàn vẹn theo cùng cách hay không
Bạn có thể so sánh mã nguồn mà gói đã dùng với git SHA upstream của Microsoft mà nó tuyên bố dựa trên: https://aur.archlinux.org/packages/vscodium
Đúng lúc giờ cũng đã có extension chế độ remote mã nguồn mở, nên không còn lý do gì để dùng bản độc quyền nữa. Về phía tôi thì không còn telemetry
Tôi hoàn toàn không tin rằng các công ty lớn sẽ làm mọi thứ cho đúng, hay sẽ không nhồi đầy ứng dụng bằng spyware dưới cái tên telemetry. Tôi thà tin những người kiên trì bám trụ để tạo ra phần mềm tự do và mã nguồn mở hơn
Build có thể tái tạo như cách Go đã làm trong SDK mới nhất có thể giúp ích ở đây: https://go.dev/blog/rebuild
Điều này đặc biệt hiệu quả với một fork có ít thay đổi mã nguồn, vì chỉ cần kiểm chứng các patch
Các bản phân phối Linux cũng khá tương tự. Lý do tôi phần lớn tin các gói Debian là vì có một tổ chức bảo trợ và các quy trình. Các tổ chức độc lập thì ít có điều đó hơn
Một ngày nào đó có thể sẽ xuất hiện một tổ chức bảo trợ chỉ phụ trách các build có thể tái tạo, và mọi người có thể phân phối binary thông qua đó. Giống như các tổ chức đăng ký tên miền, việc kiểm chứng độc lập có thể giữ cho tổ chức đó trung thực
Microsoft đã hạn chế các extension chủ chốt chỉ được dùng trong bản phát hành chính thức, qua đó loại bỏ cạnh tranh theo hướng này. Cá nhân tôi dùng remote extension khá nhiều, nên sẽ rất tốt nếu có ai đó cung cấp lựa chọn thay thế
“Open Remote - SSH” của “jeanp413”, tức
@ext:jeanp413.open-remote-ssh, ít nhất với tôi thì hoạt động y hệt extension mã nguồn đóngTôi đang dùng gói vscodium AUR trên Manjaro, và extension thì lấy từ store mặc định của vscodium. Không biết nó có trên Microsoft Store không
Trong
Code - OSSthì extension đó không hoạt động với tôi; trông giống lỗi cấu hình, và tôi không điều tra thêmVì vậy nếu có extension bắt buộc phải có mà marketplace của codium không có, bạn vẫn có thể dùng thông qua Microsoft Marketplace
Nếu muốn tự động xử lý việc cài đặt và cấu hình tunnel, bạn có thể dùng thứ giống script ở đây: https://github.com/CGamesPlay/dotfiles/blob/master/files/.lo...
Tôi cũng đang làm một PR để thêm cách tự động chạy script tùy chỉnh nhằm thiết lập tunnel: https://github.com/xaberus/vscode-remote-oss/pull/9
Remote OSS: https://open-vsx.org/extension/xaberus/remote-oss
Về cơ bản, đây là thứ bạn nhận được khi tải mã nguồn của Visual Studio Code về rồi build
Cái tên cũng trông gần như một kiểu chơi chữ giống Chrome → Chromium
Việc Microsoft và Google nói rằng họ “mở mã nguồn” sản phẩm, nhưng thực tế lại phát hành sản phẩm có các tính năng bổ sung mã nguồn đóng, nhìn nhẹ thì là thiếu trung thực, nhìn nặng thì là chuyện có thể dẫn tới một vụ kiện khổng lồ
Các tập đoàn khổng lồ này hưởng lợi từ công sức của những kỹ sư phần mềm ngây thơ hiến tặng thời gian cho sản phẩm mã nguồn mở, nhưng thứ họ đưa đến người dùng cuối lại là phiên bản mã nguồn đóng
Trường hợp này cũng giống vô số công ty thương mại phát hành phần mềm độc quyền dựa trên dự án mã nguồn mở
Thứ cần có giống một kiểu phân loại phản tính năng như trên store F-Droid hơn. Ví dụ các nhãn như “ứng dụng này phụ thuộc vào ứng dụng không tự do khác” hoặc “phụ thuộc vào hay khuyến khích dùng dịch vụ mạng không tự do”
Vscode được thiết kế để tạo ra sự phân mảnh: https://ghuntley.com/fracture/
Tóm lại, Microsoft phát hành Visual Studio Code có tích hợp telemetry, nên các dự án như VSCodium bắt đầu tung ra các bản build tùy chỉnh không có telemetry. Nhưng vì các dự án này không được Microsoft cấp phép nên không thể dùng cùng marketplace, và đó chính là sự phân mảnh trong tiêu đề bài viết
Tiếp đó bài viết nói rằng các IDE độc quyền khác cũng có vấn đề, và GitHub là cái bẫy để giam giữ và chia rẽ lập trình viên
Vở kịch quanh Microsoft và mã nguồn mở này làm tôi nhớ đến các tài liệu Halloween: http://www.catb.org/~esr/halloween/
Ừm… vậy sao? Dùng hoặc không dùng thôi. Tôi không chắc “nó tốt đến mức không thể không dùng” có phải là một phàn nàn chính đáng hay không
Hôm qua tôi đã phải chuyển khỏi bản build mã nguồn mở. Sau khi cập nhật, Pylance có vẻ đã ngừng hoạt động vì DRM
Mỗi lần khởi động, nó hiện một cảnh báo lớn rằng dùng trên bản build không được MS phê duyệt là vi phạm giấy phép, rồi dừng ngay lập tức
Đây là phiên bản tự do và mã nguồn mở của pyright, nhưng thiếu một số tính năng
Các bài liên quan
VSCodium – Free/Libre Open Source Software Binaries of VS Code - https://news.ycombinator.com/item?id=31604932 - tháng 6 năm 2022, 430 bình luận
VS Code without Microsoft branding/telemetry/licensing - https://news.ycombinator.com/item?id=23447413 - tháng 6 năm 2020, 200 bình luận
VSCodium – An Open Source Visual Studio Code Without Trackers - https://news.ycombinator.com/item?id=19650109 - tháng 4 năm 2019, 253 bình luận
VSCodium: 100% Open Source Version of vs. Code - https://news.ycombinator.com/item?id=19619956 - tháng 4 năm 2019, 8 bình luận
VSCodium: Binary releases of VSCode without MS branding, telemetry and licensing - https://news.ycombinator.com/item?id=17850960 - tháng 8 năm 2018, 113 bình luận
Tôi đã dùng nó trong thời gian dài và cũng bảo cả nhóm dùng, nhưng cuối cùng đã bỏ cuộc. Nếu không có Remote SSH và devcontainers, Microsoft vẫn nắm rất chặt phần giúp tận dụng tối đa VSCode
Hơn nữa, có vẻ Microsoft đã lùi bước về telemetry, và giờ có thể tắt hoàn toàn. Tuy nhiên tôi chưa tự kiểm tra xem “tắt” có thật sự là tắt không
Ngoài ra, nếu dùng Remote OSS, bạn có thể dùng host từ xa vscodium bên trong dev container. Chi tiết tôi đã viết trong bình luận này: https://news.ycombinator.com/item?id=37386025
Tôi dùng cả VSCode lẫn VSCodium. Lý do đơn giản và thực dụng: quản lý cấu hình và nhiều cửa sổ có thể phân biệt được
VSCode của tôi bị nhấn chìm hoàn toàn trong một lượng extension khổng lồ có vẻ cần cho công việc Microchip/Atmel/zephyr
Tôi dùng VSCodium cho công việc ansible/elixir
VSCodium không có tính năng giống profile trình duyệt, cho phép thay đổi đủ loại thiết lập chỉ trong profile đó à? Tôi thường dùng Firefox theo cách như vậy, và cũng để giao diện cửa sổ khác nhau
Mong dự án tiếp tục được duy trì. Extension của startup chúng tôi đã được đưa lên Open VSX Registry, và chúng tôi rất hài lòng với cách vận hành đó
Trên Arch có một gói có vẻ tương đương, tên đơn giản là
codecodelà tên binary, còn bản thân “dự án” làCode - OSSnhư được ghi tại https://wiki.archlinux.org/title/Visual_Studio_CodeĐó là gói do kho chính cung cấp; nếu muốn dùng VSCodium hoặc Visual Studio Code thì phải dùng AUR