This option is the standard way to install an individual package. The <package file> is the file name of the .deb file containing the package and must contain an adequate path to the file. So if you are currently in the directory /usr/debian and the archives are in /usr/debian/stable, you can either type:
dpkg -i ./stable/binary-i386/admin/cron_3.0pl1-38.deb
or:
dpkg -i /usr/debian/stable/binary-i386/admin/cron_3.0pl1-38.deb
with the same results. Either of the above lines will install the cron package on your system from the given location.
This is fine for installing packages one at a time, but an installation of all of the packages in a given directory tree is possible with the use of the -R option. This option causes dpkg to attempt installation of every .deb file that it finds while doing a recursive search of the declared directory tree.
So, if you wanted to install the entire admin directory as given in the above example the command would look like:
dpkg -i -R /usr/debian/stable/binary-i386/admin
Because of dependencies between packages this approach will not always (or even very often) be successful. It is very useful if you have a nonstandard archive that contains all the packages you wish to install and all of their dependent packages as well. Constructing such archives using FTP to download only those packages that you need will create archives that dpkg can install as a group. If the packages are all found in the directory /usr/local/Debian/archive, then the command:
dpkg -i -R /usr/local/Debian/archive
will direct dpkg to install all the packages found there. dpkg will install the packages in the order it finds them. This leaves open the possibility that dependencies will not be satisfied during the first pass. On large complex collections of packages this can potentially take several passes at the package files.
A more general solution is to break the installation phase into two steps. The first step unpacks the package file, while the second step configures the unpacked files. Just which files are unpacked, and where they are placed after unpacking, is determined by a collaboration between dpkg and the package.