Chocolatey

1. はじめに

Windowsで使用するパッケージマネージャ

Macのbrewやら、Ubuntuのapt-getみないたもの。

公式サイト: https://chocolatey.org/

2. いいところ

  • インストーラダウンロードしてポチポチしなくていい

  • 一括アップデート出来る

  • 広告ソフトをうっかりインストールする心配は無いはず

3. インストール

最新のインストール方法は https://chocolatey.org/install#installing-chocolatey

3.1. 要求仕様

Windows 7+ / Windows Server 2003+
PowerShell v2+
.NET Framework 4+ (the installation will attempt to install .NET 4.0 if you do not have it installed)
— https://chocolatey.org/install#requirements

3.2. cmd.exeでインストール

管理者権限で実行する
cmd.exe
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

3.3. PowerShell.exeでインストール

管理者権限で実行する
PowerShell.exe
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
実行時出力
> Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Getting latest version of the Chocolatey package for download.
Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.11.
Downloading 7-Zip commandline tool prior to extraction.
  :
  :
(snip)
  :
  :
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder
> choco -v
0.10.11

> chocolatey -v
0.10.11

> which chocolatey
C:\ProgramData\chocolatey\bin\chocolatey.exe
chocochocolateyのエイリアス

4. パッケージを探す

https://chocolatey.org/packages で利用可能なパッケージが確認できる。

インストールするコマンドの記述もあるのでそのままコピペして使える。

コマンドでの探し方

choco search <キーワード>
例 1. python3をキーワードとして実行
> choco search python3
Chocolatey v0.10.11
python3 3.6.5 [Approved]
anaconda3 5.1.0 [Approved]
python3-x86_32 3.5.2.20170425 [Approved] - Possibly broken
miniconda3 4.5.1 [Approved]
4 packages found.

Did you know Pro / Business automatically syncs with Programs and
 Features? Learn more about Package Synchronizer at
 https://chocolatey.org/compare

5. パッケージのインストール

管理者で実行
choco install <パッケージ名>
管理者で実行
cinst -y <パッケージ名>

choco installcinstとすることが出来る

--yes,-yオプションをつけると確認問い合わせでYESと答えたことになる。

例 2. wgetをインストール
> cinst wget
Chocolatey v0.10.11
Installing the following packages:
wget
By installing you accept licenses for the packages.

Wget v1.19.4 [Approved]
wget package files install completed. Performing other installation steps.
The package Wget 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
Do you want to run the script?([Y]es/[N]o/[P]rint): Y

Getting x64 bit zip
Extracting C:\ProgramData\chocolatey\lib\Wget\tools\wget-1.19.4-win64_x64.zip to C:\ProgramData\chocolatey\lib\Wget\tools...
C:\ProgramData\chocolatey\lib\Wget\tools
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 ShimGen has successfully created a shim for wget.exe
 The install of wget was successful.
  Software installed to 'C:\ProgramData\chocolatey\lib\Wget\tools'

Chocolatey installed 1/1 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

パッケージはまとめて指定することも出来る。

管理者で実行
choco install <パッケージ名1> <パッケージ名2> <パッケージ名3> ...

6. パッケージリスト

インストールしたパッケージのリストを表示する。

choco list -lo

7. アップデート

パッケージのアップデートは

管理者で実行
choco upgrade <パッケージ名>

chocolatey自体のアップデートは

管理者で実行
choco upgrade chocolatey

インストールしているすべてのパッケージをアップデートするには

管理者で実行
choco upgrade all

8. アンインストール

アンインストールコマンドは

管理者で実行
choco uninstall <パッケージ名>

9. パッケージの一括インストール

XML形式の設定ファイルを用意するこどでパッケージの一括インストールが可能となる。

別PCと同じパッケージを構築できる。

packages.config
<?xml version="1.0"?>
<packages>
    <package id="curl" />
    <package id="wget" />
    <package id="<パッケージ名>" />
     :
     :
</packages>
管理者で実行
cd /path/to/<packages.coonfigのあるディレクトリ>
choco install -y packages.coonfig