Cover Image for chocolately独自パッケージを作成する方法
chocolately独自パッケージを作成する方法

image

ども、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)」にチャレンジします。

  1. 配布資産(zip) ★今回はこれ!!
  2. Windows実行ファイル(exe)」
  3. 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を参考にします。

https://chocolatey.org/docs/create-packages-quick-start#quick-start-guide

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

© 2022 k69

本サイトを通じて、たくさんの人がプログラミングに興味を持ち、 これがキッカケでモノづくりの楽しさに触れることができれば幸せです!