Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Announcement

OneGet is in a stable state and is expected to recieve only high-priority bug fixes from Microsoft in the future. We continue to welcome updates and improvements from the community.

Build Status - Master

AppVeyor (Windows)Travis CI (Linux / macOS)
av-imagetv-image

Build Status - Nightly Builds

AppVeyor (Windows)
av-nightimage

PackageManagement (aka OneGet)

What's New

PackageManagement is supported in Windows, Linux and MacOS now. We periodically make binary drops to PowerShellCore, meaning PackageManagement is a part of PowerShell Core releases. Also PackageManagement and PowershellGet Modules are regularly updated in PowerShellGallery.com.

Thus check out the latest version from PowerShellGallery.com.

Get Started!

OneGet is shipped in Win10 and Windows Server 2016! For downlevel OS, you can install the WMF 5.1 and then start using the OneGet.

You can follow @PSOneGet on Twitter to be notified of every new build.

What is PackageManagement (OneGet)?

OneGet is a Windows package manager, renamed as PackageManagement. It is a unified interface to package management systems and aims to make Software Discovery, Installation, and Inventory (SDII) work via a common set of cmdlets (and eventually a set of APIs). Regardless of the installation technology underneath, users can use these common cmdlets to install/uninstall packages, add/remove/query package repositories, and query a system for the software installed.

With OneGet, you can

  • Manage a list of software repositories in which packages can be searched, acquired, and installed
  • Search and filter your repositories to find the packages you need
  • Seamlessly install and uninstall packages from one or more repositories with a single PowerShell command

PackageManagement Architecture

Image


Let's Try it

Prerequisites

  • Windows 10, Windows Server 2016, or down-level Windows OS + WMF5
  • Linux or Mac with the PowerShellCore

Working with PowerShellGallery.com

# 1.check available providers
PS E:\>get-packageprovider
Name Version DynamicOptions
-------------------------
msi 3.0.0.0 AdditionalArguments
msu 3.0.0.0
PowerShellGet 1.1.0.0 PackageManagementProvider, Type...
Programs 3.0.0.0 IncludeWindowsInstaller,...
# 2. find a module from the PowerShell gallery, for example, xjea
PS E:\>find-module xjea
NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201' or newer to interact with NuGet-based repositories. The NuGet provider must be available in'C:\ProgramFiles\PackageManagement\ProviderAssemblies' or 'C:\Users\jianyunt\AppData\Local\PackageManagement\ProviderAssemblies'. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force'.Do you want PowerShellGet to install and import the NuGet provider now?
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Version Name Repository Description
--------------------------------0.3.0.0 xJea PSGallery Module with DSC Resources for Just Enough...
# 3. install a module from the PowerShell gallery
PS E:\>Install-Module xjea
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are
you sure you want to install the modules from'gallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
# 4. Find out if a module is installed
PS E:\>Get-InstalledModule-name xjea
Version Name Repository Description
--------------------------------0.3.0.0 xJea gallery Module with DSC Resources for Just Enough Admin (JEA)..
# 5. Uninstall a module
PS E:\>Uninstall-Module-name xjea

Working with http://www.NuGet.org repository

# find a package from the nuget repository
PS E:\>find-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# install a package from NuGet repository
PS E:\>install-package-name jquery -provider Nuget -Source https://www.nuget.org/api/v2
The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from'nuget.org'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y
Name Version Source Summary
------------------------
jQuery 3.1.1 nuget.org jQuery is a new kind of JavaScript Library....
# Uninstall the package
PS E:\>uninstall-package jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 C:\Program Fi... jQuery is a new kind of JavaScript Library....
# Register a package Source
PS E:\>Register-PackageSource-name test -ProviderName NuGet -Location https://www.nuget.org/api/v2
Name ProviderName IsTrusted Location
---------------------------------
test NuGet False https://www.nuget.org/api/v2
# find a package from the registered package Source
PS E:\>find-package-Source test -name jquery
Name Version Source Summary
------------------------
jQuery 3.1.1 test jQuery is a new kind of JavaScript Library....

Try the latest PackageManagement (OneGet)

You can run install-module PowerShellGet to install the latest PackageManagment and PowerShellGet from PowerShellGallery.

Downloading the Source Code

OneGet repo has a number of other repositories embeded as submodules. To make things easy, you can just clone recursively:

git clone --recursive https://github.com/OneGet/oneget.git

If you already cloned but forgot to use --recursive, you can update submodules manually:

git submodule update --init

Building the code

# After cloning this repository, go to the project folder:> cd oneget
> cd src
# download the dotnet cli tool> .\bootstrap.ps1
# building OneGet for fullclr> .\build.ps1 net452
#building OneGet for coreclr> .\build.ps1 netstandard2.0

If successfully built above, you should be able to see a folder: oneget\src\out\PackageManagement\ whose layout looks like below:

  • coreclr
  • fullclr
  • PackageManagement.format.ps1xml
  • PackageManagement.psd1
  • PackageManagement.psm1
  • PackageProviderFunctions.psm1

Deploying it

Generate PackageManagement.nupkg

We can use publish-module to create a .nupkg. Assuming you want to put the generated .nupkg in c:\test folder. You can do something like below. Note I cloned to E:\OneGet folder.

cd E:\OneGet\oneget\src\out\PackageManagement
Register-PSRepository-name local -SourceLocation c:\test
Get-PSRepositoryPublish-Module-path .\ -Repository local
PS E:\OneGet\oneget\src\out\PackageManagement> dir c:\test\PackageManagement*.nupkg
Directory: C:\test
Mode LastWriteTime Length Name
----------------------------a----11/4/20164:15 PM 1626335 PackageManagement.1.1.0.0.nupkg

Then you can do

find-module-Repository local
install-module-Repository local -Name PackageManagement

to get the newly built PackageManagement on your machines.

Manual copy

You can also manually copy the OneGet binaries. For example, copy the entire E:\OneGet\oneget\src\out\PackageManagement folder you just built to your $env:Programfiles\WindowsPowerShell\Modules\PackageManagement\#onegetversion\

If you are running within PowerShellCore, similarily drop the PackageManagement folder to your $env:Programfiles\PowerShell\#psversion\Modules\PackageManagement\#onegetversion\,

or copy to /opt/microsoft/powershell/<psversion>/Modules/PackageManagement/#onegetversion/, if you are running on Linux or Mac.

Note: OneGet version number can be found from the PackageManagement.psd1 file.

Testing the code

> cd oneget
> cd Test
>&'.\run-tests.ps1' fullclr
>&'.\run-tests.ps1' coreclr

Understanding the OneGet code repository

OneGet is under rapid development, so you get to see just how the sausage is being made. I try to keep the master branch clean and buildable, but my own working branch can get pretty damn wild and I make no bones about some of this. I work fast, I make big changes, and I try to keep my eye on the target.

Feel free to clone the repository and check out the different branches:

Branches

There are currently three branches in the git repository:

Branch/TagPurpose
masterThe master branch is where the daily builds of OneGet will be made from.
WMF5_RTMThe WMF5_RTM tag is to mark the WMF 5.0 RTM release point.
TP5The TP5 tag is to mark the TP5 release point.
wipThe wip branch is where the current unstable and not-likely-working coding is taking place. This lets you see where I'm at before stuff actually hits the master branch. Fun to read, but really, the wild-west of code branches.

Team Members

BranchPurpose
@sydneyhsmithProgram Manager on OneGet.
@jianyuntEngineer owner on OneGet & its providers.
@edyoungOur engineer manager on OneGet.
@alericksonEngineer on the team.

Follow us on Twitter

More Resources

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages