Windows package manager

From Ever changing code
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Chocolatey is a package manager for Windows like apt-get or yum but for Windows. With all of this in mind, think of Chocolatey as a framework that you can build on top of. Chef, Puppet, Boxstarter, PowerShell DSC, Ansible, Saltstack, etc all have ways for using Chocolatey to ensure the state of a computer and packages installed. Even Microsoft has decided to use Chocolatey's framework with the PowerShell PackageManagement / OneGet package manager aggregator.

Install

<syntaxhighlightjs lang="powershell">

  1. List execution policies

Get-ExecutionPolicy -List

  1. Windows Server

Update-ExecutionPolicy -Policy Unrestricted

  1. Windows 10

Set-ExecutionPolicy Unrestricted -Scope CurrentUser Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force Set-ExecutionPolicy Unrestricted -Scope LocalMachine

  1. Install Chocolatey
    1. Short version

iex ((new-object net.webclient).DownloadString("http://chocolatey.org/install.ps1"))

    1. Full version

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

    1. Reload profile

. $profile

  1. Explanation

alias iwr #Alias iwr -> Invoke-WebRequest alias iex #Alias iex -> Invoke-Expression </syntaxhighlightjs>

Usage

<syntaxhighlightjs lang="powershell">

  1. Install

choco install <pkg|packages.config> [<pkg2> <pkgN>] [<options/switches>] cinst <pkg|packages.config> [<pkg2> <pkgN>] [<options/switches>]

  1. Unistall

choco uninstall <pkg|all> [pkg2 pkgN] [options/switches] cuninst <pkg|all> [pkg2 pkgN] [options/switches]

  1. List packages

choco list --local-only choco version all # deprecated in version 1.0.0

  1. Upgrade

choco upgrade all </syntaxhighlightjs>

Install packages

Often packages require to run .ps1 installation steps and you will be prompted with: "The package sublimetext2 wants to run 'chocolateyInstall.ps1'. Note: If you don't run this script, the installation will fail. Note: To confirm automatically next time, use '-y' or consider: choco feature enable -n allowGlobalConfirmation.. So use commands to achieve this:

<syntaxhighlightjs lang="powershell"> choco feature enable -n allowGlobalConfirmation #one time off choco install -y notepadplusplus #per package </syntaxhighlightjs>


<syntaxhighlightjs lang="powershell"> cinst putty 7zip postman cinst googlechrome firefox choco install virtualbox choco install minikube kubernetes-cli cinst git-credential-manager-for-windows cinst poshgit # git prompt in PowerShell teminal cinst console-devel cinst vscode notepadplusplus sublimetext2 atom #text editors cinst winmerge # add kdiff3 cinst sourcetree cinst nodejs.install cinst dotpeek cinst fiddler4 # SSL packet inspection termination point and logging choco install dotnetcore-sdk # .Net Core SDK choco install dotnetcore-windowshosting # ASP.NET Core Module for IIS, enabling running of ASP.NET Core applications

  1. Desktop

choco install f.lux.install cinst vlc

  1. Outdated
  2. cinst git-credential-winstore # old use: Git Credential Manager for Windows

</syntaxhighlightjs>

Install .net core

<syntaxhighlightjs lang="powershell"> powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>" </syntaxhighlightjs>

References

Install IIS

Install IIS with PowerShell on Windows Server 2016 / VPS / 2019 <syntaxhighlightjs lang="powershell">

  1. enable IIS role

Set-ExecutionPolicy Bypass -Scope Process Get-WindowsOptionalFeature -Online | where FeatureName -like 'IIS-*' # check online for available features Get-WindowsFeature -Name Web* | Where-Object Installed # check installed web related features Install-WindowsFeature -Name Web-Server -IncludeManagementTools Install-WindowsFeature -Name Web-Server -IncludeManagementTools -IncludeAllSubFeature Disable-WindowsOptionalFeature -Online -FeatureName IIS-WebDAV # disable IIS sub-feature (uninstall) </syntaxhighlightjs>

Windows desktop developer settings

<syntaxhighlightjs lang="powershell">

  1. Set-WinUserLanguageList -LanguageList en-GB

Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions -EnableShowFullPathInTitleBar Enable-RemoteDesktop

  1. Set-StartScreenOptio=ns -EnableBootToDesktop
  2. Move-LibraryDirectory "Personal" "$env:UserProfile\<userName>\documents"
  3. Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions -EnableShowFullPathInTitleBar -EnableOpenFileExplorerToQuickAccess -EnableShowRecentFilesInQuickAccess -EnableShowFrequentFoldersInQuickAccess -EnableExpandToOpenFolder
  4. Set-TaskbarOptions -Size Small -Lock -Dock Top -Combine Always
  5. Install-WindowsUpdate -AcceptEula

</syntaxhighlightjs>

Resources