Today while installing Sun’s directory server, I kept getting the error “No components have been selected for installation in the selected directory” after selecting numerous components for installation:
Directory Server components showing a checked box will be installed.
[X] 1 Sun Java(TM) System Directory Suite 0 bytes
[X] 2 Sun Java(TM) System Directory Server 0 bytes
[ ] 3 Sun Java(TM) System Directory Console Support 0 bytes
[ ] 4 Sun Java(TM) System Administration Services 0 bytes
[ ] 5 Sun Java(TM) System Administration Server 0 bytes
[ ] 6 Sun Java(TM) System Administration Console 0 bytes
[ ] 7 Sun Java(TM) System Server Console 0 bytes
[ ] 8 Sun Java(TM) System Server Console Core 0 bytes
[ ] 9 Java Runtime Environment 0 bytes
[ ] 10 Sun Java(TM) System Server Basic Libraries 0 bytes
To check a particular component, enter its number, or 0 when you are
finished [0] {"<" goes back, "!" exits}: 0
No components have been selected for installation in the selected directory.
Since I had previously installed the directory server on the machine, I started to wonder if the directory server had placed a package repository somewhere on the file system. To see if this was the case, I fired up opensnoop from the DTraceToolkit:
$ opensnoop
UID PID COMM FD PATH
< ..... >
0 657 java 16 /var/sadm/install/productregistry.access
0 657 java 16 /var/sadm/install/productregistry.access.lock
0 657 java 16 /var/sadm/install/productregistry.access
0 657 java 18 /var/sadm/install/productregistry.access.tmp
0 657 java 16 /var/sadm/install/productregistry.access
0 657 java 16 /var/sadm/install/productregistry.access.lock
Sure enough, there is a product registry file in /var/sadm/install. Once I removed it with rm:
$ rm -f /var/sadm/install/productregistry
The installation went off without a hitch. DTrace truly does bring a lot to the table, and I feel like a fish out of water when debugging difficult issues on Solaris 9, AIX and Linux hosts.