If I have a Solaris host without a direct Internet access, how can I install OpenCSW packages on it. Do I have to manually copy all the
This question is marked "community wiki".
There are two better, general ways. One is to create a mirror of the OpenCSW catalog (e.g. using rsync), transfer it to the internal network, and serve it over HTTP (e.g. with Apache or lighttpd). You can then configure pkgutil on the restricted machines to use your internal package mirror.
The second option is to build a single package stream file containing the package(s) you want to install, with all the dependencies. You do need one machine with Internet access, and a way to transfer files from it to the machines with restricted access.
Let's assume you have a working Solaris host that has Internet access - this is not your target machine, it's an intermediate host. You bootstrap OpenCSW on it, for completeness shown below:
Now that you have a functional pkgutil, you can use it to build your package stream with dependencies. You can then use the following command (split into multiple lines for readability), as a regular user:
You'll see how pkgutil downloads many different packages and repacks them into a single package stream. You can then transfer it to your target machines and install packages from it. You need to install the packages in the right order; pkgutil will print that order out when it finishes creating the package stream.
The resulting package stream will be placed in the
This answer is marked "community wiki".