ãã®è¨äºã¯ãPowerShell Advent Calendar 2019ã®ä¸æ¥ç®ã§ãã
Windowsã®ããã±ã¼ã¸ããã¼ã¸ã£ã¼ã®è£ã¯PowerShellãå¤ã使ããã¦ãã¾ãã
ãããªWindowsã«ãããããã±ã¼ã¸ããã¼ã¸ã£ã¼ã¨è¨ãã°ãPackage Management Chocolateyãæåãªã®ã§ã¯ãªãã§ãããã?
ç§ãChocolateyãããã±ã¼ã¸ããã¼ã¸ã£ã¼ã«ç¨ãã¦éçºç°å¢ã®æ§ç¯ããã¦ãã¾ãããã課é¡ãå¤ãã£ãããScoopã«åãæ¿ãã¾ããã
Chocolateyã§ä½ãåé¡ã ã£ãã®ãããªãscoopãé¸ãã ã®ãããã®ä¸å¹´scoopãã©ã®ããã«ç°å¢æ§ç¯ã«å©ç¨ãã¦ããã®ããç´¹ä»ãã¾ãã
- æ¦è¦
- Chocolatey ã®å©ç¨
- Scoop ã¸ã®åãæ¿ã
- Scoopã®ã¤ã³ã¹ãã¼ã«
- Scoop ã§ã¢ããªãå©ç¨ãã
- Scoop ã®ã¢ããªãæ¤ç´¢ãã
- Scoop ã®ã¢ããªãããããããã¤ã³ã¹ãã¼ã«ãã
- scoop ã«ãããã¨ã§æ··ä¹±ãããã¨
- Scoop ã§éå»ã®ãã¼ã¸ã§ã³ã®ã¢ããªãã¤ã³ã¹ãã¼ã«ãã
- Scoop ãç¶ç¶çã«ä½¿ã£ã¦ããããã®å·¥å¤«
- TIPS: Scoop ã®ã¢ããªå®ä½
- ã¾ã¨ã
æ¦è¦
Chocolateyããscoopã«åãæ¿ãããã¨ã§éçºç°å¢ã®èªååãã»ã¨ãã©ã®ã¢ããªã±ã¼ã·ã§ã³ãã¦ã¼ã¶ã¼æ¨©éã§ã®ã¤ã³ã¹ãã¼ã«ã«æãè¾¼ããã¨ãå¯è½ã«ãªãã¾ããã
scoopã«åãæ¿ãã¦å¾ããããã®ãããã£ã¨ç´¹ä»ãã¾ãã
- UACã®ä¸è¦ãªã¤ã³ã¹ãã¼ã«
- ç°¡åãªã¢ããã°ã¬ã¼ã
- å¸¸ã«ææ°ç°å¢ã¸ã®è¿½é
- 確å®ãªã¢ã³ã¤ã³ã¹ãã¼ã«
- ã¢ããªã±ã¼ã·ã§ã³ã®ãã¹åä¸å
- ãã¼ã«ã«éçºç°å¢æ§ç¯ã®èªåå
å°æ¥çã«msixãåºã使ãããããã«ãªã£ãããScoopããå©ç¨ãããä»çµã¿ã«ãªãã¨ããããã§ãã
Chocolatey ã®å©ç¨
Scoopã«åãæ¿ããã¾ã§Chocolateyã使ã£ã¦ãã¾ãããé·å¹´å©ç¨ãã¦æãã¦ãã課é¡ãè¦ã¦ã¿ã¾ãã
ã©ã®ããã« Chocolatey ãå©ç¨ãã¦ããã®ã
2014å¹´ã«DSCãèªååãããã¨ãã¦ãããã¨ãããChocolateyã¨ã¯5å¹´ã®ä»ãåãã§ãã2018å¹´ã¾ã§ã¯å人ãä¼ç¤¾ã®éçºç°å¢æ§ç¯ã«Chocolateyã使ã£ã¦ãã¾ããã
guitarrapc_tech (@guitarrapc_tech) August 24, 2014
Chocolateyã¯ãWindowsç°å¢ã§ã®ããã±ã¼ã¸ãªãã¸ããªã®æä¾ã¨CLIã¤ã³ã¿ãã§ã¼ã¹choco
ãéãã¦ãWindowsã«ããã¦ã³ãã³ãã©ã¤ã³ããã¢ããªã±ã¼ã·ã§ã³ãã¤ã³ã¹ãã¼ã«ããä½é¨ãæä¾ãã¾ãã
æè¿èããªããªãã¾ããããPackage Managementã®ããã¯ã¨ã³ãã¨ãããã¨ã§ããªãã¸ããªã®1ã¤ã¨ã¿ãªãã¦å©ç¨ããããããç¬èªãªãã¸ããªã«Chocolateyãã©ã¼ãããã®nugetããã±ã¼ã¸ãç½®ãã¦ãã¼ã ã®ãã©ã¤ãã¼ããªãã¸ããªã¨ããããã¨ãã§ãã¾ãã
åè·ã«ããã¦ã¯ãUnityã®ãªãªã¼ã¹ãæ¤ç¥ãèªåçã«NuGetããã±ã¼ã¸ãçæã社å NuGetãµã¼ãã¼ã«é ç½®ãPackage Managementã使ã£ã¦Chocolateyããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«å¯è½ãªç¶æ ã«ãã¦ãã¾ããããããããã¨ã§ãUnityã®ã¤ã³ã¹ãã¼ã«ãã¹ããã¼ã ã§å ±éåããUnityã¤ã³ã¹ãã¼ã«ã®æå¤§ã®æµã§ãããã¦ã³ãã¼ãã®é ããããã±ã¼ã¸ã®åããã«ããã«å¯¾å¿ãã¦ãã¾ããã
ä»ãªã Unity Hub ãããã®ã§ä¸è¦ã§ãã(å½æã¯ Unity Hubããªãã£ã)
Chocolatey ã§å°ããã¨
Chocolateyã§éçºç°å¢ãæ§ç¯ãããã®ã®å°ããã¨ãããã¾ããã¢ã³ã¤ã³ã¹ãã¼ã«ã¨UACã§ãã
ã¢ã³ã¤ã³ã¹ãã¼ã«
Chocolateyã¯ãMSIãexeå½¢å¼ã®ã¤ã³ã¹ãã¼ã«ãchocolateyinstall.ps1
ã§æ±ããã¢ã³ã¤ã³ã¹ãã¼ã«ãchocolateyuninstall.ps1
ã§æ±ãã¾ããããããã®å®ä½ã¯å°éã«ã¤ã³ã¹ãã¼ã©ããããã¦ãããå®è¡ã®å¾
ã¡åãããã¹ã§å¤±æããããã¤ã³ã¹ãã¼ã«ã§è¡ã£ã¦ããWindows Serviceãã¬ã¸ã¹ããªã¯æ¶ãå¿ãã¦ããããã¾ããã¾ããããããå¤ãã®ããã±ã¼ã¸ã§ã¢ã³ã¤ã³ã¹ãã¼ã«ã¹ã¯ãªãããæä¾ããã¦ãã¾ããã
Chocolateyã§ãæå¤§è¦æ¨¡ã®ã¤ã³ã¹ãã¼ã«ããã±ã¼ã¸ã§ãããGit.installã®ã¢ã³ã¤ã³ã¹ãã¼ã«å¦çã§ããããªæãã§ãã
https://chocolatey.org/packages/Git.install
https://gist.github.com/guitarrapc/f630b05bbf26e9a60dab883c684d38c5
Chocolateyãæ§ç¯æã ãã«ä½¿ãã¨ããå²ãåããªãããã®ã§ãããéçºç°å¢ã¯ã©ãã©ãå¤ãã£ã¦ããã¾ããå½ç¶ã¢ã³ã¤ã³ã¹ãã¼ã«ãããæ©ä¼ãå°ãªããªãã§ããããã¢ã³ã¤ã³ã¹ãã¼ã«ãä¸å®å®ã ã£ãããæªæä¾ã ã¨ã¤ã³ã¹ãã¼ã«ã¨ã¯é対称ã«ä»¥åã®Windowsã§ã®ã¢ããªã±ã¼ã·ã§ã³ç®¡çããããã¨ã«ãªãã¾ãã
使ã£ã¦ããçµé¨ããè¨ããã®ã¯ãæ®å¿µãªããChocolateyã§ã¤ã³ã¹ãã¼ã«ãããã®ã§ãã£ã¦ãWindowsã®Apps & Feature
ã§ã¢ã³ã¤ã³ã¹ãã¼ã«å¿
è¦ãªãã®ãã»ã¨ãã©ã§ãã
ç§ã¯Chocolateyã§ä»å¾ããã£ã¦ããã¨ãã夿ãã§ãã¾ããã§ãããã¢ã³ã¤ã³ã¹ãã¼ã«ã¯ã¹ããã¨çµãããããã§ãã
UAC
UACã¯Windowsã§ã³ãã³ãã©ã¤ã³ã使ã£ã¦ãã¦æããã ããã¨æããçé ã§ããChocolateyã§ãæ®å¿µãªããUACãæ±ãã¦ããããã±ã¼ã¸ã¯å¤ãåå¨ãã¾ãã èªååããããã®ã³ãã³ãã©ã¤ã³ã§chocolateyã使ã£ã¦ã¢ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ãã¼ã«ã®å®è¡ãå¸ãç«ã£ã¦æ»ã£ã¦ã¿ãã¨UACã§æ¢ã¾ã£ã¦ãããã¨ããçµé¨ããæã¡ã®æ¹ãããã®ã§ã¯ãªãã§ãããã?
ãããã
choco install
ãªã©ãããã¨ãã«ç®¡çè ã«ææ ¼ããcmdãPowerShellã使ãããã«è¨ããã¾ãã
UACã«ã¯ãµã³ãããã¯ã¹ã¨ãã¦ã®å®å ¨ãã®æä¾ã¨ããå´é¢ã¯ãããã®ã®ãã³ãã³ãã©ã¤ã³ã§ä½æ¥ãã¦ãã¦ãããªãUACã表示ãããã¦ã¹ã¯ãªãã¯ãæ±ããããã®ã¯ã¹ãã¬ã¹ã§ããç¹ã«ããã¯Linux/macOSã§ã³ãã³ãã©ã¤ã³ã«ããæä½ã«æ £ãã¦ããã¨é¡èã«æãã¾ãã*1
Chocolatey ãæ±ããåé¡ç¹
Chocolateyãæ±ãã¦ããä½é¨ä¸ã®åé¡ã¯2ã¤ã«èµ·å ãã¦ãã¾ãã
- ã¢ã³ã¤ã³ã¹ãã¼ã«ã®ä¸å®å ¨ãªæä¾
- UACãããã¢ãã
ã¢ã³ã¤ã³ã¹ãã¼ã«ã«é¢ãã¦ã¯ãChocolateyèªä½ãMSIãexeã¨ãã£ãååå¼ã®å®è¡ãã¡ã¤ã«ãéçºè ãæä¾ããã¹ã¯ãªããã§ãªãã¨ãããæ¹å¼ã§ãã以ä¸é¿ããããªãã§ããChocolateyèªèº«ãValidation ProgramãChocolatey Install/uninstall/WebFileãªã©å種ãµãã¼ã颿°ãæä¾ãã¦ãã¾ããããã¨ãããã使ã£ã¦ããWindowsã«ããã¦åé¿ããã®ã¯é£ããå´é¢ãããã®ã¯å¦ãã¾ããã
UACããMSIã使ã以ä¸ã·ã«ã¿ãã¤ã§ãããã%ProgramFiles%
ã¯ç¹æ¨©ã¦ã¼ã¶ã¼ã§ãªãã¨ã¢ã¯ã»ã¹ã§ããªãã®ã§ããããå¯è½ã§ããã°ã¢ããªã±ã¼ã·ã§ã³ã¤ã³ã¹ãã¼ã«ãã¨ãã§UACææ ¼ã¯ããããªãã§ãããç°å¢ã«ãã£ã¦ã¯åä»ã«æãã¾ãã
Chocolateyã¤ããã¾ããã
Scoop ã¸ã®åãæ¿ã
Scoopã¯Chocolateyã¨ã¯ã³ã³ã»ãããå¥ã«ããã³ãã³ãã©ã¤ã³ã¤ã³ã¹ãã¼ã©ã¼ã§ãã
Looking for familiar Unix tools? Tired of Powershellâs Verb-Noun verbosity? Scoop helps you get the programs you need, with a minimal amount of point-and-clicking.
Homebrewçã«ãå¸¸ã«ææ°ã®ã¢ããªãUNIX ToolããUACã®ç¸ããªããããã£ã¨å©ç¨ã§ããã¨ãããããããããä½¿ãæ¹ãæ³å®ããã¦ãã¾ããã¾ãã«ç§ã«ã¯ã´ã£ããã§ããã
Scoop installs programs to your home directory by default. So you donât need admin permissions to install programs, and you wonât see UAC popups every time you need to add or remove a program.
Scoopã®ã¤ã³ã¹ãã¼ã«
PowerShellããã¯ã³ã©ã¤ãã¼ã§ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') # or shorter iwr -useb get.scoop.sh | iex
ä½¿ãæ¹ã¯scoop help
ã§ãããã¾ãã
$ scoop help Usage: scoop <command> [<args>] Some useful commands are: alias Manage scoop aliases bucket Manage Scoop buckets cache Show or clear the download cache checkup Check for potential problems cleanup Cleanup apps by removing old versions config Get or set configuration values create Create a custom app manifest depends List dependencies for an app export Exports (an importable) list of installed apps help Show help for a command hold Hold an app to disable updates home Opens the app homepage info Display information about an app install Install apps list List installed apps prefix Returns the path to the specified app reset Reset an app to resolve conflicts search Search available apps status Show status and check for new app versions unhold Unhold an app to enable updates uninstall Uninstall an app update Update apps, or Scoop itself virustotal Look for app's hash on virustotal.com which Locate a shim/executable (similar to 'which' on Linux) Type 'scoop help <command>' to get help for a specific command.
Scoop ã§ã¢ããªãå©ç¨ãã
sudoãGitãªã©ãWindowsã«ããã©ã«ãã§å ¥ã£ã¦ã»ãããã©å ¥ã£ã¦ããªãCLIãã¼ã«ã¯ãã¾ãã«Scoopãåãã¦ãã¾ãã
scoop install git
ã¾ã¨ãã¦ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
scoop install 7zip sudo git jq time unzip openssl
ã¤ã³ã¹ãã¼ã«ããã¢ããªã¯ãjq
ãªã©ã¢ããªåã§ãã®ã¾ã¾å©ç¨ã§ãã¾ãã
$ jq --version jq-1.6
ã¤ã³ã¹ãã¼ã«ããã¦ããã¢ããªã±ã¼ã·ã§ã³ãä¸è¦§è¡¨ç¤ºã§ãã¾ãã
scoop list
ã¢ã³ã¤ã³ã¹ãã¼ã«ãç°¡åã§ãã ããã»ã¹ãããã¯ããã¦ããªãéãã¯ç¢ºå®ã«ã¢ã³ã¤ã³ã¹ãã¼ã«ã§ããã®ã§å®å¿ã§ãã¾ãã*2
scoop uninstall git
Scoop ã®ã¢ããªãæ¤ç´¢ãã
å©ç¨å¯è½ãªã¢ããªã¯ãscoop search
ã§æ¢ããã¨ãã§ãã¾ãã
GitHubã«ã¾ã¨ã¾ã£ã¦ããã®ã§ããããè¦ã¦æ¢ãã¦ãããã§ãããã
https://github.com/rasa/scoop-directory/blob/master/by-apps.md
Scoop ã®ã¢ããªãããããããã¤ã³ã¹ãã¼ã«ãã
Scoopã¯ãã¢ããªã®ãã¦ã³ãã¼ãå ã«GitHubãå©ç¨ãã¦ãããããBucketã¨å¼ãã§ãã¾ãã ã¤ã³ã¹ãã¼ã«ç´å¾ã¯Main Bucketã®ã¿ãã¤ã³ã¹ãã¼ã«ããã¦ãã¾ãã
scoop bucket list
Bucketã¯scoop bucket add
ã§è¿½å ã§ãã¾ãã
Bucketã追å ãããã¨ã§å¤ãã®ã¢ããªã±ã¼ã·ã§ã³ãscoopã§ã¤ã³ã¹ãã¼ã«ã§ããããã«ãªãã¾ãã
ä¾ãã°ãå
¬å¼ã§æä¾ããã¦ããExtra
Bucketã¯ã Main
Bucketã«ã¯ãªããã©ããå©ç¨ãããã¢ããªã±ã¼ã·ã§ã³ãå«ã¾ãã¦ãã¾ãã
scoop bucket add extras
extras Bucketã®è¿½å ã§gitkraken
ãªã©ãscoopã§ã¤ã³ã¹ãã¼ã«å¯è½ã«ãªãã¾ãã
scoop install gitkraken
ã¤ã³ã¹ãã¼ã«ããã¨ãã«ãBucketãæ°ã«ããªãã¦ããã®ã§ããªã楽ã§ãã
scoop ã«ãããã¨ã§æ··ä¹±ãããã¨
scoopã®ç¹æ§ãææ¡ããã«ããã¨ãæ··ä¹±ãããã¨ãããã¾ãã
- è¤æ°ã®ãã¹ã«å®è¡ãã¡ã¤ã«ãåå¨ãããã¨ã«ããæå³ããªãåä½
- ã°ãã¼ãã«ãã¹ã«åå¨ãæå¾ ãããã½ããã¦ã§ã¢ã®ç¶ç¶çãªæ´æ°ã®å°é£ã
ä¾ãã°ã.NET Core SDKã¯Visual Studioã§ãå ¥ã£ãããããããããã¼ã«ãå©ç¨ãã¦ããããscoopã§ã¤ã³ã¹ãã¼ã«ãããã¨ã¯åãã¾ããã
ãä½ãscoopã§å ¥ãã¦ãä½ãå ¥ããªããã¨ãã鏿ãèªåã§è¡ãå¿ è¦ãããã®ã§ãããããæå³ã§ã¯èª°ã«ã§ããªã¹ã¹ã¡ã§ããããã§ã¯ããã¾ããã èªåã§é¸ãã çµæãèªåã§åãå ¥ãã対å¿ãã¦ããã人åãã§ãã
Scoop ã§éå»ã®ãã¼ã¸ã§ã³ã®ã¢ããªãã¤ã³ã¹ãã¼ã«ãã
Scoop㯠.envã®ãããªå¶å¾¡ã¯ãªãã®ã§ç´ ç´ã«ä½¿ããªããå¸¸ã«ææ°ã使ãã®ã楽ã§ãã(scoop install / scoop updateãã¦ããã ã)
ããéå»ãã¼ã¸ã§ã³ãå©ç¨ããå ´åãscoop reset
ã§å¯è½ã§ãã
scoop reset <app>@<version>
ããéå»ãã¼ã¸ã§ã³ããã¾ã£ã¦ããversions Bucketã«ã¢ããªããããªãããã使ãã®ãæã§ãããã
scoop bucket add versions
ç§ã¯éå»ãã¼ã¸ã§ã³ãScoopã§å©ç¨ãããã¨ã¯ãã¾ãããããããããªãScoopãããã
Scoop ãç¶ç¶çã«ä½¿ã£ã¦ããããã®å·¥å¤«
scoopã§ããã±ã¼ã¸ãã¤ã³ã¹ãã¼ã«ã§ããã¨ãã£ã¦ããã¢ããªãã¤ã³ã¹ãã¼ã«ããã³ãã³ãããã£ã¨æ¸ãé£ãããã®ã³ãã³ããã¹ã¯ãªããã«ãããããã®ã¯ã¤ãããã®ãããã¾ãã
scoop install xxx scoop install yyy scoop install xxx
ããããã®ã¯ãã¢ããªã®ã¤ã³ã¹ãã¼ã«ã§scoopãããæãã«ãã¦ãããã°ãªãã§ãããã®ã§ãã ã¨ãããã¨ã§ããããªYAMLãæ¸ããã¨ã§Ansibles likeã«Scoopã®ã¢ããªãã¤ã³ã¹ãã¼ã«/ã¢ã³ã¤ã³ã¹ãã¼ã«ã§ããä»çµã¿ãã»ããã§ãã
- name: "Install linux tools" scoop_install: state: present bucket: main name: - cmake - gcc - gow - jq - sudo - time - unzip - openssl - apache - name: "Install windows tools" scoop_install: state: present bucket: main name: - 7zip - aws - bat - chromedriver - git - git-lfs - ngrok - pwsh - terraform - gibo - helm - mysql-workbench
YAMLã§ã®å®ç¾©ãå®ç¾ããããã®PowrShellã¢ã¸ã¥ã¼ã«ScoopPlaybook
ãä½ã£ãã®ã§æ¬¡åç´¹ä»ãã¾ãã
TIPS: Scoop ã®ã¢ããªå®ä½
ä½ãæèããå¿ è¦ããªãã®ã§ãããèå³ã®ãã人åãã§ãã
scoopã§ã¤ã³ã¹ãã¼ã«ãããã¢ããªã¯ãåºæ¬çã«~\scoop\shims\ã¢ããªå.EXE
ã®ãã¹ã«åå¨ãã¾ããshimsã§ãããéãããããã¯~/scoop/apps/ã¢ããªå/current
ãåç
§ãã¦ãããã¢ããªã±ã¼ã·ã§ã³ã®ã¤ã³ã¹ãã¼ã«ã¨å©ç¨ãåé¢ããã¦ãã¾ãã
appsã®ã¢ããªãã£ã¬ã¯ããªãè¦ãã¨ããã¼ã¸ã§ã³ãã©ã«ãã¨currentãåå¨ããcurrentã¯å¸¸ã«ææ°ãã¼ã¸ã§ã³ã®ã·ã³ããªãã¯ãªã³ã¯ã«ãªã£ã¦ãã¾ãã
ã¾ã¨ã
Chocolateyã¯ã¤ã³ã¹ãã¼ã«ã®1åã«éãã°ä¾¿å©ã§ããããä»å¾ãã¢ãã«çã«ã¢ã³ã¤ã³ã¹ãã¼ã«ãUACãæ¹åããã«ã¯msixãæ¥ãªãéãé£ããã§ãããã Scoopã使ãã¨ãUNIX Toolããã以å¤ã®ãã¼ã«ã®å¤ããããæãã§ã¤ã³ã¹ãã¼ã«ãã¢ã³ã¤ã³ã¹ãã¼ã«ã§ãã¾ãã
ç§ãScoopã®ç¬èªBucketã§ãã©ã³ãã¨ãããã¤ãããã±ã¼ã¸ãå ¬éãã¦ããã®ã§ãç¬èªã®ã¢ããªã±ã¼ã·ã§ã³ãScoopã§é å¸ãããã¨ããããè¨äºã«ãã¾ãã