If you run 'gcloud components update' while any of files is in use, 'GoogleAppEngineLauncher.exe' as in my example,
update would not be finished and gcloud would not be available anymore.
D:\>gcloud components update
The following components will be updated:
<not relevant>
Do you want to continue (Y/n)? y
|- Creating update staging area -|
<not relevant>
Creating backup and activating new installation...
ERROR: (gcloud.components.update) Access is denied: [C:\Program Files\Google\Cloud SDK\google-cloud-sdk\platform\google_
appengine\launcher\GoogleAppEngineLauncher.exe]
Ensure you have the permissions to access the file and that the file is not in use.
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "C:\Dev\Python27\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\metrics.py", line 291, in Sh
utdown
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\metrics.py", line 240, in Re
portMetrics
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\config.py", line 59, in Goog
leCloudSDKPackageRoot
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\config.py", line 40, in Libr
aryRoot
GooglePackageRootNotFoundException
Error in sys.exitfunc:
Traceback (most recent call last):
File "C:\Dev\Python27\lib\atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\metrics.py", line 291, in Sh
utdown
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\metrics.py", line 240, in Re
portMetrics
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\config.py", line 59, in Goog
leCloudSDKPackageRoot
File "C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin\..\./lib\googlecloudsdk\core\config.py", line 40, in Libr
aryRoot
googlecloudsdk.core.config.GooglePackageRootNotFoundException
The system cannot find the path specified.
D:\>gcloud components update
'gcloud' is not recognized as an internal or external command,
operable program or batch file.
Old 'google-cloud-sdk' and new 'google-cloud-sdk.staging' are present, so it's easy to fix corrupted update by deleting old folder and removing staging from new one.
Maybe there need to be some kind of rollback or "pause" until component would be freed to continue update?