Chocolatey

Making installing software easy as pie

  • Over 15 years of programming experience
     
  • Slides:  http://slides.com/digitaldrummerj
     
  • Twitter: @digitaldrummerj
     
  • Email: digitaldrummerj @ gmail.com
     
  • GitHub: https://github.com/digitaldrummerj

Justin James

  • Multiple clicks to get anywhere

  • Deja Vu - sense of installing same software on multiple machines

  • Aarg! should have downloaded 32 bit version

  • Don't install it on a directory with a space in the name

  • etc

  • etc

  • etc

Installing Software 

  • Figures out 32 bit vs 64 bit

  • Knows where to download from

  • Runs the installer silently

  • Built on top of Nuget ecosystem

Hello Chocolatey

  • Visual Studio Package Manager

  • Easy way to package code, configs, and distribute them

  • Handles:

    • Packaging

    • Dependency Management

    • Versioning

    • Hosting

Nuget?? What??

  • Any Chocolatey Feed

  • Public Gallery 

  • Web Platforms Installer

  • Windows Features

  • Windows Updates

  • Ruby Gems

  • Cygwin

  • Python

Get Software

  • Chocolatey.org

Get Chocolatey

Get Chocolatey

@powershell -NoProfile -ExecutionPolicy unrestricted 
-Command "iex 
((new-object net.webclient).DownloadString(
    'https://chocolatey.org/install.ps1'))" 
&& SET PATH=%PATH%;%systemdrive%\chocolatey\bin

Get Chocolatey

iex ((new-object net.webclient).DownloadString
    (
        'https://chocolatey.org/install.ps1'
    ))
  • cinst [package name]

  • choco install [package name]
     

  • Example: 

    • cinst notepadplusplus

Installing Application

  • cinst [package name]
          -source WindowsFeature

  • choco install [package name]
           -source WindowsFeature
     

  • Example:

    • cinst TelnetClient -source WindowsFeature

Installing Win Feature

  • clist -source WindowsFeature

Discover Win Feature

  • From the command line:

    • cinst [package name]
             -source webpi

    • choco install [package name] 
              -source webpi
       

  • Example

    • cinst IISExpress -source webpi

Web Platform Source

  • clist -source webpi

Discover WebPi 

  • From the command line:

    • cinst [package name] -source ruby

    • cinst [package name] -source cygwin

    • cinst [package name] -source python

Other Sources

  • Run ChocolateyInstall.ps1

    • Can download installers / zip files

    • Can set environment variables

    • Can add items to taskbar

    • Can add items to desktop

    • Basically anything powershell can do

Install Means?

  • Update single package

    • cup [package name]
       

  • Update All packages

    • cup all

Install Updates

  • From Command Line:

    • cunist [package name]

    • chocolatey uninstall [package name]
       

  • Unfortunately, many packages don't include uninstall

Get Rid of Package?

  • Use BoxStarter package

    • Create package on the fly from gist or text file

    • Provides reboot needed detection

    • Set options for taskbar, remote desktop, explorer

    • Turn On/Off Windows Updates

Bulk Install

  • Install Chocolatey

  • Install single package

  • Bulk Install Packages

Demo Time

Creating Packages

  • [package name].nuspec

  • ChocolateyInstall.ps1

  • ChocolateyUninstall.ps1

Included in Package?

  • choco new [package name]
     

  • creates:

    • [package name] Directory

    • [package name].nuspec

    • chocolateyInstall.ps1

    • chocolateyUninstall.ps1

Basic Steps

  • MSI/EXE Download & Run

  • Zip File Download & Run

  • Pin to Taskbar

  • Set Environment Variable

  • Explorer Context Menu Item

  • Add Desktop Link

  • Run Powershell Command

  • Run as Admin

Built-In Helpers

Hosting Your

Own Feed

  • Any Directory on your computer 

  • Any File Share on the network

Directory Based Feed

  • Hosted in IIS

  • cinst chocolatey.server

Hosted Feed

  • choco source 

    • list

    • add / remove

    • enable / disable

Source List

  • Create New Package

  • Create our own feed

  • Modifying Sources

Demo

Web Site: 

chocolatey.org
 

Must Have Package:

boxstarter.org
 

Forum: 

groups.google.com/group/chocolatey

More Information

Questions?

Chocolatey - The right way to install Windows software

By Justin James

Chocolatey - The right way to install Windows software

Learn why you should be using Chocolatey to install software onto a Windows machine. We will go through installing Chocolatey, creating our own packages, and finally hosting our packages.

  • 7,208