雑多に技術メモと他色々

主に自分用な技術メモが多くなる気がする。他色々が書かれるかどうかは不明。

Chocolateyで雑にPCの環境構築してみた

PC買い替えたので、初期のソフトインストール一式をパッケージ管理のChocolateyに任せてみることに。
やった方法と注意点をいくつか。

そもそもChocolateyって何?

Windowsのソフトウェアをパッケージ管理できるやつ。apt-getやyumみたいなことがWindowsでできるよ。
Chocolatey - The package manager for Windows

とりあえず自分でインストールしたときの方法晒す

Chocolateyをインストールする

公式のインストールガイドに従って、コマンドプロンプト or PowerShellでコマンド実行すればインストールできる。

f:id:yamakisso:20190526204526p:plain
こんな感じでコピペ用のコマンドを作ってくれてる。

コマンド実行時は、管理者権限でプロンプトなどを起動する必要がある。
また、Webから実行コード落としてくる扱いなので、インターネットアクセスは必須。
※ なので、最低限のセキュリティ担保は先にやっておくこと。

インストール用の設定ファイルを作る

個々にコマンド打ったりバッチファイルにしてみたりもよかったけど、XMLで設定ファイル作成できたのでそれで。
下記の内容でpackage.configファイルを作る。

<?xml version="1.0" encoding="utf-8"?>
<packages>
	<!-- ブラウザ:Chrome -->
	<package id="googlechrome" />

	<!-- Google日本語入力(Chocolateyのパッケージ管理が非推奨してるので自分で入れる…) -->
	<!-- package id="googlejapaneseinput" / -->

	<!-- git:改行コード変換を拒否 -->
	<package id="git.install" packageParameters="/NoAutoCrlf" />

	<!-- JDK:自動Update無効 -->
	<package id="jdk8" packageParameters="static=false" />
	<package id="jdk11" packageParameters="static=false" />

	<!-- テキストエディタ -->
	<!-- ガッツリ書くときはAtomだけど、気軽に開くならsakuraがほしい -->
	<package id="sakuraeditor" packageParameters="'/Tasks:fileassoc'" />
	<!-- Atomは普通にbeta版がインストールされたりするので一旦保留 -->

	<!-- 圧縮解凍:7-ZIP -->
	<package id="7zip.install" />

	<!-- 画像編集:gimp -->
	<package id="gimp" />

	<!-- フォントのインストール:Ricty Diminished -->
	<package id="fonts-ricty-diminished" />
</packages>

インストールコマンドを打つ

package.configファイルをカレントにして、管理者権限のコマンドプロンプトなどで下記のインストールコマンドを打つ。
cinst package.config

ただし、コマンド中にPowerShellの実行を求められるケースがあると、実行許可設定してない場合に失敗する。
事前許可するか、PowerShellで下記のような感じで一時的な許可設定しつつ実行すればOK。
Set-ExecutionPolicy RemoteSigned -Scope Process -Force; cinst package.config

コマンドを打つと、設定ファイルに従ってソフトインストールが実行される。
インストールの度に承諾[y]の入力が求められるが、これを省略する場合はオプション-yを利用できる。

Chocolateyの使い方

基本的なコマンド

詳細なオプションや他のコマンドは公式ドキュメント左メニューの「Commands:」から参照のこと。

  • パッケージをインストールする:
    choco install <パッケージ名>
  • パッケージを設定ファイルからインストール:
    choco install <設定ファイル.config>
  • インストールしたパッケージの一覧を表示(※1):
    choco list --local-only
  • パッケージを更新する:
    choco upgrade <パッケージ名>
  • パッケージを削除する(※2):
    choco uninstall <パッケージ名>

(※1) local-onlyオプション無しでlistするとWeb上の利用可能パッケージ全部表示されるので注意。
(※2) コマンドからの削除は、パッケージ作成者がChocolatey用の実装を用意していなければいけないが、やってないことも多いらしい。無理だったら素直にWindowsのアンインストール機能を使うしかない。

簡易コマンド(省略形)

下記の通り省略系の代替コマンドも用意されている。

コマンド 省略形
choco install cinst
choco list clist
choco uninstall cuninst

インストールできるパッケージについて

何が使えるの?

Webでパッケージ一覧は公開されている。
Chocolatey Gallery | Packages

インストールオプションなど

各パッケージのページにはインストール時のオプション指定方法などの説明書がついている。
Gitのcore.autocrlf無効化など、各種設定方法を確認して取り込むことができる。

注意点
  • 同じソフトでも複数パッケージが公開されていることもある。一応DL数などで良し悪し判断するのがベターか。
  • パッケージを利用しても良いかどうかの妥当性は、各利用者が必要に応じて確認すること。
    厳しい環境なら公式のインストーラに頼ったほうがいいかも。
  • 有名所のソフトでもパッケージ利用については警告が出たり(Google日本語入力など)、beta版が最新パッケージとして公開されたり(Atom)という残念な状態。

PackageManagement使ったほうがいいのでは?

調査不足…使えるなら使ったほうがいいのかもしれないけど、ググってもconfigファイルの作成例などあまり知見が出てこない。
中身は結局Chocolateyが主流(PackageManagementはWrapしてるだけ)のようなので、少なくともChocolateyリポジトリから取ってくるパッケージの調べ方などは同じでいいはず。

まとめ

yumやapt-getなんかのレベルまでは普及してない感あるけど、まあまあ使うことはできるんじゃないかというところ。
(そもそもWindowsユーザ全体で見るとパッケージ管理を欲する層が少数派だろうけど)
PackageManagementのレイヤから触ったほうがいいのか、このレイヤOnlyで使ってみるほうが良いのかは判断分かれそう。