>> Hello there, and welcome at Open at Microsoft.
I'm Frankly Boucher and today with me I have
Demitrius Nelon to talk about Winget.
[MUSIC]
>> Hey, Demitrius. I know we want to
talk about Winget today so what do you have for us?
>> I figured we'd start out here at
Winget CLI repository on GitHub,
just to show everything is open source.
I'm going to do a demo from the 1.3 version of the client.
The first thing, if you run the Winget command by itself,
you're going to see some detail
held and you'll notice there's a link at the bottom.
If you're using Windows Terminal, you can just click that.
It'll take you directly to the documentation.
>> I loved that, honestly.
This is so useful. You don't need to search online.
It's right there, love it.
>> Right there. Yeah. I want to show Winget info,
this is going to verify what version of Winget you have,
what version of Windows you have,
and your processor architecture.
Also tells you where your logs are
if you need to do some troubleshooting.
The other thing I'll show you is settings.
I've already got Visual Studio Code installed,
and that's my default JSON editor so it's
just going to pull up the settings file.
You'll notice I've got this section in here, visual,
progressBar, rainbow, that's one of
the favorite features that we've got.
Now, let's say we wanted to search for something.
I'm just going to type in "NuGet".
One of the things that's new in
1.3 is support for portable packages.
You'll see I've got a few choices here.
I've got a couple from the store and one from Winget,
and I'm pretty sure it's the one that's
in the community repository
Winget that we're interested in so I'm just going
to display that manifest and verify.
>> Yeah, because this is really important,
to make sure we download the good one,
the secure one, we want to validate as much information as we can.
>> When I put the shell command in,
you'll see some information,
and you see that the publisher is.
You can even see we've already determined which installer
or setup file is the right one.
We're going to display that URL.
You can actually just click and download it from
there but one of the benefits of using
Winget for this is
that whenever you do the install for portable app,
and this is just like a loose.exe file,
Winget will actually install this into Windows apps,
and features and it will give you
the ability to do upgrades and installs.
If I pull up settings for apps and features,
I can search for "NuGet",
and you'll notice that it sees the versions so that
the upgrade and also the uninstall function are available.
You don't have to manually manage
those loose portable packages
like you would expect to have to do, typically.
>> That's great.
>> One of the other things if I do Winget list,
this is actually going to show
everything installed on the system,
and even if you didn't use Winget to install it,
if there's a match with one of the manifests in our repository,
you'll see that Winget already knows about it,
and it can just pretty much pick up
wherever you are and take off from there.
>> This is great. Let's say I have
already my machine and I just want to
get prepare for a fresh install, something like that.
I could see what's in there
even if initially I didn't install it with Winget.
>> That's correct. I've filtered the list
on NuGet just to show you
that it's there and I'm going to run uninstall,
and you'll see it's already uninstalled.
If I do Winget list,
NuGet again, you'll see there's nothing there.
>> Okay, yeah.
>> One of the other common things you're going to
want to be able to do is upgrade.
If I run the upgrade command,
it's actually going to go and look and
see anything that's installed,
anything that upgrades are available,
and let you see what's there.
I intentionally installed an older version
of Git just so I could show you what happens,
and you'll see it'll kick off
the installer after it's figured out that there's
the newer version there and it will upgrade it for me.
I'd say another one of our crowd-pleaser features
is Winget upgrade --all,
which will actually upgrade every package that's on your system,
but that one ends up being a little bit time-consuming,
watching all of those downloads and installs,
and all of that,
and we default to a non-interactive mode,
that will allow apps to show
their progress just so you're not staring at something blank,
but you can also pass in --silent and that would
actually give you a silent install with no UI pop-ups,
and we've built a lot of that for automation.
>> That's great. There's something
you mentioned that I want to come back to it,
so you say you install an older version of the Git,
do that mean I can specify a specific version, so for example,
if I want to create
a specific environment and I need a older version,
I could pick not the latest?
>> Right. If you type in the shell command and you append
the --versions will actually
give you a list of everything that we have in the repository.
>> Okay, and I'll-.
>> See what I did was earlier I installed 2.39.0,
and I just did that by specifying the version so, for example,
Winget, I could actually specify a version that I wanted.
It's pretty common for MSI-based installers and
MSI-based installers to know there's a newer version,
so you might have to uninstall to force
an older one on your system but if you're just starting out,
just pass in the version number and you're good to go.
>> Okay, that's great. I love it.
Sometime, you know you don't want the latest,
you want the LTS or whatever,
like the long-term support version
or something like that so it's always
nice to be able to specify the version. That's great.
>> Yeah, so that was what I want to cover
today is just an overview and I'm looking
forward to making some more videos where we'll dig into
a little bit more detail on how we work with open source,
and we'll drill into some of the more complex commands.
>> Perfect, so I'll see you next time at Open at Microsoft.
[MUSIC].