Chocolateyでパッケージ管理
はじめまして。
以前はWEBサーバーのインフラを担当していたのですが、半年前から社内システムを担当しています。
その中で少し便利だった機能を紹介出来ればと思います。
背景
リブセンスでは従業員が使用するPC(Windows7)に以下のソフトをインストールして渡しています。
・Thunderbird
・FireFox
これらのソフトウェアはプロファイルに依存するので、イメージに追加することが出来ません。
そこで初期状態のPCをPXEブートで構築した後に手動でインストールを行っています。
手順としては毎回最新のインストーラーをサイトからダウンロードして実行する手順なのですが、これが何台もあると手間で、どうにか楽出来ないかなと考えた結果、パッケージ管理ソフトを使用してスクリプト実行だけで最新のソフトをインストール出来ないかなと考えたのがきっかけです。
パッケージ管理ソフト
Linuxではyumを使用していました。Windowsには以下があるようです。
・Web PI
・Oneget
・Nuget
・Chocolatey
上から調べてみた結果
Web PIはマイクロソフトのWeb環境を構築するためのソフトウェアを簡単にインストール/バージョンアップするための仕組みのようなので、今回の要件とは合わないので却下。
Onegetはパッケージ管理用のPowerHshellで動作するコマンドツールで Windows 10からはPowerManagementという名前でデフォルトでインストールされているようです。これは使えるかと思ったのですが、PackageSourceにchocolateyなどのパッケージ管理ソフトをインストールしないといけないよう。。2つのソフトウェアをインストールするのでは複雑になるので却下。
Nugetは.NET プロジェクトにライブラリーやツールを追加するためのパッケージ管理ツールのようで、こちらも今回の要件とは合わないので却下。
残るはchocolateyだけ・・・
ChocolateyはWindows上で動作するソフトウェアをコマンドラインからインストール/アンインストール/アップデート/検索することができるパッケージマネージャーのようです。
以下のサイトで現在登録されているパッケージを確認出来るようなので確認したところ、TunderbirdもFirefoxもありました!
これなら要件を満たせそうです!
Chocolateyのインストール
インストールすごい簡単です。以下のコマンドを管理者権限で実行すればOKです。
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
ソフトウェアのインストール
ソフトウェアのインストールもすごい簡単です。以下のコマンドを実行すればインストールされます。
choco install ”ソフトウェア名”
上記のサイト画像にあるコマンドをそのまま実行でも大丈夫ですね。
複数ある場合はスペース区切りで同時にインストール可能です。
choco install thunderbird firefox
chocolateyのインストールもソフトウェアのインストールもコマンドなので、バッチにして置いておけば、実行だけで全て完了です。
@echo off
REM chocolateyインストール
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
REM パッケージインストール
cinst -y Firefox thunderbird
end
chocolateyのアンインストール
上記でソフトウェアインストールが自動化出来て、今後のPCを構築が楽になるなと思っていたのも束の間
先輩より「最後に余計なものは削除しておいてください」とのお言葉が。
確かにユーザーはchocolateyを使わないので削除しておいたほうがいいと思い、まずはいつもの[コントロールパネル]→[プログラムと機能]から削除を試みましたが、chocolateyがどこにも無い・・・
調べてみたところ、インストールとは言ってもユーザープロファイル下に実行ファイルを保存し、ユーザー環境変数とシステム環境変数を登録するパターンなのでプログラムと機能の一覧に表示されないようです。よってアンインストールは実行ファイルのあるフォルダの削除と環境変数の削除でOKのようです。
具体的には以下のコマンドで実行ファイルのあるフォルダを削除し
rmdir /s /q C:\ProgramData\chocolatey
以下のコマンドで環境変数を削除します。
reg delete HKCU\Environment /v ChocolateyLastPathUpdate
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v ChocolateyInstall
スクリプト作成
必要なコマンドがそろいましたので、一連の処理としてスクリプトを実行します。
スクリプトの内容は以下の通りです。
@echo off
REM chocolateyインストール
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
REM パッケージインストール
cinst -y Firefox thunderbird
REM chocolateyアンインストール
rmdir /s /q C:\ProgramData\chocolatey
REM 環境変数を削除
reg delete HKCU\Environment /v ChocolateyLastPathUpdate /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v ChocolateyInstall /f
end
特に手動で対応することなく、インストールすることが出来る様になりました!
GUIもあります
非エンジニアの方だと「敷居が高い」、「面倒」と思われるかもしれませんので、GUIバージョンも紹介したいと思います。
以下のコマンドを管理者権限で実行します。
cinst chocolateygui
インストールが完了したら、PCを再起動してください。
再起動が完了すると Chocolatey GUI が使えるようになります。
スタートメニューにあるので起動します。
やはりチョコレートカラーのようですw
このGUIからは以下が対応可能です。
・ソフトウェアの検索
・ソフトウェアのインストール/アンインストール
・ソフトウェアの一括バージョンアップ
一括バージョンアップはとても楽でいい機能です。
[show Only Pacages wuth Updates]にチェックを入れ、[update all]を実行するだけです。
まだWindows PCでパッケージ管理をされていない方は、Chocolateyを使用してみてはいかがでしょうか?操作方法も複雑ではないので便利ですよ!
Author And Source
この問題について(Chocolateyでパッケージ管理), 我々は、より多くの情報をここで見つけました https://qiita.com/sho-ichi/items/5324653db549c543d782著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .