WebKit の Windows 開発ツールを Scoop でインストールしようしたが、 WebKit 開発用途にはハマりどころが多い。 結局 Chocolatey に落ち着いた。 またいつか Scoop を試すときのために、記録を残しておく。

Chocolatey と比較すると

  • Scoop は管理者権限を必要としない
  • Chocolatey はインストールされる場所がまちまちだったりするが、Scoop は各種アプリのポータブル版を展開するだけのためシンプル

Scoop のインストール

PowerShell にて

Set-ExecutionPolicy RemoteSigned -scope CurrentUser
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

各種プログラムをインストール

scoop install git
scoop bucket add versions
scoop install cmake perl python27 ruby
# run-webkit-tests, webkit-patch, svn-apply が必要とするもの
scoop install diffutils patch sliksvn
# clang-cl でコンパイルする場合に必要なもの
scoop install llvm ninja
pip install pywin32

perl をインストールとすると、gcc とか pkg-config などに PATH が通ってしまい CMake でエラーになる。 手動で PATH を削除したほうがトラブルが少ない。 コマンドで System Properties を開くには sysdm.cpl

無料版 Chocolatey も同様だが、公式サイトからダウンロードするため遅い、場合によってはダウンロードが失敗する。 その点、 Cygwin や Ubuntu on WSL は日本にもミラーサーバがあって速い。

gperf

あいにく gperf はパッケージがない。 gperf だけ Chocolatey で入れた。 素直に Chocolatey 使ったほうがよかった気がしてきた。

msys2 の gpref 入れて shim を作成する方法を試しが、生成される .gperf ファイルの改行コードの違いでビルドエラーとなった。

scoop install msys2
msys2
# msys2 terminal の中で
pacman -S gperf
exit
# PowerShell に戻って
powershell -command { . "$(scoop prefix scoop)\lib\core.ps1" ; shim "$(scoop prefix msys2)\usr\bin\gperf.exe" $false gperf }

openssl

wpt が openssl を必要とする。 perlopenssl.exe が含まれるが PATH を削除したので、shim を作成する。

powershell -command { . "$(scoop prefix scoop)\lib\core.ps1" ; shim "$(scoop prefix perl)\c\bin\openssl.exe" $false openssl }

scoop install openssl だと CMake がライブラリを誤検出するトラブルがあった気がする。

更新

scoop update * ですべての app を更新する。 更新すると追加でインストールした pywin32 が消えてしまうので、再度インストールする必要がある。 scoop cleanup * で古いバージョンを削除する。