Install cygwin on new machine from local directory

0

1

I am installing a cygwin onto a new machine from local discs made in 2015. I am using an old set of packages because the process for approving new files for is extremely onerous. The package folders are located in

C:\cygwinV2015install\http%3a%2f%2fcygwin.parentingamerica.com%2f\x86_64\release

I initiate the install using:

setup-x86_64.exe --no-admin

The setup executable and the package folders are the only files that I retained from 2015.

The Root Install Directory is C:\cygwin64. I chose to install for Just Me rather than All Users. The Local Package Directory is specified as C:\cygwinV2015install\http%3a%2f%2fcygwin.parentingamerica.com%2f.

In the Select Packages screen, I select Curr, which stands for Globally select the version that is currently considered the most stable. (RECOMMENDED). The checkbox for Hide obsolete packages is enabled.

The problem is that I can't select many packages at once using the Category View

  • If View is Category, the only thing showing is No packages found, regardless of the filter (Default, Install, Reinstall, Uninstall)

  • If View is Full, I see a long list of packages, where every entry in the 1st column (entitled New) says Skip. I can click on Skip one row at a time, and between the package version and Skip.

  • If View is Pending, I see the packages that have been toggled away from Skip in the Full View

  • If View is Up To Date, the only thing showing is Nothing to Install/Update

  • If View is Not Installed, I see the same things as when View is Full (which makes sense, since nothing is installed).

I really don't want to operate outside of Category View because I'm sure I'll miss something. What am I missing in terms of getting setup to work as it normally does? I want to be able to use Category View and see more than No Packages found.

AFTERNOTE: From experimenting on a different computer, it seems that no matter what path I specify for Local Package Directory, the packages show up in the Select Packages list under Category View. This means that the setup program is storing the path of the packages somewhere else. Does anyone know where? If I can access that parameter, I might be able to make the setup program behave properly on the new computer.

FIRST ATTEMPTED SOLUTION: Thanks to Matzeri, I followed this page to create a *.bat file that specified all the packages:

setup-x86_64.exe --no-admin --local-package-dir C:\cygwinV2015install -P _autorebase,_autorebase,_update-info-dir,a2ps,...,zip,zlib0
 pause

The *.bat file was created on the computer with cygwin installed, and executed on the computer in which I want to install cygwin. I added the --no-admin myself because I don't have admin rights. I placed it in C:\cygwinV2015install, which also contains the mirror folder http%3a%2f%2fcygwin.parentingamerica.com%2f. When I run the *.bat file, however, it launches the same setup GUI as if I directly ran setup-x86_64.exe. The Select Packages panel doesn't seem to recognize any packages. Here is what shows, depending on the View:

  • Full View: Nothing to Install/Update
  • Pending View: Nothing to Install/Update
  • Up To Dat View: Nothing to Install/Update
  • Not Installed: Nothing to Install/Update
  • Category View: No packages Found

For Category View, it doesn``t matter whether I filter by Default, Install, Reinstall, or Uninstall.

In the *.bat file, I also specified --local-package-dir C:\cygwinV2015install\http%%3a%%2f%%2fcygwin.parentingamerica.com%%2f, with the same result. (The double "%" signs act as a single "%" in a *.bat file).

Note that I removed all *.ini files in the subtree rooted at C:\cygwinV2015install. The text therein says that they are autogenerated.

Is there anything else that could be causing the packages to go unrecognized?

NEW INFO: If I create a new folder c:\cygwinV2015install5 and put setup executable, the mirror folder, and the *.bat file into it, I can run setup-x86_64.exe --no-admin and see the (skipped) packages in Full View -- as long as --local-package-dir is specified to be the mirror folder. not c:\cygwinV2015install5. However, there are far too many packages to manually switch away from Skip. Since I can only see the packages when I create a virgin folder c:\cygwinV2015install5, it means that setup is storing its knowledge of packages elsewhere, and setup only looks again for packages when a new local package directory. I tried to take advantage of this by using the *.bat file in a new folder c:\cygwinV2015install6, but alas, no luck. Still get the same results as FIRST ATTEMPTED SOLUTION above. Note that I added the --local-install option to the *.bat file, and I also tried --no-verify; no difference.

MORE NEW INFO: I'm beginning to suspect the following failure mode:

  • setup only recognizes packages when the local package directory is browsed to via the setup GUI, NOT if it is specified via command line option --local-package-dir

  • Evidence of this is that the Select Packages list is empty regardless of whether I specify the local package directory as c:\cygwinV2015install* or c:\cygwinV2015install*\http%%3a%%2f%%2fcygwin.parentingamerica.com%%2f (the asterisk is any integer to ensure that I'm working with a virgin directory)

  • The moment I browse to a local package directory using the GUI, I can see the packages in Full View, but not in Category View

  • However, I suspect that when I do this, I lose all the package specifications specified using the -P option in the *.bat file

  • Evidence of this is that all the packages show up as Skip (strictly speaking, however, I'm not sure if they would have shown up otherwise if they were properly seen by setup without browsing via the GUI)

  • There are way too many packages to toggle away from Skip manually

  • With the hierarchical organizatio of Category View, there might be some chance of selecting the high level packages and having the dependency assurance function select the low level packages and libraries

If I am right, then the problem can be solved by getting the setup executable to recognized the packages based on the --local-package-dir argument, without having to browse to a folder in the GUI. Failing that, I would need a way to toggle the Skip selection for the packages en masse.

The main mystery stumping me is why the packages aren't recognized, and when they are, why they don't show up in Category View in the typical hierarchical fashion. Is there some kind of config file needed in one of the folders in order for this functionality to work correctly?

user36800

Posted 2017-11-21T01:34:08.937

Reputation: 147

I assume you want to duplicate an existing installation, so you can consider https://stackoverflow.com/questions/46829532/cygwin-save-package-selections-for-later-reinstall

– matzeri – 2017-11-21T16:22:31.547

Thanks, matzeri. I added a section FIRST ATTEMPTED SOLUTION reflecting the result of using the page that you cited. – user36800 – 2017-11-21T20:01:44.770

I used the currently downloadable setup executable to create another snapshot of the currently available install files from http://cygwin.parentingamerica.com. It turns out that file .../http%3a%2f%2fcygwin.parentingamerica.com%2f/x86_64/setup.ini is created in the process. From this page, it seems to be at least one essential file that I need (and which I did not have).

– user36800 – 2017-11-22T04:49:49.023

Answers

1

I found the problem and the solution. The setup executable relies on a file .../http%3a%2f%2fcygwin.parentingamerica.com%2f/x86_64/setup‌​.ini that is created when the package files are downloaded. I was lucky that I still had that file on the machine used to create the install CDs. Putting that file into the above path in the destination machine enabled the setup executable to work normally and replicate the cygwin installation of the source machine. I did not need to create or run any custom *.bat files.

Just beware that if you combined all the packages into one (or two) zip files, Windows 7's built-in handling of large zip files is buggy and will corrupt files (I'm not sure if its in the compression or extraction). Use WinZip explicitly to extract the different package folders. This may save you at least a few days of troubleshooting. Even though I knew about this Windows bug from years past, I did not expect that it persisted to this day, and hence, did not look out for it. The bug is particularly insidious because there are no indications that the files are corrupt. They could end up zero-length or smaller than what they should be.

Those who encounter this problem won't know right away that the files are improperly sized. I saw cygwin installation messages about missing DLLs. However, the improper file sizes are very clearly documented in c:/cygwin64/var/log/setup.log.full. The specific path is recorded, along with what the size should be according to the *.ini file, and in contrast, what the size is on disc. Unfortunately, setup.log.full is only created at the end of the cygwin installation process.

user36800

Posted 2017-11-21T01:34:08.937

Reputation: 147