This is related to https://sourceforge.net/p/msys2/tickets/99/ - however this is requesting a doc change to avoid user confusion.
STR:
1) Visit http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/
2) Follow the steps verbatim
Expected:
Any quirkiness of the current MSYS2 installer is documented, and if there are expected errors, make it clear they always occur, rather than just hinting that they are a possibility.
Actual:
Errors every time, presumably due to some of the packages having been updated, and so the wiki page is out of date (regarding the list of packages that have to be updated separately in the first step). The wiki page doesn't make it obvious this will happen, so I wasted 30 minutes of trying several permutations in case it was my fault.
My output:
Ed@ed-laptop ~ $ pacman -Sy :: Synchronizing package databases... mingw32 188.9 KiB 940K/s 00:00 [################################################] 100% mingw32.sig 96.0 B 0.00B/s 00:00 [################################################] 100% mingw64 189.4 KiB 779K/s 00:00 [################################################] 100% mingw64.sig 96.0 B 0.00B/s 00:00 [################################################] 100% msys 109.4 KiB 760K/s 00:00 [################################################] 100% msys.sig 96.0 B 0.00B/s 00:00 [################################################] 100% Ed@ed-laptop ~ $ pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl warning: libiconv-1.14-1 is up to date -- skipping resolving dependencies... looking for conflicting packages... Packages (10) bash-4.3.030-3 filesystem-2014.10-3 libarchive-3.1.2-4 libcurl-7.38.0-4 libgpgme-1.5.1-2 libintl-0.18.3.2-3 libreadline-6.3.008-2 msys2-runtime-2.0.16309.306f9a4-1 ncurses-5.9.20141018-2 pacman-4.1.2.5831.8f603c2-3 Total Download Size: 9.25 MiB Total Installed Size: 57.13 MiB Net Upgrade Size: 28.00 MiB :: Proceed with installation? [Y/n] y :: Retrieving packages ... filesystem-2014.10-3-x86_64 18.8 KiB 536K/s 00:00 [################################################] 100% msys2-runtime-2.0.16309.306f9a4-1-x86_64 2.2 MiB 3.54M/s 00:01 [################################################] 100% bash-4.3.030-3-x86_64 1863.5 KiB 3.03M/s 00:01 [################################################] 100% ncurses-5.9.20141018-2-x86_64 1099.7 KiB 2.49M/s 00:00 [################################################] 100% libreadline-6.3.008-2-x86_64 243.3 KiB 922K/s 00:00 [################################################] 100% libintl-0.18.3.2-3-x86_64 17.1 KiB 488K/s 00:00 [################################################] 100% libarchive-3.1.2-4-x86_64 233.4 KiB 1028K/s 00:00 [################################################] 100% libcurl-7.38.0-4-x86_64 163.9 KiB 824K/s 00:00 [################################################] 100% libgpgme-1.5.1-2-x86_64 171.7 KiB 863K/s 00:00 [################################################] 100% pacman-4.1.2.5831.8f603c2-3-x86_64 3.3 MiB 4.26M/s 00:01 [################################################] 100% (10/10) checking keys in keyring [################################################] 100% (10/10) checking package integrity [################################################] 100% (10/10) loading package files [################################################] 100% (10/10) checking for file conflicts [################################################] 100% (10/10) checking available disk space [################################################] 100% ( 1/10) upgrading filesystem [################################################] 100% ( 2/10) upgrading msys2-runtime [################################################] 100% ( 3/10) upgrading bash [################################################] 100% ( 4/10) upgrading ncurses [################################################] 100% ( 5/10) upgrading libreadline [################################################] 100% 3 [main] pacman (2880) C:\msys64\usr\bin\pacman.exe: *** fatal error - cygheap base mismatch detected - 0x1802E4400/0x1802F5400. This problem is probably due to using incompatible versions of the msys DLL. Search for msys-2.0.dll using the Windows Start->Find/Search facility and delete all but the most recent version. The most recent version *should* reside in x:\msys\bin, where 'x' is the drive on which you have installed the msys distribution. Rebooting is also suggested if you are unable to find another msys DLL. 0 [main] pacman 2204 fork: child -1 - forked process 2880 died unexpectedly, retry 0, exit code 0xC0000142, errno 11 error: could not fork a new process (Resource temporarily unavailable) ( 6/10) upgrading libintl [################################################] 100% ( 7/10) upgrading libarchive [################################################] 100% ( 8/10) upgrading libcurl [################################################] 100% ( 9/10) upgrading libgpgme [################################################] 100% 1 [main] pacman (3816) C:\msys64\usr\bin\pacman.exe: *** fatal error - cygheap base mismatch detected - 0x1802E4400/0x1802F5400. This problem is probably due to using incompatible versions of the msys DLL. Search for msys-2.0.dll using the Windows Start->Find/Search facility and delete all but the most recent version. The most recent version *should* reside in x:\msys\bin, where 'x' is the drive on which you have installed the msys distribution. Rebooting is also suggested if you are unable to find another msys DLL. 187988 [main] pacman 2204 fork: child -1 - forked process 3816 died unexpectedly, retry 0, exit code 0xC0000142, errno 11 error: could not fork a new process (Resource temporarily unavailable) (10/10) upgrading pacman [################################################] 100%
Some suggested changes to the "Updates and general package management" section on http://sourceforge.net/p/msys2/wiki/MSYS2%20installation/
1) Move the "pacman -Syu" line to after the other instructions (ie after the current step 3). Yes, it's what people will use more often, once they already have an MSYS2 setup, but it shouldn't be the first thing they read, to avoid confusion.
2) The list of packages listed in:
pacman -S --needed filesystem msys2-runtime bash libreadline libiconv libarchive libgpgme libcurl pacman ncurses libintl
...is out of date, since even that "safe" list causes errors (see log above). That list should either be updated, or an explanation added that warnings are still expected.
Also (for another ticket), is there nothing that can be done to avoid the need for this workaround? Could the installer do some of this on first-run? Could the new packages be staged in a different location, that gets moved onto the original once the MSYS2 prompt is closed?
Last edit: Ed 2014-10-28
We are hoping to fix this problem (almost) entirely, soon. To that end, the next release will contain a statically * linked Pacman and bash and it may also run a statically linked Busybox for the coreutils.
Other than that, we may need Pacman to update msys2-runtime first, then advise the user to exit all shells and relaunch it. Finally, we might list any failed updates *(hopefully very few by this time) in a file that Pacman reads the next time it is run to re-install any failed packages.
*in as much as possible, msys-2.0.dll is always linked to MSYS2 applications, but it never gets rebased anyway.
Just to clarify - I know there is the footnote:
"If you do run into failures to run post-install scripts, it's generally nothing to panic about"
...however the way this reads, it sounds like it's for the followup steps, or for future installation of packages, rather than the "safe" ones installed using "pacman -S --needed".
Ah sorry my latest reply raced with yours.
That sounds great - thank you for the update! :-)
Yeah, we could maybe update the text a bit, I think the next release will fix it all though.
I updated > 80 packages on 2 machines recently without a single problem.
I hope the next update to that page is to delete most of it.
The latest release (msys2-x86_64-20141113.exe) combined with the changes to the docs (https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/diff?v2=17&v1=14) make this work perfectly now. Thank you!
This ticket can be closed as fixed :-)
Last edit: Ed 2014-11-17