microsoft / terminal

The new Windows Terminal and the original Windows console host, all in the same place!
MIT License
95.72k stars 8.33k forks source link

Investigate alternative deployment mechanisms for Windows Terminal #1386

Closed amithegde closed 1 year ago

amithegde commented 5 years ago

Having a portable version of terminal makes it easy to copy paste on machines some times on servers. Having to install from store is not convenient.

aluhrs13 commented 5 years ago

Let me know if/when someone is looking at this. We're going down this path for WinDbg Preview, so we'll probably have some guidance on what options we looked at and pros/cons.

jliuold commented 5 years ago

This is an exciting feature.

ghost commented 5 years ago
  1. Install Visual C++ Redistributable

    https://aka.ms/vs/16/release/vc_redist.x64.exe

  2. Visit https://dev.azure.com/ms/Terminal/_build

  3. Select most recent master build

  4. Click Artifacts

  5. Click appx-Release

  6. Extract appx-Release.zip

  7. Extract CascadiaPackage_0.0.1.0_x64.msix

  8. Open WindowsTerminal.exe

Note that this does not actually work for me, the Terminal does not open. However perhaps someone can find the missing piece from here.

DHowett-MSFT commented 5 years ago

What you’re missing is a local copy of the vcruntime140_app and msvcp???_app app-container runtimes. Windows Terminal should otherwise be double-click activatable.

methodbox commented 5 years ago

Why exactly did MS release a Terminal app that can't be used on servers, anyway?

Do you really think your primary user is only using Windows 10?

I know you guys are trying to embrace the dev and open-source worlds, but maybe ask your users what they want before releasing what would be a great tool on an environment that is less likely to be the primary user.

I'm watching this thread in hopes someone figures out how to do this; I could compile it but unfortunately installing a C++ build stack at work isn't going to happen.

DHowett-MSFT commented 5 years ago

@methodbox you don’t need to be unkind about it ☹️. We hear you loud and clear. We’re aware that we need a couple different distribution models.

DHowett-MSFT commented 5 years ago

Again, I hear you. Here’s the deal: this is a preview release, and given our available resources we have to make sure we’re investing them wisely. Letting somebody else do the distribution and installation frees up an entire month of engineering time otherwise spent building and testing an installer on all of our supported configurations. That’s why it’s on our backlog. We recognize that it’s extremely important for a huge subset of our potential users, but we are prioritizing features and performance and bug fixes first.

methodbox commented 5 years ago

Again, I hear you. Here’s the deal: this is a preview release, and given our available resources we have to make sure we’re investing them wisely. Letting somebody else do the distribution and installation frees up an entire month of engineering time otherwise spent building and testing an installer on all of our supported configurations. That’s why it’s on our backlog. We recognize that it’s extremely important for a huge subset of our potential users, but we are prioritizing features and performance and bug fixes first.

I guess I'm confused by that. You say that letting someone else distribute it would save time and effort, (somone else being GitHub?) yet that's not what was done first?

I wasn't being unkind, either; I was asking a serious question, and making a few serious statements.

I don't have time at work to install all the VS necessities to compile this and try to use it on Windows Server or I would, and I also don't understand the Windows 10 target audience, and I was legitimately curious if there's something I don't know that would make them the first targets.

I'm sorry criticism seems unkind, but these are legitimate concerns.

amithegde commented 5 years ago
copdips commented 5 years ago

Portable version is a must have for our more and more restrictive enterprise dev environment. We dont have the admin rights on our desktops, hopefully we have vscode, pwsh, python, git, conemu, etc. in a zip version, so I would really like to see the same thing for Terminal.

HackershubNL commented 5 years ago
  1. Install Visual C++ Redistributable https://aka.ms/vs/16/release/vc_redist.x64.exe
  2. Visit https://dev.azure.com/ms/Terminal/_build
  3. Select most recent master build
  4. Click Artifacts
  5. Click appx-Release
  6. Extract appx-Release.zip
  7. Extract CascadiaPackage_0.0.1.0_x64.msix
  8. Open WindowsTerminal.exe

Note that this does not actually work for me, the Terminal does not open. However perhaps someone can find the missing piece from here.

Instead of running WindowsTerminal.exe, you should register the application with PowerShell:
Add-AppxPackage .\AppxManifest.xml -Register

Then it shows up in the Start menu and from there you can start it.
Note, you might need to enable Developer Mode in the settings menu first, I already had it enabled so I'm not sure if it works without it.

David-Noble-at-work commented 5 years ago

Thanks for delivering on the developer community's need for a better terminal. This is an app I've wanted to see on Windows for years and hope to give it a spin soon. I am happy to pick up a build from master, but I'm currently on Windows Server 2019 Datacenter LTSC.

ASK:

  1. Install Visual C++ Redistributable (see https://aka.ms/vs/16/release/vc_redist.x64.exe)
  2. Visit https://dev.azure.com/ms/Terminal/_build
  3. Select most recent master build
  4. Click Artifacts
  5. Click appx-Release
  6. Extract appx-Release.zip
  7. Extract CascadiaPackage_0.0.1.0_x64.msix
  8. Open WindowsTerminal.exe
thomazmoura commented 5 years ago

What you’re missing is a local copy of the vcruntime140_app and msvcp???_app app-container runtimes. Windows Terminal should otherwise be double-click activatable.

@DHowett-MSFT Could you please give us any guidance on how to install those?

I would love to test it on work but no chance of using Windows Store there. I tried to build it myself on an earlier version and even managed to do it, but since it took nearly 40GB between the Visual Studio requirements and the repo itself after the builds it quickly became unmanageable on my limited SSD space.

And don't mind the negative comments, by the way. The terminal is coming out nicely (really I tested it home with WSL 2 and I've never had such a smooth terminal experience on Windows before). Some people fail to understand the point of a preview but that's because they are anxiously looking forward to it too.

With time it will be out of preview and everyone (or at least most users) will be happy.

pkzOR commented 5 years ago

2. Visit https://dev.azure.com/ms/Terminal/_build

Non-MSFT folks dont have permissions to the artifiacts

thomazmoura commented 5 years ago

I downloaded the artifacts but couldn't install the .msix by double-clicking because it said that it wasn't signed by a trusted certificate.

I've managed to get it to work by downloading the artifact, extracting the .msix to a folder and then running Add-AppxPackage AppxManifest.xml -Register from Powershell inside the folder. Now I can run it by opening if from the start menu as "Windows Terminal (Dev Build)".

Quite a hacky process, but it worked for now.

mrchief commented 5 years ago

Windows store is a broken piece of software. It's like the whiny baby that always needs your attention and never does anything you expect it to do. Relying on it is as good as saying please don't install our stuff.

I just got redirected here from #1757 and it's good to see so much traction on this.

And why complicate a simple thing? Download, install and that should be it.

mrchief commented 5 years ago

Here’s the deal: this is a preview release

Yes, and people are already excited about this. The pain of dealing with notepad of command lines (aka cmd.exe) must be maddening to drive people towards trying out a better terminal, even if it's pre-release. Plus there's twitter hype.

Please don't see our comments as rants. We want to get our hands on it ASAP. Sending us to Store is slamming the door on our faces. We want to invest our time wisely too. Spending them fixing Windows store issues is definitely not a productive use of anyone's time. Hope you understand!

drullo commented 5 years ago

I'm VERY frustrated by this "install" experience. I put install in quotes because I can't actually get it to install. The Store gives me a list of some of my machines to target for the install... but not the one that I'm actually on. And even if I choose one of the listed machines, it tells me that it's trying to install, but nothing apparently ever gets installed. And there's zero feedback for me to use as a starting point for troubleshooting - no error message, or log information, just silence.

I'm bothered that there isn't just a normal installer, like we've been using for decades. And I'm bothered that the Windows Store seems to not be able to target the machine that I'm actually on (shouldn't that be a given??). With all due respect, I don't want to have to spend time troubleshooting my Windows Store environment to figure out why it doesn't acknowledge my system (and yes... it definitely meets the requirements) or why the install process seems to do absolutely nothing. I don't use the Store often, but I don't recall ever having to select a target system for the install. Is this a new feature? Either way, this experience has been terrible.

I've been a developer for 20+ years. But even I don't want to download the source for this and compile it. I just wanted a compiled executable that I can install and run.

mrchief commented 5 years ago

@drullo Check your OS info. It's not so obvious but if you scroll down a little, it'll show your current vs required config. If that's the case, you'd then have to decide whether you want to risk upgrading to the current OS build or live without using the terminal.

None of this is bad in theory, but the way it's (Windows store) implemented is pretty ugly (unstable, lots of things can and will go wrong) and honestly, it's time not worth spending on just to install an app (not just terminal but any store app).

Sadly, the App store and OS updates on Mac is a whole lot smoother experience. It has its own issues but none that are at a primitive, basic level.

VimalShekar commented 5 years ago

Please bump the priority on this one... It's probably the most asked feature...

DHowett-MSFT commented 5 years ago

As a first step towards alternate distribution, I've published the (signed, store updatable) MSIX bundles to the releases page. They should be double-click installable on 1903+, but there might be some dependency packages that need to be installed. We're working on making that process a little nicer. Please bear with us.

Right now, we need an MSIX/appx installation context for resource lookup (icons, strings, etc.) and component activation (so that we can load our constituent DLLs), but progress is being made on making that requirement a little more lax as well.

WSLUser commented 5 years ago

I actually like the idea of using msix deployment. Msix has support for even Windows 7 so a double click install using msix would be great.

amithegde commented 5 years ago

@DHowett-MSFT this is good start!

bitcrazed commented 5 years ago

@amithegde We've updated the ReadMe - thanks for your suggestion.

https://github.com/microsoft/terminal#installation

rismoney commented 5 years ago

Trying to install offline using MSIX from release page, and receive the error message, upon Launching WindowsTerminal.exe CLiP device license not found. Not sure how to fix this

gh4chris commented 5 years ago

On offline installer is urgently needed to have the WT installed on our servers for a go.

NBardelot commented 5 years ago

I found this issue after several unsuccessful attempts to install Windows Terminal. The issue here is that Windows 10 LTSC (long term support version) used in many professional environements is version 1809 (build 17763), while Windows Terminal is packaged as an MSIX bundle of MSIX archives only installable on more recent versions of Windows 10.

That makes Windows Terminal unusable in professional environments in its current state. While as stated by Microsoft the next LTSC won't be released until 2021. If another deployment mechanism is not provided, Windows Terminal will remain unusable in professional environments for two more years.

I'm no Windows-centric developer, so I don't know what's the cost / burden of releasing a statically-linked exe file as a quick & dirty temporary solution, but if that's possible it would be great. Any form of standalone/portable version in fact would be greatly appreciated (as underlined by all the previous comments ;) ).

Edit:

Some additional thoughts,

catthehacker commented 5 years ago

@NBardelot In "professional environments" there is no way you need LTSC version of Windows and Windows Terminal together, bah, you won't need LTSC unless you are running very critical systems which I doubt. In "professional environments" if you are required to have an application that is available from Microsoft Store, it's possible to go through the standard process of requesting stuff usually present in your company (ITIL). Windows Terminal targets developers which are perfectly fine to have Insider version of Windows - I don't understand the argument of having it in LTSC, especially when it's in PREVIEW which contradicts with LTSC purpose. It's very clear what you have to have in order to run it: Requirements & and Microsoft Store.

@gh4chris It's not urgently needed, CMD and PowerShell are available in Windows Server - there is no reasonable argument why you need it.

rismoney commented 5 years ago

The assumption should be for any corporate adoption, that non-store usage is required. Most well built production environments have no internet access and use deployment tooling.

Why is there even resistance around convenience?

zadjii-msft commented 5 years ago

So for the record, we do provide non-store installation mechanisms - see our releases page. However, we're not really able to budge on the Windows build version requirement. We're dependent upon some OS features that only shipped in the very latest version of Windows 10. That's the real reason we won't be able to work on LTSC.

NBardelot commented 5 years ago

@zadjii-msft this is perfectly understandable, though I must underline again that sadly it means no Windows Terminal until 2021 for a lot of interesting use-cases (and wide adoption, once you'll be in release mode). If there's any way of working around those limitations you speak of, I hope you'll factor that into account :)

@CatTheHacker Thanks for your insights. Please also understand that telling other people that you know best what they need or not is kind of rude, since you don't have all the information available and might misunderstand the constraints. That said, I'll happily illustrate my use-case, since your misunderstanding is also my lack of explaining.

I currently work in a quite strictly secured environment, for a large company. Desktops run Windows 10 LTSC for security and maintainability reasons (and I'm not at liberty to change that). I'm not talking about critical machines/servers, but dev & ops workstations. One of our goals is to prototype and test tools that are not already streamlined in ITIL / repositories etc., and explore what can be done to make dev & ops life easier. That even brings us to compare OS vs OS tooling, which is a true paradigm shift for that kind of company. In that scenario, running a preview version of Windows Terminal, and starting to show people how to work nicely with terminals (because Powershell, docker, kubernetes/openshift...) is a need.

TechWatching commented 5 years ago

It would be great to have a way to automate the Windows Terminal app installation from command line.

bitcrazed commented 5 years ago

@NBardelot - Thanks for your info & thoughts here.

MSIX

Right now, we're building Terminal into MSIX packages since this is the strategic path forward for packaging apps on Windows. We're not averse to considering other packaging formats if there's sufficient demands to do so, but for now we're focusing on mainstream scenarios to handle the majority of the community's needs.

That said, I am digging into MSIX team's plans re. LTS SKUs. Will let you know when I hear back from them.

LTS

Note that LTS SKUs are by their very definition more restricted and less-frequently updated than general release SKUs. Because of this, there's a good chance that newer products & features may take longer to arrive and/or not be supported on LTS SKUs. In short, if you want to run the latest and greatest tools & tech soon after they're released, you MAY need to consider non-LTS SKUs.

Enterprises that need greater control over the configuration of its platforms, whilst also allowing users to self-deploy approved apps, and/or deploy known managed apps might want to explore Windows Store For Business which can integrate with SCCM and InTune for automated deployment, etc. of approved apps.

We'll be updating our docs v. soon and will definitely incorporate some of your feedback & asks to make this area easier to understand.

SeanKilleen commented 5 years ago

FYI, there is now a chocolatey package, so one can run choco install microsoft-windows-terminal to install the app.

Big thanks to @mkevenaar who appears to have put that together! 🎉

bitcrazed commented 5 years ago

@SeanKilleen Absolutely - I am a HUGE fan of Chocolatey and am grateful for @mkevenaar for creating the Chocolatey package to refer to our latest release :)

https://github.com/mkevenaar/chocolatey-packages/blob/master/automatic/microsoft-windows-terminal/update.ps1#L8

mkevenaar commented 5 years ago

@SeanKilleen Absolutely - I am a HUGE fan of Chocolatey and am grateful for @mkevenaar for creating the Chocolatey package to refer to our latest release :)

https://github.com/mkevenaar/chocolatey-packages/blob/master/automatic/microsoft-windows-terminal/update.ps1#L8

@bitcrazed You are very welcome! It runs the update script every 6 hours, and usually it takes less then 1 hour to be processed by the chocolatey website!

bitcrazed commented 5 years ago

[Update: Replaced prior links]:

If you are installing Windows Terminal manually, and don't have the VC Redist installed, Terminal will fail to install and/or run.

Please download and install the C++ Runtime v14 framework package for Desktop Bridge: https://www.microsoft.com/en-us/download/details.aspx?id=53175

The C++ Runtime framework packages will be copied to a folder under %ProgramFiles(x86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.

👉 Note: You can also install the packages manually using the Add-AppxPackage PowerShell cmdlet.

(Related to #2369)

mubaidr commented 5 years ago

^ It still fails for me. It tries to install Visual C++ run-time for UWP from Store and unfortunately store is cannot access internet due to restrictions.

Event after installation from choco this message comes up: Capture

bitcrazed commented 5 years ago

Hey @mubaidr: I've updated my response above to link to the desktop bridge VC++ Runtime redist. Please give that a try and let me know if it solves your problem.

mubaidr commented 5 years ago

Still the same error message :( Capture

rfresow commented 5 years ago

Our SysAdmin disabled Windows Store and we don't have open internet connectivity. So we need an installer package.

bitcrazed commented 5 years ago

@rfresow - we publish every publicly released Terminal build to the store and to the releases in this repo: https://github.com/microsoft/terminal/releases

⚠ Note: Since you're manually installing, do be sure to manually update regularly - we aim to publish around once a month.

bitcrazed commented 5 years ago

@mubaidr - sorry you're bumping into issues here. Could I ask you to uninstall Terminal, reboot your machine, reinstall? I fear something unusual is going on with your machine's config.

mubaidr commented 5 years ago

^ @bitcrazed I am starting to think the same. Planing for fresh setup. Uninstall and reboot did not help either. So I will start with a clean setup.

miketheitguy commented 5 years ago

FWIW, I've been running into the same VC requirements. We too have access to the Windows Store turned off for a variety of reasons (offline networks, etc.)

It would be nice to have the terminal available to install as needed on things like jump hosts, etc.

miketheitguy commented 5 years ago

Hey @mubaidr: I've updated my response above to link to the desktop bridge VC++ Runtime redist. Please give that a try and let me know if it solves your problem.

@bitcrazed I believe the download above isn't new enough for what the terminal is built on. Mine complains about versions...

After installing the UWP VCLibs from your link, it's version 14.24222.0 (from Programs & Features) ; but if I do Get-AppXPackage:

Microsoft.VCLibs.140.00.UWPDesktop_14.0.27810.0_x648wekyb3d8bbwe Microsoft.VCLibs.140.00.UWPDesktop_14.0.27810.0_x868wekyb3d8bbwe

The link above is dated from 2016...

RafneQ commented 5 years ago

The same problem - the vc_uwpdesktop.140.exe file from the link contains old versions of Microsoft.VCLibs - after you install it inC:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\ you can find:

Windows Terminal requires minimum version 14.0.27323.0. Is there any way to install it without Store enabled ?

mikepurvis commented 5 years ago

I built (and have been using, yay) Terminal from source a few months ago with VS2019 and W10 1903. However, I don't seem to be able to execute the new msixbundle, I don't have permissions to access the Azure artifacts, and when I did a git pull and tried to rebuild in VS, I got a spew of errors even after grabbing the recommended NuGet updates and installing Dot Net 4.7.2.

Sadness :(

ertyz commented 5 years ago

Windows Server 2019 Isn't supported anyway. And yes, we use only LTSB releases not because we are "reactionists". But because we work in real enterprise with over 5000 servers and even a try to update it every year is a bloody hell.

VimalShekar commented 5 years ago

Linking all these other items to this bug is great - but it's wasting time for a lot of people who are looking to install this on Server OS. Please add a line to the project readme that says :

"Looking to install Windows Terminal on Windows Server 2019 ? - We're not there yet, come back later!..."