Windows 10ではPackageManagementというパッケージ管理機能が 付いています。
Macで言うHomebrew的な存在ですが、 これを有効活用するためにMacのHomebrew用に作った Brew-file的な物をPackageManagement用にも作ってみました。
WinPkgMgr
PackageManagementで管理しているアプリを
ファイルに書きだして、そのファイルを使って一括インストールしたり出来る
PowerShellスクリプト、PkgMgr.ps1
というスクリプトが入ってます。
基本的にやりたいことはMacでやってるBrew-fileと同じです。
パッケージをファイルに書き出して環境を管理します。 さらに、それをGitHubなりDropboxなり、もしくは直接コピーするなりして 他のマシンに移して同じ環境を簡単に作ったり 環境を同期したりします。
基本的な使い方はBrew-fileと同じような感じで出来る様になってます。
今使えるコマンドは以下のとおり。
Command | Description |
---|---|
init | Initialize the package management file with installed packages. |
install | Install all packages in the package management file. |
show | Show the package management file place and packages in the file. |
set_repo | Set GitHub repository for the package management file. |
pull | Pull GitHub repository. |
push | Push GitHub repository. |
update | (pull +) install + init (+ push). pull , push only when GitHub repository is used. |
PkgMgr.ps1 init
でパッケージを書き出して、
PkgMgr.ps1 install
でファイルにあるパッケージを一括インストールする、
という所が基本。
現在使ってるマシンでPkgMgr.ps1 init
してファイルを作り、そのファイルを
新しいマシンにコピーしてPkgMgr.ps1 install
すると
新しいマシンで同じ環境を作れます。
また、ファイルをDropboxに置くようにしてマシン間で同期したり、
Brew-fileでやっているようにset_repo
することでGitHubのレポジトリを使うことも出来ます。
書きだしたファイルは以下の様な感じのパッケージ名+プロバイダー名なリストになります。
adobereader chocolatey
autohotkey chocolatey
autohotkey.install chocolatey
autohotkey.portable chocolatey
Cygwin chocolatey
dropbox chocolatey
Evernote chocolatey
Firefox chocolatey
flashplayerplugin chocolatey
git chocolatey
git.install chocolatey
GoogleChrome chocolatey
GoogleJapaneseInput chocolatey
lhaplus chocolatey
MobaXTerm chocolatey
putty chocolatey
putty.portable chocolatey
skype chocolatey
teamviewer chocolatey
vim chocolatey
デフォルトではDocumentsフォルダの中にpkg.txtと言うファイルを作ります。
To Do
取り敢えず最低限の事は出来る様になりましたが、 Brew-fileにあるもので付け加えられそうなものとして
- 指定したGitHubのpkg.txt用レポジトリがない場合作れる様にする(Brew-fileでは出来る)。
- 既にインストールされていてPackageManagementを通して無い物を見つけてPackageManagementで管理するようにする(Brew-fileのcasklist的な)。
clean
コマンド(リストに無いものを削除)。edit
コマンド(ファイルを編集)。
辺り。
READMEとして、タスクスケジューラーを使って定期的にupdate
コマンドを
実行する様にするインストラクションとかを加える。
これ見ておけば大体できるとは思いますが。
後はGitの設定とか。
自分ではCygwinでGitHubの鍵とかの設定をしていて、
それでPowerShellからも使える様になっています。
Cygwin様にWindowsの環境変数HOMEを設定すると、
PowerShellの$Env:HOME
がその値になり、Cygwinの~/.ssh
を見るようになって
そこにある鍵を使えます。
PkgMgr.ps1
の中では、WindowsにGitがインストールされていないと
PackageManagementを使ってGitを自動でインストールするようになってるので(このGitはCygwinのGitとは別)、
Cygwinで設定さえしてあればPkgMgr.ps1
でGitHubのレポジトリを使えます。
Cygwinを使ってない場合はGitHub for Windows等を使って設定しておけばいけると思います。