Windows版Quartoをwingetでアップデートする方法
はじめに
Quartoの更新には、毎回公式サイトからインストーラーをダウンロードする必要があると思っていました。 Windowsでは、wingetを使うとPowerShellから更新できます。 Quarto 1.11への更新をきっかけに確認した方法を、備忘録としてまとめます。
wingetとは
wingetは、Windows Package Managerのコマンドラインツールです。 Windowsでアプリケーションの検索・インストール・更新などを管理できます。
インストール済みQuartoの確認
Windows 11のPowerShellで、次のコマンドを実行しました。
winget list --id Posit.Quarto実際の結果は以下のとおりです。
Name Id Version Available Source
--------------------------------------------
Quarto Posit.Quarto 1.10.18 1.11.9 winget
Version:インストール済みのバージョン。Available:wingetで更新候補として表示されたバージョン。Source:パッケージ情報の取得元。ここではwingetです。
公式MSIインストーラーで導入したQuarto 1.10.18が認識され、1.11.9が更新候補として表示されました。 この番号は確認時点のもので、実行時期によって変わります。
Microsoftの説明でも、listにはwinget以外の方法で導入したアプリが表示されるとされています。 ただし、すべての環境でQuartoが同様に認識されるとは限りません。
Quartoのアップデート
更新候補が表示されたら、更新には次のコマンドを使います。
winget upgrade --id Posit.Quarto --exactupgradeはインストール済みアプリの更新、--idは対象IDの指定、--exactは完全一致の指定です。 バージョンを指定していないため、wingetで利用可能な最新バージョンが対象になります。 実行時には利用規約への同意や、インストーラーによる管理者権限の確認が求められる場合があります。表示内容を確認して進めます。 オプションの詳細はMicrosoftの公式資料を参照してください。
実行すると1.11.9のMSIがダウンロードされ、次のように表示されました(ログ末尾を抜粋)。
Successfully verified installer hash
Starting package install...
Successfully installed
更新後の確認
更新が完了したら、PowerShellで次のコマンドを実行します。
quarto --version
quarto checkquarto --versionは実際に呼び出されるQuartoのバージョンを表示します。 quarto checkはQuartoのインストール状態や、R・Pythonなどの実行環境との連携を診断します。
ただし、今回は更新直後もquarto --versionが1.10.18を返しました。 quarto checkもQuarto 1.10.18で始まり、旧版で診断していました。
調べると、ユーザー用のAppData\Local\Programs\Quartoに1.10.18、C:\Program Files\Quartoに1.11.9があり、コマンドは旧版を呼んでいました。 今回の結果は、新版のインストール成功と、通常のquartoコマンドの切り替えを分けて確認する必要がある例です。
古いバージョンが表示される場合は、PowerShellを開き直して再確認します。 変わらなければ、次のコマンドで呼び出し先を調べます。
Get-Command quarto -All
where.exe quarto複数の場所にある場合は、PATHの順序やインストール先を確認します。 今回の新版をフルパスで実行すると、1.11.9が返りました。
& 'C:\Program Files\Quarto\bin\quarto.exe' --version補足
quarto checkの最後にChecking Julia installation...と表示され、「OK」が付かない場合があります。 今回、1.11.9のJulia項目だけの診断では、この表示のまま正常終了しました。 表示だけでエラーと判断せず、PowerShellのプロンプトが戻ったか、直後の$LASTEXITCODEが0かを確認します。
winget installはアプリを導入するコマンド、winget upgradeは既存アプリを更新するコマンドです。 今回は導入済みなのでupgradeを使います。
Quarto本体と、プロジェクトの拡張機能やTinyTeXは別に管理します。 本体の更新だけで、それらもすべて最新版になるわけではありません。 必要に応じて拡張機能やTinyTeXの更新手順を確認してください。
Quarto側の案内によると、wingetのQuartoパッケージ情報はコミュニティが管理しています。 公式リリースからwingetへの反映が遅れる可能性もあるため、公式サイトの最新版と更新候補が一致するとは限りません。