ChocolateyというWindows10パッケージマネージャを使ってみる
確認環境
Spec / Version | |
---|---|
PC | mouse LB-J770X-SH2 |
OS | Windows10 Home (ver 1607 build 14393.693) |
Chocorately | v0.10.3 |
ChocolateyというWindows向けパッケージマネージャ
Chocolatey … Windows向けのパッケージマネージャだそうです。
コマンド一つで用意されているパッケージのソフトがインストール出来ちゃいます。
もう数年前からあるそうですが、存在すら知りませんでした。
今回、GoやPythonをChocolateyで入れなおしたので簡単にご紹介します。
もう少し詳しく知りたい方は、下記のサイトなどを参考にされてはいかがでしょうか。
参考
chocolatey 基本情報まとめ
Chocolateyで楽々Windows開発環境構築
因みに私が実際に使ってみて感じたこと。
- 職場とかで使えたら便利だろうなぁ
- Go Ver1.8が既に登録されているとは対応速いなぁ
- システム全体で使うプログラムとしてインストールかぁ
- インストール先フォルダに統一感ないなぁ
- カスタムインストールできるオプション欲しわぁ
ひとまず、開発者さん謝謝です。
今回やること
Chocolateyのインストール
管理者権限でコマンドプロンプトを起動(Win+x,aキー入力とか)して、下記コマンドを貼り付けて実行して下さい。
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
インストール後、choco
コマンドを実行してバージョンが表示さればOKです。
そんなコマンド無いよって怒られた場合、パスが反映されてないかもです。
一度コマンドプロンプトを再起動して下さい。
Chocolateyによるパッケージインストール
どんなパッケージが用意されているかは公式サイトから検索できます。
下記コマンドでテキストファイルにしてしまえばエディタで楽々検索編集できていいかもです。
コマンド実行完了まで若干時間がかかります。。。
clist -a > choco_list.txt
残念ながらNeovimはまだパッケージとして登録されていませんでした。
パッケージリストの作成
まず以下のようなXMLファイルをpackage.config
という名前で用意しましょう。
エンコーディングはUTF-8で保存して下さい。
version
オプションを指定すれば、バージョンを指定してインストール出来るようです。
「ようです」というのは、私自身全てバージョン指定なしで最新版をインストールしたので試せていません。
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="git" /> <package id="hg" /> <package id="python2" /> <package id="python3" version="3.5.2" /> <package id="golang" /> <package id="7zip.portable" /> <package id="ctags" /> <package id="global" /> <package id="curl" /> <package id="SourceTree" /> <package id="winmerge-jp" /> </packages>
以下は上記パッケージの簡単な説明です。
パッケージ名 | 説明 |
---|---|
git | バージョン管理システム(Linux開発用に作成された) |
hg | バージョン管理システム(Python製) |
python2 | Python2の開発実行環境 |
python3 | Python3の開発実行環境 |
golang | Go言語開発環境 |
7zip | ファイル圧縮解凍ツール |
ctags | ソースを読むのに便利なタグファイル作成コマンド |
global | ctagsより高機能なタグファイル作成&解析コマンド |
curl | httpコンテンツ取得(要はダウンローダ的な)コマンド |
SourceTree | バージョン管理システム(git/hg)のGUIフロントエンド |
winmerge-jp | Windowsではお馴染みのdiffツール |
上から5つgit~golang
まではNeovim + Go開発にはきっとあった方が良い気がします。
後はお好みでどうぞ。
もちろん、GoとかNeovimとかどうでもいいよって方はお好きなパッケージを入れて下さいな。
パッケージをインストール
次に用意したファイルと同じフォルダで下記コマンドを実行して下さい。
-y
は「ホントにインストールしていいの?」という確認をスキップするオプションです。
cinst -y package.config
後はインストール完了まで待つだけです。
因みにpackage.config
をパッケージ名にすればコマンドプロンプトから追加でパッケージをインストール出来ます。
cup all
コマンドで全パッケージ更新できます。
cinst -y FoxitReader cup all
バッチファイル化してみる
ついでなのでバッチファイルを作ってみました。
バッチファイルなんて生きている間に真面目に作ることなんてないな、なんて今まで接触避けてきました。
実際触ってみると、なんて摩訶不思議な世界でしょ。。。
なんて言い訳もこの辺にしておき、課題が残っています。
Chocolatey本体のインストール後は環境変数などが反映されて無さげで、パッケージのインストールまで続けて実行するとエラーを吐きました。
PATHやChocorateyInstallなどを一時的な環境変数へ設定して続けて実行してみてもダメでした。
仕方がないので本体インストール後は一度バッチ処理終了するという手抜き具合。。。
もう一度バッチファイルを実行するとパッケージのインストールを開始します。
なんてこった。なんてかっこ悪いことでしょ。
そんなのでも良い方は下記を適当な名前(*.bat)で保存して、ダブルクリックしてみて下さいまし。
Chocolatey本体のインストールとパッケージリストからのインストール実行
@echo off :CHECK_ADMIN rem ================================================== rem 管理者権限の実行判定 rem ================================================== rem 管理者権限で起動されたかチェックする whoami /PRIV | find "SeLoadDriverPrivilege" > NUL rem 管理者権限があれば、メイン処理へ if not errorlevel 1 goto MAIN_JOB rem 管理者権限が無ければ、管理者権限でbatファイルを起動し直す @powershell -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process %~f0 -Verb Runas" exit :MAIN_JOB rem ================================================== rem chocolatey本体のインストール rem ================================================== set | findstr ^ChocolateyInstall= >nul 2>nul if not {%ERRORLEVEL%} == {0} ( echo #-------------------------------------------------- echo # install chocolatey ... echo #-------------------------------------------------- @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" rem システム環境変数などが反映されない為、一旦抜ける echo please exec this batch script again ... pause exit ) rem ================================================== rem パッケージリストからインストール rem ================================================== set PACKAGE_LIST="%HOME%\package.config" echo #-------------------------------------------------- echo # start install packages from %PACKAGE_LIST% echo #-------------------------------------------------- cinst -y "%PACKAGE_LIST%" pause @echo on
全パッケージのアップデート実行
ついでのついでに全パッケージアップデートも作ってみました。
こっちの方が使用頻度は高いですかね。
@echo off :CHECK_ADMIN rem ================================================== rem 管理者権限の実行判定 rem ================================================== rem 管理者権限で起動されたかチェックする whoami /PRIV | find "SeLoadDriverPrivilege" > NUL rem 管理者権限があれば、メイン処理へ if not errorlevel 1 goto MAIN_JOB rem 管理者権限が無ければ、管理者権限でbatファイルを起動し直す @powershell -NoProfile -ExecutionPolicy Unrestricted -Command "Start-Process %~f0 -Verb Runas" exit :MAIN_JOB rem ================================================== rem Chocolatey管理の全パッケージアップデート rem ================================================== cup all pause @echo on
次のPC買い替え時には構文含めて全部忘れてる予定なのでコメント多めです。
参考
バッチファイルを管理者権限で動かしたい
コマンドプロンプトからプログラムを管理者として実行する方法です。
Neovimを使う人はついでにPython系の設定も…
Neovimを使う人は前回の記事で対応した以下の作業もしちゃいましょう。
PythonのNeovimパッケージのインストール
コマンドプロンプトから下記コマンドを打ち込んで実行!
pip3 install neovim
デコードエラーが出る場合は、前回の記事など参考にしてみて下さい。
init.vimでPythonのパスを指定する
Neovimの設定ファイルinit.vim
に下記を追加して下さい。
let g:python3_host_prog = fnameescape(expand('C:\Python36\python.exe'))
Neovimを再起動するか設定ファイルを読み直した後、Neovimで下記コマンドを実行して下さい。
:echo system([g:python3_host_prog, '--version'])
ひとまずこれでPythonやGoを気軽にアップデート出来るようになりましたとさ。
何かと問題は色々出そうな気がしますが、まぁそれはまたそのときで。
おしまい。