You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 36 Next »


Requirements

This method works best with a connected computer with same OS and Version.
This enables one to ascertain the dependent packages that need to be downloaded by the Package Manager for the disconnected (air-gapped) computer.

Strategy will be to only install packages if absolutely necessary to minimise need to vet new packages. 
Sudo will only be used when necessary.

Centos 7 Example

On Redhat and Centos OS, tar and libnsl may need to be installed as they are needed to unpack the installer runfile.

  1. On the disconnected (air-gapped) computer we will firstly determine which pre-installation required packages need to be downloaded:

    First we check if tar package is installed:
    rpm -q tar.x86_64
    tar-1.26-35.el7.x86_64
    tar package is installed.
    We will only consider downloading and installing it later if we find we are unable to unpack the Opmantek Installer Runfile.


    Next we check if libnsl package is installed:
    rpm -q libnsl
    package libnsl is not installed
    libnsl is not installed.


    # From the above checks on this disconnected (air-gapped) computer, we have ascertained that the following packages are needed:

    linbnsl

  2. Using the connected computer with same OS and Version we will now fetch the pre-installation required packages:

    # Navigate to a clean directory to download packages to
    mkdir -p /tmp/omk_opXyz_packages
    cd /tmp/omk_opXyz_packages/


    # Download each of the dependent packages:
    yumdownloader libnsl

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    epel/x86_64/metalink | 26 kB 00:00:00
    * base: centos.mirror.serversaustralia.com.au
    * epel: mirror.xeonbd.com
    * extras: centos.mirror.serversaustralia.com.au
    * updates: mirror.nsw.coloau.com.au
    base | 3.6 kB 00:00:00
    epel | 4.7 kB 00:00:00
    extras | 2.9 kB 00:00:00
    updates | 2.9 kB 00:00:00
    No Match for argument libnsl
    Nothing to download
    # At first sight it appears we don't need libnsl for the OS + Version we are running this example on.
    # If the Opmantek Installer Runfile fails to unpack we may need to download this package from an OS Repository that is not enabled by default.


    # Since we don't have any package to download in this example we will download the tar package.
    # We will assume for the purposes of this example that the tar package needs to be updated to a newer version.
    # The command to download tar package with dependencies is:
    yumdownloader --resolve tar


    # Downloaded packages will now be in the current directory and ready for transferring to the disconnected (air-gapped) computer where they will be installed.
    ls -la

    -rw-rw-r--. 1 user user 865848 Nov 12 2018 tar-1.26-35.el7.x86_64.rpm

  3. On the disconnected (air-gapped) computer we will now install the downloaded required packages:

    # Install each of the downloaded required packages.
    # Since we don't have any package to install in this example we will install the tar package.
    # We will assume for the purposes of this example that the tar package needs to be updated to a newer version.
    sudo yum install tar-1.26-35.el7.x86_64.rpm

Debian 9 Example

On Debian and Ubuntu OS, tar, which is normally installed by default, may need to be installed as it is needed to unpack the installer runfile.

  1. On the disconnected (air-gapped) computer we will firstly determine which pre-installation required packages need to be downloaded:

    # Navigate to a clean directory to download packages to
    mkdir -p /tmp/omk_opXyz_packages
    cd /tmp/omk_opXyz_packages/


    # Extract the list of dependent packages - I've used sort and formatted the results
    # to make the needed comparison to those packages already installed easier:
    # to see  the unsorted results run command apt-cache show tar
    apt-cache show tar|grep "Pre-Depends:"|sed -e 's/Pre-Depends:\s\+//' -e 's/,\s*/\n/g'|sort|uniq

    libacl1 (>= 2.2.51-8)
    libc6 (>= 2.17)
    libselinux1 (>= 1.32)

    # Now we check each package and package-version against the dependency lists above:
    dpkg -s libacl1|grep -e "Status:" -e "Version:"
    Status: install ok installed
    Version: 2.2.52-3+b1

    dpkg -s libc6|grep -e "Status:" -e "Version:"Status: install ok installed
    Status: install ok installed
    Version: 2.24-11+deb9u4

    dpkg -s libselinux1|grep -e "Status:" -e "Version:"
    Status: install ok installed
    Version: 2.6-3+b3

    # From the above checks on this disconnected (air-gapped) computer, we have ascertained that no packages are needed.

  2. Using the connected computer with same OS and Version we would now fetch the pre-installation required packages:

    # Download each of the dependent packages, here using libacl1 as an example, even though it is not actually needed in this case:
    apt-get download libacl1

    Get:1 http://ftp.us.debian.org/debian stretch/main amd64 libacl1 amd64 2.2.52-3+b1 [28.1 kB]
    Fetched 28.1 kB in 1s (16.6 kB/s)

    # Downloaded packages will now be in the current directory and ready for transferring to the disconnected (air-gapped) computer where they will be installed:
    ls -la

    -rw-rw-r--. 1 user user 4463036 Apr 3 21:12 libacl1_2.2.52-3+b1_amd64.deb

  3. On the disconnected (air-gapped) computer we will now install the downloaded required packages:

    # Install each of the downloaded required packages, here using libacl1 as an example, even though it is not actually needed in this case:
    sudo apt-get install libacl1_2.2.52-3+b1_amd64.deb

  • No labels