VSCodium - ไบนารีโอเพนซอร์สของ VSCode
(vscodium.com)- เนื่องจาก VS Code มีเงื่อนไขของซอร์สโค้ดและไฟล์แจกจ่ายอย่างเป็นทางการที่แตกต่างกัน VSCodium จึงเป็นทางเลือกสำหรับผู้ใช้ที่ต้องการรับ ไบนารีภายใต้ไลเซนส์ MIT โดยตรง
- ซอร์สโค้ด
vscodeของ Microsoft อยู่ภายใต้ ไลเซนส์ MIT แต่ผลิตภัณฑ์ Visual Studio Code สำหรับดาวน์โหลดใช้ไลเซนส์แยกต่างหากและมีการวัดทางไกล/การติดตามรวมอยู่ด้วย - VSCodium ใช้สคริปต์อัตโนมัติที่ build repository
vscodeของ Microsoft แล้วอัปโหลดไบนารีผลลัพธ์ไปยัง GitHub releases เพื่อทำหน้าที่แทนกระบวนการแจกจ่าย - ไบนารีที่ให้มานั้น ปิดใช้งาน telemetry แล้ว และสามารถรับรุ่นล่าสุดสำหรับ Windows, Mac OS และ Linux ได้
- ติดตั้งได้ผ่าน package manager หลากหลาย เช่น Homebrew, WinGet, Chocolatey, Scoop, Snap, Nixpkgs, AUR, repository deb/rpm, Flatpak เป็นต้น
ความแตกต่างระหว่างซอร์สของ VS Code กับดิสทริบิวชันของ Microsoft
- VSCodium คือดิสทริบิวชันไบนารีแบบเสรี/โอเพนซอร์สที่อิงจาก VS Code ของ Microsoft
- ซอร์สโค้ด
vscodeของ Microsoft อยู่ภายใต้ไลเซนส์ MIT แต่ผลิตภัณฑ์ Visual Studio Code ที่ Microsoft แจกจ่ายใช้ไลเซนส์ที่ไม่ใช่ FLOSS และมี telemetry/การติดตามรวมอยู่ด้วย - build ที่ Microsoft แจกจ่ายสร้างขึ้นโดย clone repository
vscodeแล้วนำproduct.jsonที่มีฟีเจอร์เฉพาะของ Microsoft ไปใช้- ฟีเจอร์เฉพาะของ Microsoft ดังกล่าวรวมถึง telemetry, gallery, logo เป็นต้น
- หาก build เองด้วย
product.jsonพื้นฐาน จะได้ build แบบ “clean” ที่ไม่มีการปรับแต่งของ Microsoft และโดยพื้นฐานจะใช้ไลเซนส์ MIT
วิธี build และแจกจ่ายของ VSCodium
- VSCodium ช่วยให้ผู้ใช้รับ build ภายใต้ไลเซนส์ MIT ได้โดยไม่ต้องดาวน์โหลดซอร์สมา build เอง
- สคริปต์ build จะ clone
vscoderepository ของ Microsoft แล้วรันคำสั่ง build จากนั้นอัปโหลดไบนารีผลลัพธ์ไปยัง GitHub releases - ไบนารีของ VSCodium อยู่ภายใต้ ไลเซนส์ MIT และปิดใช้งาน telemetry แล้ว
- ผู้ใช้ที่ต้องการ build เองสามารถใช้ repository
vscodeและคำแนะนำการ build ของ Microsoft ได้ - รุ่นล่าสุดมีให้สำหรับ Windows, Mac OS และ Linux
การติดตั้งตาม package manager
- หากใช้ Homebrew บน Mac:
brew install --cask vscodium - บน Windows สามารถใช้ package manager ได้หลายตัว
- WinGet
winget install vscodium - Chocolatey
choco install vscodium - Scoop
scoop bucket add extras scoop install vscodium
- WinGet
- บน Linux สามารถติดตั้งผ่าน Snap, Nixpkgs, AUR, Flatpak เป็นต้น
- ใน Snap Store ให้บริการภายใต้ชื่อ Codium
snap install codium --classic - ใน Nix(OS) สามารถเพิ่ม
vscodiumลงในenvironment.systemPackagesหรือติดตั้งแบบ local ได้nix-env -iA nixpkgs.vscodium - บน Arch Linux สามารถติดตั้งแพ็กเกจ
vscodium-binจาก AUR ด้วย AUR Helper ได้yay -S vscodium-bin
- ใน Snap Store ให้บริการภายใต้ชื่อ Codium
การติดตั้งผ่านดิสทริบิวชันและ repository
- Parrot OS มี VSCodium ติดตั้งมาเป็นค่าเริ่มต้น
- หากไม่เห็นตามค่าเริ่มต้น สามารถติดตั้งจาก repository ทางการของ Parrot ได้
sudo apt update && sudo apt install codium
- หากไม่เห็นตามค่าเริ่มต้น สามารถติดตั้งจาก repository ทางการของ Parrot ได้
- แพ็กเกจ deb สำหรับ Debian/Ubuntu ติดตั้งผ่าน repository ที่เกี่ยวข้องกับ VSCodium และ CDN mirror
- หลังจากเพิ่ม GPG key ของ repository แล้ว ให้เพิ่มการตั้งค่า repository ที่ตรงกับเวอร์ชัน Debian/Ubuntu
- คำสั่งติดตั้งมีดังนี้
sudo apt update && sudo apt install codium - หากต้องการ
vscodium-insidersให้เปลี่ยนcodiumเป็นcodium-insiders
- แพ็กเกจ rpm สำหรับ Fedora/RHEL/CentOS/Rocky Linux/OpenSUSE ก็ติดตั้งโดยเพิ่ม repository แยกต่างหากเช่นกัน
- Fedora/RHEL/CentOS/Rocky Linux:
sudo dnf install codium - OpenSUSE/SUSE:
sudo zypper in codium
- Fedora/RHEL/CentOS/Rocky Linux:
- บน Gentoo/Funtoo ติดตั้งด้วย ebuild
- Funtoo:
sudo emerge -av vscodium-bin - Gentoo:
sudo emerge -av vscodium
- Funtoo:
เอกสาร Flatpak และการย้ายระบบ
- VSCodium มีให้ในรูปแบบ แอป Flatpak ด้วย และ repository สำหรับ build คือ flathub/com.vscodium.codium
- ในสภาพแวดล้อมที่เปิดใช้งาน repository Flathub แล้ว สามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้
flatpak install flathub com.vscodium.codium - หากติดตั้ง
gnome-software-plugin-flatpakไว้ จะสามารถค้นหา VSCodium ได้จาก GNOME Software เช่นกัน - ประเด็นเฉพาะที่อาจพบเมื่อย้ายจาก Visual Studio Code ไปยัง VSCodium หรือระหว่างใช้งานถูกรวบรวมไว้ใน เอกสาร
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
รู้สึกว่าไบนารีที่โปรเจกต์แบบนี้สร้างขึ้นไว้วางใจได้ยากกว่าไบนารีที่ Big Tech จัดให้เสียอีก ถึง Big Tech จะเป็นกลุ่มที่ติดตามผู้ใช้รายใหญ่ที่สุดก็จริง แต่โปรเจกต์ที่มีคนและผลประโยชน์เกี่ยวข้องน้อยกว่ามากดูจะเปราะบางต่อ การโจมตีซัพพลายเชน หรือการถูกเทกโอเวอร์แบบเป็นปฏิปักษ์เมื่อผู้พัฒนาขายโปรเจกต์ได้มากกว่า
ผมไม่ได้เชี่ยวชาญด้านนี้นัก ถ้ามีแหล่งข้อมูลให้อ้างอิงว่าโปรเจกต์เหล่านี้หลีกเลี่ยงความเสี่ยงแบบนี้อย่างไรคงดี และบางทีความกังวลแบบนี้ก็อาจสมเหตุสมผล
บริษัทใหญ่ทุ่มเทอย่างสุดขีดเพื่อรับประกัน ห่วงโซ่ความเชื่อถือ ของซอฟต์แวร์ที่ตนเองบิลด์ และแพลตฟอร์มจัดจำหน่ายแอปก็พยายามอย่างมากเพื่อให้มีห่วงโซ่ความเชื่อถือแบบ end-to-end ตั้งแต่นักพัฒนาไปจนถึงแอปที่รันบนอุปกรณ์ของผู้ใช้
โดยพื้นฐานแล้วแทบเป็นไปไม่ได้หากไม่เชื่อถือทั้งผู้เขียนต้นฉบับและผู้แจกจ่ายซ้ำ แต่ขั้นตอนบิลด์ที่ตรวจสอบได้ การตรวจสอบคีย์ลายเซ็นและแฮช รวมถึงการเซ็นซ้ำ จะช่วยลดปริมาณความเชื่อถือที่ต้องใช้ลงได้ หากผู้ใช้สามารถทำซ้ำบิลด์เดียวกันได้เองในทางทฤษฎี ก็จะเชื่อถือได้ง่ายขึ้น
ทางเลือกที่ดีที่สุดคือโปรเจกต์ต้นทางจัดหา build แบบไม่มีแบรนด์ให้เอง และให้โปรเจกต์อย่าง VSCodium เป็นเพียง การตั้งค่าเท่านั้น เช่นการปิด telemetry เพื่อไม่ต้องเซ็นซ้ำ ตัวอย่างเช่นโปรเจกต์ Chromium แจกจ่ายไบนารี Chromium ที่ตัดองค์ประกอบเฉพาะของ Google ออกไปเอง
ผมนึกถึง app store เป็นหลัก แต่ตรรกะแทบเดียวกันนี้ก็ใช้ได้กับที่อย่างคลังแพ็กเกจ Debian ด้วย โดยทั่วไป app store จะเซ็นซ้ำในฐานะตัวกลาง จึงต้องเชื่อถือ store แต่บริษัทเหล่านี้ก็พยายามอย่างมากเพื่อให้จุดนั้นน่าเชื่อถือ
ถ้าความต่างนั้นดูปลอดภัย ก็เกือบจะหมายความว่าไบนารีก็เชื่อถือได้เช่นกัน แน่นอนว่าต้องตรวจสอบด้วยว่าไม่ได้ดึงทรัพยากรจากอินเทอร์เน็ตที่ไม่สามารถรับประกันความสมบูรณ์ได้ด้วยวิธีเดียวกัน
น่าจะสามารถเปรียบเทียบซอร์สโค้ดที่แพ็กเกจใช้กับ Microsoft git SHA ฝั่ง upstream ที่อ้างว่าเป็นฐานได้: https://aur.archlinux.org/packages/vscodium
พอดีตอนนี้มีส่วนขยายโหมดรีโมตแบบโอเพนซอร์สแล้ว จึงไม่มีเหตุผลต้องใช้เวอร์ชัน proprietary อีก ฝั่งผมไม่มี telemetry อีกต่อไป
ผมไม่ไว้ใจเลยว่าบริษัทใหญ่จะทำอะไรให้ถูกต้อง และจะไม่ยัดแอปพลิเคชันให้เต็มไปด้วย สปายแวร์ ภายใต้ชื่อ telemetry ผมขอเชื่อคนที่ยืนหยัดพยายามสร้างซอฟต์แวร์เสรีและโอเพนซอร์สมากกว่า
บิลด์ที่ทำซ้ำได้ น่าจะช่วยในกรณีนี้ได้ เหมือนที่ Go ทำใน SDK รุ่นล่าสุด: https://go.dev/blog/rebuild
ถ้าเป็น fork ที่เปลี่ยนซอร์สน้อย ก็ยิ่งมีประโยชน์ เพราะต้องตรวจสอบแค่แพตช์เท่านั้น
Linux distro ก็คล้ายกันพอสมควร เหตุผลที่ผมค่อนข้างเชื่อถือแพ็กเกจ Debian คือมีองค์กรร่มและกระบวนการรองรับ แต่องค์กรอิสระมีสิ่งนั้นน้อยกว่า
สักวันหนึ่งอาจมีองค์กรร่มที่รับผิดชอบเฉพาะบิลด์ที่ทำซ้ำได้ และผู้คนอาจแจกจ่ายไบนารีผ่านองค์กรนั้นได้ การตรวจสอบอิสระอาจทำให้องค์กรนั้นซื่อตรงได้ เหมือนกับผู้รับจดทะเบียนโดเมน
Microsoft จำกัดให้ส่วนขยายหลัก ๆ ใช้ได้เฉพาะกับรีลีสทางการเท่านั้น จึงตัดการแข่งขันในทิศทางนี้ไปเลย โดยส่วนตัวผมใช้ ส่วนขยายระยะไกล ค่อนข้างเยอะ เลยอยากให้มีใครสักคนทำทางเลือกออกมา
“Open Remote - SSH” ของ “jeanp413” หรือ
@ext:jeanp413.open-remote-sshอย่างน้อยสำหรับผมแล้วทำงานได้เหมือนกับส่วนขยายแบบซอร์สปิดทุกอย่างผมใช้แพ็กเกจ vscodium จาก AUR บน Manjaro และติดตั้งส่วนขยายจากสโตร์เริ่มต้นของ vscodium ไม่แน่ใจว่ามีใน Microsoft Store หรือเปล่า
บน
Code - OSSส่วนขยายนั้นใช้กับผมไม่ได้ ดูเหมือนเป็นปัญหาการตั้งค่า และผมไม่ได้ไล่ตรวจต่อดังนั้นถ้ามี ส่วนขยายจำเป็น ที่ไม่มีใน marketplace ของ codium ก็ยังใช้ผ่าน Microsoft Marketplace ได้
ถ้าต้องการจัดการการติดตั้งและตั้งค่า tunnel แบบอัตโนมัติ อาจใช้สคริปต์ลักษณะนี้ได้: https://github.com/CGamesPlay/dotfiles/blob/master/files/.lo...
กำลังทำ PR เพื่อเพิ่มวิธีตั้งค่า tunnel โดยรันสคริปต์กำหนดเองอัตโนมัติอยู่ด้วย: https://github.com/xaberus/vscode-remote-oss/pull/9
Remote OSS: https://open-vsx.org/extension/xaberus/remote-oss
โดยพื้นฐานแล้วนี่เหมือนกับสิ่งที่ได้เมื่อดาวน์โหลดซอร์สโค้ดของ Visual Studio Code มาบิลด์เอง
ชื่อก็ดูเหมือนเล่นคำแบบ Chrome → Chromium
แนวทางที่ Microsoft กับ Google บอกว่ากำลัง “ทำให้ผลิตภัณฑ์เป็นโอเพนซอร์ส” แต่ในความเป็นจริงกลับรีลีสผลิตภัณฑ์ที่มี ฟีเจอร์ซอร์สปิดเพิ่มเติม นั้น ถ้ามองในแง่ดีก็ไม่ซื่อสัตย์ และถ้ามองในแง่ร้ายก็เป็นคดีฟ้องร้องขนาดใหญ่ได้เลย
บริษัทยักษ์ใหญ่เหล่านี้ได้ประโยชน์จากงานของวิศวกรซอฟต์แวร์ใสซื่อที่บริจาคเวลาให้ผลิตภัณฑ์โอเพนซอร์ส แต่สิ่งที่ส่งถึงผู้ใช้ปลายทางกลับเป็นเวอร์ชันซอร์สปิด
เป็นกรณีเดียวกับบริษัทเชิงพาณิชย์จำนวนมากที่รีลีส ซอฟต์แวร์กรรมสิทธิ์ โดยอิงจากโปรเจกต์โอเพนซอร์ส
สิ่งที่ต้องมีคือการแยกประเภทแบบ anti-feature คล้ายกับสโตร์ F-Droid เช่น ป้ายว่า “แอปนี้พึ่งพาแอปอื่นที่ไม่เสรี” หรือ “พึ่งพาหรือส่งเสริมบริการเครือข่ายที่ไม่เสรี”
Vscode ถูก ออกแบบมาเพื่อชักนำให้เกิดการแตกแยก: https://ghuntley.com/fracture/
สรุปคือ Microsoft รีลีส Visual Studio Code ที่มีเทเลเมทรีในตัว ดังนั้นโปรเจกต์อย่าง VSCodium จึงเริ่มปล่อยบิลด์ปรับแต่งที่ไม่มีเทเลเมทรี แต่โปรเจกต์เหล่านี้ไม่ได้รับไลเซนส์จาก Microsoft จึงใช้ marketplace เดียวกันไม่ได้ และนั่นคือ การแตกแยก ตามชื่อบทความ
ต่อจากนั้นยังบอกว่า IDE กรรมสิทธิ์อื่น ๆ ก็มีปัญหา และ GitHub เป็นกับดักที่จับนักพัฒนาไว้และทำให้แตกแยก
ดราม่าเรื่อง Microsoft กับโอเพนซอร์สนี้ทำให้นึกถึงเอกสาร Halloween: http://www.catb.org/~esr/halloween/
อืม… งั้นเหรอ? จะใช้หรือไม่ใช้ก็ได้ ผมไม่ค่อยแน่ใจว่า “มันดีเกินไปจนไม่ใช้ไม่ได้” เป็นข้อร้องเรียนที่สมเหตุสมผลหรือเปล่า
เมื่อวานต้องย้ายออกจากบิลด์โอเพนซอร์ส หลังอัปเดตแล้ว Pylance ดูเหมือนจะหยุดทำงานเพราะ DRM
ทุกครั้งที่เริ่มใช้งาน มันจะแสดงคำเตือนขนาดใหญ่ว่าการใช้กับบิลด์ที่ MS ไม่อนุมัติเป็นการละเมิดไลเซนส์ แล้วก็หยุดทำงานทันที
เป็นเวอร์ชันเสรีและโอเพนซอร์สของ pyright แต่ขาดฟีเจอร์บางอย่างไป
บทความที่เกี่ยวข้อง
VSCodium – Free/Libre Open Source Software Binaries of VS Code - https://news.ycombinator.com/item?id=31604932 - มิถุนายน 2022, ความคิดเห็น 430 รายการ
VS Code without Microsoft branding/telemetry/licensing - https://news.ycombinator.com/item?id=23447413 - มิถุนายน 2020, ความคิดเห็น 200 รายการ
VSCodium – An Open Source Visual Studio Code Without Trackers - https://news.ycombinator.com/item?id=19650109 - เมษายน 2019, ความคิดเห็น 253 รายการ
VSCodium: 100% Open Source Version of vs. Code - https://news.ycombinator.com/item?id=19619956 - เมษายน 2019, ความคิดเห็น 8 รายการ
VSCodium: Binary releases of VSCode without MS branding, telemetry and licensing - https://news.ycombinator.com/item?id=17850960 - สิงหาคม 2018, ความคิดเห็น 113 รายการ
ใช้มันมานานและเคยบอกให้ทีมใช้ด้วย แต่สุดท้ายก็ยอมแพ้ ถ้าไม่มีฟีเจอร์ Remote SSH และ devcontainers ฝั่งที่อยากใช้ VSCode ให้เต็มที่ก็ยังถูก Microsoft จับไว้แน่น
อีกอย่าง ดูเหมือน Microsoft จะถอยเรื่อง telemetry แล้ว และตอนนี้บอกว่าสามารถปิดได้อย่างสมบูรณ์ อย่างไรก็ตาม ยังไม่ได้ทดสอบเองว่า “ปิด” จริงหรือไม่
นอกจากนี้ ถ้าใช้ Remote OSS ก็สามารถใช้โฮสต์ระยะไกลของ vscodium ภายใน dev container ได้ รายละเอียดเขียนไว้ในความคิดเห็นนี้: https://news.ycombinator.com/item?id=37386025
ใช้ทั้ง VSCode และ VSCodium เหตุผลเรียบง่ายและเป็นเรื่องใช้งานจริง คือ การจัดการการตั้งค่า และหน้าต่างหลายบานที่แยกแยะได้
VSCode ของผมถูกส่วนขยายจำนวนมหาศาลที่ดูเหมือนจำเป็นสำหรับงาน Microchip/Atmel/zephyr กลืนไปหมดแล้ว
สำหรับงาน ansible/elixir ผมใช้ VSCodium
VSCodium ไม่มีฟีเจอร์แบบโปรไฟล์เบราว์เซอร์ ที่ให้เปลี่ยนการตั้งค่าทุกอย่างได้เฉพาะภายในโปรไฟล์นั้นเหรอ? ใน Firefox ผมใช้แบบนั้นบ่อย และตั้งหน้าต่างให้หน้าตาต่างกันด้วย
อยากให้ดูแลต่อไปเรื่อย ๆ ส่วนขยายของสตาร์ทอัพเราอยู่บน Open VSX Registry และเราพอใจกับการดำเนินงานแบบนั้นมาก
บน Arch มีแพ็กเกจที่ดูเหมือนเทียบเท่ากันโดยใช้ชื่อว่า
codecodeเป็นชื่อไบนารี ส่วน “โปรเจกต์” เองคือCode - OSSตามที่เขียนไว้ใน https://wiki.archlinux.org/title/Visual_Studio_Codeแพ็กเกจที่ repository หลักให้มาก็คือตัวนั้น และถ้าจะใช้ VSCodium หรือ Visual Studio Code ต้องใช้ AUR