Cygwin の setup-x86.exe や setup-x86_64.exe でもコマンドラインオプションを指定すれば、apt-cyg のようなパッケージ操作が可能でした。しかも upgrade もOK。
考えてみればそりゃそういうコマンドラインオプションが用意されてるよなぁ、という当たり前の話なんですが…。コマンドラインオプションの詳細は下記リンクを参照。
参考 Cygwin FAQ 2.3. Does Setup accept command-line arguments?
–quiet-mode オプションを指定すると、UAC のダイアログや Setup のウィンドウは表示されますが、ほぼ自動で実行してくれます。
主に使いそうな例をいくつか。
インストール先、インストール元、保存先を指定します。普通にセットアップした後ならどれも既に指定されているので実行不要。それぞれを変更したいときだけ実行。デスクトップに起動用アイコンは不要なので –no-desktop も指定。
$ ./setup-x86_64 --root D:/ --site http://ftp.jaist.ac.jp/pub/cygwin/ --local-package-dir D:/packages/cygwin/ --no-desktop --quiet-mode
パッケージをインストールしたい場合。下の例は unizip をインストールしています。複数指定も可能。
$ ./setup-x86_64 --packages unzip --no-desktop --quiet-mode
既存パッケージを一括更新したい場合。一番使いそう。
$ ./setup-x86_64 --upgrade-also --no-desktop --quiet-mode
毎回コマンドを打つのも面倒なので apt-cyg を修正して apt-cyg upgrade で上記コマンドが実行されるようにしてみました。
/bin/cygwin1.dll や bash.exe の更新が含まれる場合は自動的に mintty を閉じてくれたりしてなかなかええ感じです。
とりあえず快適快適。