「macOS でも Windows でも使おう!パッケージマネージャー」
ゆるWeb勉強会@札幌 #4 https://mild-web-sap.connpass.com/event/123137/
使おう!パッケージマネージャー千歳科学技術大学 情報システム工学科 専任講師山川 広人 (@gishi_yama)1macOSでもWindowsでも
View Slide
千歳科学技術大学 情報システム工学科 専任講師R&D: Computer in Education, Collaboration and Learning Environment, Experimental Development of ICT (ex:City-Bus Tacking System) Community:2Hiroto Yamakawa, @gishi_yama
前回はヤバめのネタだったので今回は真面目なネタで3部⻑G 課⻑
パッケージマネージャー (パッケージ管理ツール)使ってますか?4
• apt-get• yum• ports• mac ports• HomeBrew• Nix• pkgsrc• Chocolatey• PackageManagement (OneGet)• Scoop• App Store• Google Play• その他どれか使っていますか?5
LinuxはもちろんmacOS, Windowsでも コマンド型のパッケージマネージャーを使える!6
主にOSの中で、異なるソフトウェア群やプログラム群の インストール・設定・更新・削除を統一的な手法で行えるツール ターミナルやコマンドプロンプトで動作するコマンド型が環境構築に便利パッケージマネージャとは何か?7・導入操作 ・導入状況の管理導入スクリプト データベースインストーラーや ソースコード適宜取得パッケージマネージャ(構成の一例)導入するアプリと導入スクリプト (メタデータ)の組がパッケージ パッケージリポジトリ
インストーラー vs コマンド型パッケージマネージャー8brew cask install intellij1. インストーラーのダウンロード2. インストーラーの展開(zip, dmg...)3. インストーラーの実行(exe, pkg...)複数のソフトウェアをインストールするには、 1〜4の作業をソフトウェアごとに実行する 必要があるパッケージマネージャーをインストールした上で (例えば macOS の homebrew)複数のソフトウェアをインストールするには、 パッケージ名やコマンドを増やすだけ。brew cask install intellij visual-studio-codeコマンド等、依存関係の強いものにも対応brew install postgresql⇒ postgresql コマンドに必要なものが あわせてインストール(もしくは提示)される
Demo (身の回りでは)意外とWindowsで パッケージマネージャーを使ってない人が多かったのでWin10 + Chocolatey で。9
使うパッケージマネージャーは Windows 10 + Chocolatey1. コマンドプロンプト(管理者実行)でChocolateyのインストール(公式サイトからコピペ): @"%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"2. 例えば、 winrar をいれる: choco install winrar3. 例えば、 Java 11 (adoptopenjdk11) をいれる: choco install adoptopenjdk11デモ手順10↑最初に1回やればOK
• パッケージの検索(例:search xxxx) 扱えるパッケージを探す。 利用するパッケージマネージャーの公式サイトで検索できる例もある (https://formulae.brew.sh/, https://chocolatey.org/packages)• パッケージのインストール(例:install xxxx)• パッケージの更新(例:upgrade xxxx)• パッケージのアンインストール(例:uninstall xxxx)• 導入済みパッケージの確認(例:list)パッケージマネージャに共通する代表的な操作11※時間があればHomeBrewでデモします※もちろんパッケージマネージャーによって、 実際のコマンドが異なる場合はあります
開発環境の構築に楽: コマンドベースで導入するパッケージを 制御できるので、バッチファイルや シェルプログラム化しておくと、 必要なアプリを一括でインストールできる (例 xxxx.sh の実行だけで環境構築完了)バージョンアップもコマンドだけで完了。リカバリ時にとても楽: シェルプログラムを動作させて放置し、 たまにパスワード求められてないか 確認するぐらいパッケージマネージャーの使いどころ12
発展編13
公式にインストールしたいアプリのパッケージがなくても、自作できる 例:macOS + HomeBrewの場合、 自分のGithubリポジトリにパッケージ用のスクリプトを配置するパッケージマネージャーの発展的な使い方14
パッケージマネージャー側で対応していれば、 フォントだろうがドライバだろうがコマンドだけでインストールできるパッケージマネージャーの発展的な使い方15
オープンソースのコントリビューションの練習にも良い バージョンアップの対応だけでも貢献できるパッケージマネージャーの発展的な使い方16
Chocolatey Windowsでの草分け的存在。要管理権限。Scoop Win10のマルチユーザーを見据え管理権限不要。これから人気でそう?PackageManagement 公式(...のはずなんですが)パッケージマネジャーを選ぶ (Windows)17引用:Google Trend, pre xにwindows をつけ、ソフトウェアカテゴリで2019/03/30に検索
HomeBrew アプリもフォントもインストールできて(いまのところ)一強Fink, MacPorts 老舗でパッケージ数も多いが、手軽じゃない部分もあるパッケージマネジャーを選ぶ (macOS)18引用:Google Trend, pソフトウェアカテゴリで2019/03/30に検索
構成管理ツール(Ansibleなど)OSインストール時の設定等もコマンドで実行可能にするコンテナ(Dockerなど)データベースなど、本来ネットワーク経由で利用・動作するアプリ等は コンテナで準備するとより便利にバージョンや設定状態の切り替えが可能になるさらに発展的な環境構築へ19
まとめ コマンド型のパッケージマネージャは Windows でも macOS でもイイぞ!20