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

Compare with Current View Page History

« Previous Version 31 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.

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.

  • 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 yum -q deplist tar
    yum -q deplist tar|grep -e "package:" -e "provider:"|sed -r -e 's/^\s*(package|provider):\s+(.+?)$/\2/' -e 's/ /\t\t\t\t/'|sort|uniq

    bash.x86_64                                  4.2.46-34.el7
    glibc.i686                                       2.17-307.el7.1
    glibc.x86_64                                 2.17-307.el7.1
    info.x86_64                                   5.1-5.el7
    libacl.x86_64                                2.2.51-15.el7
    libselinux.x86_64                        2.5-15.el7
    tar.x86_64                                     2:1.26-35.el7


    # libnsl is not needed in this example as no package is returned:
    yum -q deplist libnsl


    # Now we check each package and package-version against the dependency lists above:
    rpm -q bash.x86_64
    bash-4.2.46-34.el7.x86_64

    rpm -q glibc.i686

    # Nothing returned by above command: 
    glibc.i686 needs to be downloaded and installed

    rpm -q info.x86_64
    info-5.1-5.el7.x86_64

    rpm -q libacl.x86_64
    libacl-2.2.51-15.el7.x86_64

    rpm -q libselinux.x86_64 
    libselinux-2.5-15.el7.x86_64

    rpm -q tar.x86_64
    tar-1.26-35.el7.x86_64

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

    glibc.i686                                       2.17-307.el7.1

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

    # Download each of the dependent packages:
    yumdownloader glibc.i686

    Loaded plugins: fastestmirror
    Loading mirror speeds from cached hostfile
    epel/x86_64/metalink | 4.4 kB 00:00:00
    * base: mirror.nsw.coloau.com.au
    * epel: fedora.melbourneitmirror.net
    * extras: mirror.nsw.coloau.com.au
    * updates: mirror.nsw.coloau.com.au
    base | 3.6 kB 00:00:00
    extras | 2.9 kB 00:00:00
    updates | 2.9 kB 00:00:00
    glibc-2.17-307.el7.1.i686.rpm

    # 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 glibc-2.17-307.el7.1.i686.rpm

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

    # Install each of the downloaded required packages:
    sudo yum install glibc-2.17-307.el7.1.i686.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.

  • 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.

  • 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

  • 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