ども、k69 です。
開発環境を作るって面倒だと思いませんか?(開発環境だけでなく、新規PCのセットアップとかも)コマンドライン一撃でいろいろなソフトをインストールできれば、いいことがたくさんあると思います。
- 「丸一日かけてPCのセットアップをしまーす」のようなムダな時間を削減できる
- 開発メンバ全員が同じ環境にできるので、環境差異による不具合がなくなる
- 画面キャプチャがたくさん張り付けてあるような膨大な環境構築手順書をつくる必要がなくなる
これを実現できそうな救世主となりうるのが、Windowsパッケージマネジャーのchocolatelyです。
chocolatelyインストール方法
@"%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"
※ プロキシ環境の場合はこちらを参照
Chocolateyインストールメモ
Chocolateyさえインストールしてしまえば、Visual Studio Codeとgo言語をインストールする場合、コマンドラインに下記をコピペすればOK!!(楽ちんですね)
choco install -y VisualStudioCode
choco install -y golang
しかし、必要なソフト(sakuraエディタやnkfコマンドなど)や、独自ツール(チームない便利ツール)など、chocolatelyのパッケージで公開されていないものもあります。
これじゃ、コマンドライン一撃で開発環境ができない!と思ったので
じゃ、「chocolately独自パッケージを作ってみるか!」と
ウニウニしたのがこの記事です。
対象読者
- PCのセットアップ(開発環境構築とか)にかかる時間がもったいないと思っている人
- PCの環境に同じソフトウェアなどをセットアップしたい人
- PCのセットアップ手順をたくさん書いている人
前提条件
- Windows(64bit)環境を使用している人
手順
1. はじめに
chocolatelyでパッケージ化できるものは1~3などありそうです(他にもたくさんある)。今回は一番簡単そうな「配布資産(zip)」にチャレンジします。
- 配布資産(zip) ★今回はこれ!!
- Windows実行ファイル(exe)」
- Windowsインストーラ(msi,msu)
2. 事前準備
2-1. 配布するZIPファイルを準備します
GitHubで実行ファイル(ソースコードを含まない)をZIPファイルで配布してみるを参考に配布資産(zip) を作ってみましょう。
2-2. checksumをインストールします
choco install -y checksum
2-3. checksumの計算をします
checksum -t sha256 hello.zip
6C58281E71CAA7B8517374D6A9695B9DE62D8413F188301D438183DE70D8E7D1
3. chocolatelyのパッケージを作成します
公式HPのQuickStartを参考にします。
3-1. パッケージのベースを作成します。
コマンドラインで下記を実行します。
cd c:\tmp\chocopkg\hello
choco new hello
下記のディレクトリおよびファイルが作成されます。
c:\tmp\chocopkg\hello
│ hello.nuspec ★編集①します
│ ReadMe.md
│ _TODO.txt
│
└─tools
chocolateybeforemodify.ps1
chocolateyinstall.ps1 ★編集②します
chocolateyuninstall.ps1
LICENSE.txt
VERIFICATION.txt
3-2. 設定ファイル(hello.nuspec)を編集①します
バージョン情報(任意)を編集します。
<version>__REPLACE__</version>
↓↓↓
<version>1.0.0</version>
3-4. installシェル(chocolateyinstall.ps1)を編集②します
chocolateyinstall.ps1の内容をすべて削除し、下記の内容をコピペします。
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$url = 'https://github.com/keita69/helloworld-go/releases/download/v1.0.0/hello.zip' # download url, HTTPS preferred
$packageArgs = @{
packageName = 'hello'
unzipLocation = $toolsDir
url = $url
softwareName = 'hello*' #part or all of the Display Name as you see it in Programs and Features. It should be enough to be unique
checksum = '6C58281E71CAA7B8517374D6A9695B9DE62D8413F188301D438183DE70D8E7D1'
checksumType = 'sha256' #default is md5, can also be sha1, sha256 or sha512
}
Install-ChocolateyZipPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-zip-package
3-4. パッケージを作成します。
cd c:\tmp\chocopkg\hello
choco pack
4. 作成したパッケージを実行します。
4-1. 作成したパッケージをインストールします。
管理者権限でコマンドプロンプトを起動します。
cd c:\tmp\chocopkg\hello
choco install -y hello -s .
4-2. 作成したパッケージを実行します。
hello
c:\tmp\chocopkg\hello>hello
Hello, 世界
まとめ
chocolateyで独自パッケージを作成して、 choco install でインストールするたけで、PAHTも自動的に追加されるので非常に便利です。
やり方さえわかってしまえば、GitHubに配布資産を登録してコマンド一発で開発環境を構築するなど、みんなが同一環境を簡単に使えるし、作業コストも削減できると思うのでここに書いていることを活用してもらえればと思います。
参考URL
- Chocolateyの自作パッケージ入門(1)
http://blog.esora.xyz/create-chocolatey-package