-
Notifications
You must be signed in to change notification settings - Fork 685
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow upgrades without using setup*.exe. Addresses #22. #88
base: master
Are you sure you want to change the base?
Conversation
…irectory throughout the script, except when queried or set with apt-cache.
…th interactive output.
…r balls. Skip downloading, checksumming whenever possible. Enable an experimental 4-stage upgrade that uses a secondary root to separate the long installation process from swapping with subdirectories in the original root. This may still stall in installing to the secondary root as this still uses an in-place upgrade.
… DLLs on which sed depends may be broken.
…t of packages and packages themselves.
…in a message but not in an error code.
…l level. Add a temporary trace message.
… past checksumming.
… past checksumming.
…h the postinstall scripts.
I saw your comment. I'm not sure I understand how this works. Do you mean it copies the entire Cygwin root recursively? |
Yes, the added commands copy the existing top-level directories except the mount points in usr to a secondary root. A subsequent invocation will start ash in the secondary root and copy the secondary top level directories to the original root. |
Unfortunately, adding consistency to apt-cyg did not rectify Cygwin's base address issue . Meaning that after some time "apt-cyg install PACKAGE_NAME" will either fail to find the package version frozen in the package list on disk or, if we update the package list with "apt-cyg update", may start updating the package's requisites such as "bash" and "cygwin", and this will result in the prominent Cygwin fork error. Before I forget, the following CMD code runs Cygwin's setup-x86_64.exe to install a basic Cygwin image. This assumes that all Cygwin processes terminated before running the code.
|
not everyone has powershell
ps pull rejected for me change bash by ash not alowed |
I adjusted the script to rely on the smaller interpreter (dash) and to upgrade all packages without using setup*.exe (should address #22 ). Using setup*.exe would bring up the GUI, preventing from remote invocation. Instead, the script copies the main directories to a secondary root, downloads, unpacks package updates into that secondary root. A subsequent invocation from the secondary root will be able to update the primary root. In the absence of chroot, we still need to invoke post-install scripts in-place in a final invocation in the primary root.