Please provide Visual Studio Code in the AppImage format for Linux. This would allow users to
AppImage is a bundling format for Linux that lets users download one single file, set the executable bit and run the application (here: Visual Studio Code). Unlike other options, AppImage is entirely distribution-agnostic and no special runtime infrastructure is needed on the target system(s). This means that the user can run the application on almost any recent Linux distribution.
It is easy to convert the official deb builds to AppImages using this script.
cc @Microsoft/vscode
@probonopd This is incredibly cool. I've just watched your presentation on Youtube and everything resonated with me. I admire the work you're doing there, keep it up!
@Tyriar Given the huge friction we're seeing with auto-updates on the deb and rpm packages and the crazy benefits this would give us in terms of packaging and incremental updates, I'd be willing to push towards making AppImage our default and recommended distribution method for VS Code alongside a preventive ZIP archive. After a proper investigation, of course.
Thanks @joaomoreno for your kind words; your PowerShell colleagues are currently also reviewing it for PowerShell distribution.
By the way, I don't know how applicable this is here, but electron-builder has support for building AppImages for Electron applications too.
Here are some example AppImages of Electron-based apps that you can download and try:
I could upload one of Visual Studio Code but am uncertain whether the license permits it.
Go ahead, we are MIT.
Here is my experimental Visual Studio Code AppImage generated by the script above on Travis CI (build log):
https://bintray.com/probono/AppImages/VSCode#files
To download and run, simply:
VSCODE="VSCode-1.4.0-x86_64.AppImage"
wget -c "https://bintray.com/probono/AppImages/download_file?file_path=$VSCODE" -O "$VSCODE"
chmod a+x "$VSCODE"
./"$VSCODE"
Since the AppImage packaging runs on Travis CI this can be integrated into CI workflows easily. It is expected that some fine-tuning might still be needed, ideally with the help from the upstream team.
Known to run on
Does not run on very outdated distributions (to make this work, vscode would need to be compiled on an older build system):
It just works, so cool! Thanks for the sample. We will definitely consider this.
Renamed and added desktop integration (optional installation into the start menu). Download links updated above.
@joaomoreno are the binaries at https://vscode-update.azurewebsites.net/latest/linux-deb-x64/stable generated by a Travis CI run, and if so, where is the respective code? I could try to hook in there and send a PR which also builds an AppImage using the binaries generated anyway for the deb.
@probonopd They are generated from our internal build. Building and distributing VS Code is not open source, so you'll have to leave picking this up to us for now.
Arch Linux user here. There doesn't appear to be a package for my system. Collecting dependencies and compiling is a pain, I'd love to have an appimage. The one linked above seems to no longer exist.
@GitRASQ the community has put up an AUR package which we recommend. https://aur.archlinux.org/packages/visual-studio-code/
I have provided a code-oss Debian package (https://github.com/fusion809/code-oss/releases/tag/debian1.6.1) and built an AppImage from it.
@fusion809 thanks for your effort but please be aware that only Microsoft can build an official AppImage with the official branding as far as I understand.
Official branding? What's meant by that? I built an OSS build of code-oss using, the build system that VSCode's official developers put in place. This build is MIT licensed so I can build my own AppImage with it and distribute it, without breaching copyright.
I don't think this line for example is allowed since the "Visual Studio" branding can only be used in official builds by Microsoft. That's the main reason for the whole "Code (OSS)" vs "VS Code" thing. Same story with the logo.
I just use the code-oss repo as a place to upload the Debian package, it's does not contain the sources used to build the Debian package. That's used to build an Arch Linux package.
"code-oss" is fine, it's branding it as Visual Studio and using the logo that could potentially be an issue.
Some more info on the topic from one of our PMs https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005
Well if that's the only problems with my code-oss Debian package I've rebuilt it without any of the MIT license-breakers. Then I built an AppImage and it's working fine. So @probonopd I suspect all is good now and you can provide my AppImage at Bintray.
@Tyriar any chance you would provide an official AppImage?
We'll be getting signed apt/yum repos soon, polishing that experience is the priority on this front for now.
Would you consider merging a PR if I sent one that would generate an AppImage for each continuous build on Travis CI?
Not just yet, as mentioned before apt and yum repos are just on the horizon which is the focus for now. I'd prefer to wait before embracing one of the newer package types as adding support for another one will increase our maintenance burden.
Is that horizon any closer after a month?
@Moilleadoir It was actually completed a week or so ago, check out https://github.com/Microsoft/vscode/issues/229#issuecomment-280943455 and https://github.com/Microsoft/vscode/issues/2973#issuecomment-280575841
@Tyriar is the subject of this ticket still being considered? PowerShell just has started to generate an AppImage for each continuous build on Travis CI.
@Tyriar Thank you. Read somewhere on code.visualstudio.com that it wasn鈥檛 supported鈥f course, I can鈥檛 find it now.
Edit: https://code.visualstudio.com/docs/setup/linux
Unfortunately, VS Code does not yet support auto-update on Linux, so you will need to manually install each new release.
@probonopd yes. We want to see how the repositories do right now though.
@Moilleadoir yeah it's being included in the upcoming release notes, the documentation will need to be updated before the release.
Any further advancements on this issue? I'd love to see AppImages for more of the tools I use.
A snap is here, but still no Appimage.
http://news.softpedia.com/news/you-can-now-install-microsoft-s-visual-studio-code-ide-as-a-snap-on-ubuntu-linux-515882.shtml
Happy to support this project in making an official AppImage. Microsoft is already using AppImage for PowerShell and for the Emulator for the Microsoft Bot Framework btw.
Any updates on an official appimage?
We don't plan on supporting AppImage any time soon. We are investing some effort into snap packages though. See https://github.com/Microsoft/vscode/issues/5458 for updates on that.
This issue is being closed to keep the number of issues in our inbox on a manageable level, we are closing issues that have been on the backlog for a long time but have not gained traction: We look at the number of votes the issue has received and the number of duplicate issues filed. If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding and happy coding!
@vscodebot owners: Please reconsider!
We look at the number of votes the issue has received
Please look closely:
Providing an AppImage would have, among others, these advantages:
appimaged
--appimage-extract
parameterHere is an overview of projects that are already distributing upstream-provided, official AppImages. __Microsoft provides PowerShell as an AppImage, too.__
If you have questions, AppImage developers are on #AppImage on irc.freenode.net.
@probonopd our team is quite small and I simply cannot manage more than what we are currently doing. I'll reopen as this could happen eventually, but realistically it's not going to be considered for another 12-24 months.
With AppImage we can do auto updater like macOS and Windows. Update VS Code for linux now is very cumbersome, even with the PM like apt.
Update VS Code for linux now is very cumbersome, even with the PM like apt.
Do you mean typing apt update && apt upgrade
is that difficult? Come on.
It's no secret Microsoft is collaborating with Canonical to provide VSCode for all distros via snap packages. I suppose support for AppImage or Flatpak will be up to their respective communities at this point.
If you want to use apt, you have to execute lots of script before sudo apt-get install code
. When you update you ubuntu to higher version. Guess what need to be executed again ?
If you want to use apt, you have to execute lots of script before
sudo apt-get install code
.
The link shows multiple alternatives, each of them are far from being "lots of script". In fact, installing the .deb
via your graphical package manager (the recommended option btw) is enough and 1-click away.
I'd argue this process is actually simpler than AppImage which needs an additional chmod a+x
step. Don't get me wrong, I get the value of AppImage, snaps and flatpak (I use the latter personally). However, I don't believe spinning the narrative around the amount of "scripting" required for integration with native package manager is gonna get you much sympathy.
We clearly have different understanding on easy and time.
@gengjiawen FYI this is what I use to update Insiders daily at the moment which is fairly convenient:
alias up='sudo apt update && sudo apt install code-insiders'
In the morning on a weekday or when I see the update available badge in the gear menu: ctrl+`, up
and put in password
I would be great to have VS Code in AppImage format.
They have some potential use cases which are not covered by FlatPak & Snap.
Think of working on VS Code from USB on any system with the same configuration and set of extensions (Just utilize the .home
and .configure
features of AppImage).
This is something can not be done with FlatPak / Snap easily.
Has someone commented? Why did I get a notification for this thread?
@RoyiAvital you can do that with the tarball by launching with --extensions-dir
and --user-data-dir
set, see https://github.com/Microsoft/vscode/issues/329
Slackware user here: I'd like to have an AppImage, too. AppImages just work without hassle.
I, too, would really like to see an AppImage specifically. Please reconsider.
Maybe not related by docker images could help eventually too
specially if debian is able to rebuild and distribute deb package:
https://flathub.org/apps/details/com.visualstudio.code has it, as does https://snapcraft.io/vscode, with full branding and everything. So I assume we are allowed to do the same in AppImage format?
This is the proprietary Microsoft build of Visual Studio Code, packaged into a Flatpak. This repackaging is not supported by Microsoft.
Source: https://flathub.org/apps/details/com.visualstudio.code
This snap is maintained by the Snapcrafters community, and is not necessarily endorsed or officially maintained by the upstream developers.
Source: https://snapcraft.io/vscode
With AppImage, the VSCode team has the opportunity to distribute the application in exactly the form they like, with full control from the building to the downloading phase.
What would be needed for the team to reconsider providing an official AppImage build? @Tyriar
In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:
wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
bash -ex pkg2appimage VSCode
(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)
Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
What would be needed for the team to reconsider providing an official AppImage build? @Tyriar
In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:
wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage" bash -ex pkg2appimage VSCode
(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)
Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
I tried this recipe in KDE Neon with code-insiders_1.33.0-1553235446_amd64.deb package and got this output:
eval: line 108: unexpected EOF while looking for matching ``'
The following works for me on xubuntu-18.04-desktop-amd64.iso
:
wget https://raw.githubusercontent.com/AppImage/pkg2appimage/master/pkg2appimage
bash -ex ./pkg2appimage VSCode
What do you mean by
with code-insiders_1.33.0-1553235446_amd64.deb
?
The recipe currently gets 1.32.3-1552606978.
The following works for me on
xubuntu-18.04-desktop-amd64.iso
:wget https://raw.githubusercontent.com/AppImage/pkg2appimage/master/pkg2appimage bash -ex ./pkg2appimage VSCode
What do you mean by
with code-insiders_1.33.0-1553235446_amd64.deb
?
The recipe currently gets 1.32.3-1552606978.
I didn't get it.
The script does not convert debian package to appImage?
I'm running it against Code Insiders build.
pkg2appimage
uses https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml to produce a VSCode AppImage, It downloads the application from https://github.com/AppImage/pkg2appimage/blob/e42f51314b02364497ac65286068c7f71d7779ea/recipes/VSCode.yml#L19.
pkg2appimage
uses https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml to produce a VSCode AppImage, It downloads the application from https://github.com/AppImage/pkg2appimage/blob/e42f51314b02364497ac65286068c7f71d7779ea/recipes/VSCode.yml#L19.
I think I get it. This script targets to stable build, not insiders.
Yes, but you can make a variation of it that downloads and uses the insiders build.
@probonopd Any idea why Git doesn't work in AppImage? I have tried setting a path, but no luck.
Please define "does not work". Do you get an error message?
Well, that's on my work computer, but I think the error message was something like "Git is not installed on your system". I have tried '/usr/bin/git', just 'git' and what not, but I get the same error message.
Is git installed on your system?
Yes, working all the time in it. And 'which git' gives me '/usr/bin/git'.
What is the state of this ticket?
I would also like to see an official build for AppImage.
The reasons for this is because...
Flatpak:
What is the state of this ticket?
No plans to support officially.
Snap: Startup is painfully slow
I believe this issue was fixed a while ago after we reported it to the snapcraft team https://github.com/Microsoft/vscode/issues/61613#issuecomment-448930788
@Tyriar I will try using the snap when I can actually install snaps again... I always use snaps as last resort because I always have so many problems with them. I just opened up an issue for snaps because I can't even install any.
https://bugs.launchpad.net/snapd/+bug/1826662
Reason I use AppImage is because I use several linux distros. I use Fedora (rpm based) for work and Ubuntu (deb based) for my home computer. I just had to install vscode using a debian package because snap wasn't working for me. Then on my fedora system I had to install using an rpm because Flatpak (terminal doesn't work in vscode) and snapd had issues for me.. Would be nice if I can just take that one file and run vscode without looking for a deb or rpm which defeats the purpose of these universal formats that we should be moving to.
Is there any downsides of doing this?
I really hope you can reconsider.
@chadalen thanks for reporting that, it worked fine for me on Ubuntu 19.04 when I tried last week.
Is there any downsides of doing this?
If everyone had their way we would be distributing tarball, deb, rpm, snap, flatpak, appimage and AUR packages. The cost of implementing and supporting all of them is too high.
Right now there are community-based options for appimage, flatpak and AUR if you really want to use them over what we provide. Seems fairly simple to use https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml and you can see from the source that it's derived from our deb package.
@Tyriar Ok I see your point. Thanks for your response.
thanks probonopd !
Just for information if you are looking for an AppImage, the VSCodium project is providing binary releases of VS Code without MS branding/telemetry/licensing, including AppImages:
https://github.com/VSCodium/vscodium/releases
In the interest of transparency I'm closing this issue as out of scope as we do not plan on implementing this in the foreseeable future and keeping the issue open gives the wrong impression that we may. The primary reasons for closing is that the cost to maintain and support yet another distribution mechanism is too high for too little payoff. You can read more on our issue triaging wiki page on why we close issues.
I'm happy with the snap on Ubuntu.
Most helpful comment
What would be needed for the team to reconsider providing an official AppImage build? @Tyriar
In the meantime, you can easily make your own using this recipe like this on a Debian/Ubuntu system:
(Debian/Ubuntu system is needed for the conversion from deb to AppImage because the tooling uses apt and dpkg, but the resulting AppImage should be able to run on other systems, too.)
Here is the recipe:
https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml