cygwin does not run quietly if --quiet-mode given on commandline
Thomas Schweikle
tschweikle@bfs.de
Thu Mar 30 19:00:57 GMT 2023
Am Do., 30.März.2023 um 18:24:20 schrieb Brian Inglis via Cygwin:
> On 2023-03-30 08:23, Thomas Schweikle via Cygwin wrote:
>> starting cygwin setup-x86_64.exe with parameters:
>> setup-x86_64.exe ^
>> --verbose ^
>> --delete-orphans ^
>> --local-package-dir "C:\WINDOWS\ccmcache\4r\installdata" ^
>> --no-desktop ^
>> --proxy "<proxy-host:proxy-port>" ^
>> --root "C:\cygwin" ^
>> --upgrade-also ^
>> --quiet-mode ^
>> --wait
>> It does not matter if "--quiet-mode" is given or not: in all cases
>> cygwin setup opens a window showing setup progress and the real bad
>> thing: allows the user on whom desktop the window is shown to stop the
>> upgrade!
>> I need a really unattended upgrade with some log written what setup
>> had done.
>> And is it a bug? As far as I could find "--quiet-mode" means no
>> window, no messages at all - am I wrong and all those interpreting it
>> the same way?
>
> Might want to try dropping:
>
> > --verbose ^
> > --delete-orphans ^
> > --wait
If i drop "--verbose" it only does less output to console.
"--delete-orphans" is supposed to delete packages not found on servers
any more. It is sometimes needed to have setup update cygwin without
hassles. But I am aware of it removing more than necessary sometimes.
"--wait" is necessary. If it is not given, setup will immediate return,
triggering following routines -- bad if some rely on cygwin upgraded and
functional.
What I found after trying: the only way is to make this setup window
hidden. It is opened in all cases. It is opened even before given
options are evaluated. Thus "--quiet" is nearly useless: the window is
open before setup evaluates not to open a window.
I was able to get what i wanted mostly with:
$SetupOpts = @{
FilePath = $isf
ArgumentList = @(
"--verbose",
"--delete-orphans",
"--upgrade-also",
"--quiet-mode",
"--wait",
"--no-desktop",
"--local-package-dir", "`"C:\WINDOWS\ccmcache\4r\installdata`"",
"--proxy", "`"<proxy-host:proxy-port>`"",
"--root", "`"C:\cygwin`""
)
WindowStyle = "Hidden"
PassThru = $True
Wait = $True
RedirectStandardOutput = "$isl"
RedirectStandardError = "$ise"
}
$proc = Start-Process @SetupOpts
It behaves slightly different if "--wait" is only flagged for setup and
not the calling process "Wait = $True". If "--wait" is given, but not
"Wait = $True" it returns before final cleanup is done (PowerShell calls
a hidden cmd.exe, which in tune calls setup-x86_64.exe). In case both
waits are given it returns after everything is done.
If only "Wait = $True" was given it returns nearly immediately -- setup
has not finished then.
or, from cmd.exe
setup-x86_64.exe ^
--verbose ^
--delete-orphans ^
--local-package-dir "C:\WINDOWS\ccmcache\4r\installdata" ^
--no-desktop ^
--proxy "<proxy-host:proxy-port>" ^
--package-manager ^
--root "C:\cygwin" ^
--upgrade-also ^
--wait
> and add -O|--only-site -s|--site /url/ -s|--site ... closest/fastest
Found this only a good idea if mirrors where reliable. But they are not.
If one goes down you'll need a backup. Or you've got your own local
mirror. Not too difficult to set up, but takes a lot of storage. Maybe
in near future.
It is way to often the selected mirror is out of order. Giving --site or
--only-site is then a point upgrades/installs fail.
> mirrors as long as it is/they are active in
> https://cygwin.com/mirrors.lst - probably best if they are different
> protocols at the same mirror (handles cert expiry) and/or reliable backup.
--
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x27AE2304B4974851.asc
Type: application/pgp-keys
Size: 2480 bytes
Desc: OpenPGP public key
URL: <https://cygwin.com/pipermail/cygwin/attachments/20230330/1898b521/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 321 bytes
Desc: OpenPGP digital signature
URL: <https://cygwin.com/pipermail/cygwin/attachments/20230330/1898b521/attachment.sig>
More information about the Cygwin
mailing list