Manage Automatic Dependency

Flexible packaging supports automatic dependency management. While you update an RPM, the system automatically identifies all relevant dependent packages and updates them.

Figure 1. Flow for Installation (base software, RPMs and SMUs)


Until this release, you downloaded the software image and required RPMs from CCO on a network server (the repository), and used the install add and the install activate commands to add and activate the downloaded files on the router. Then, you manually identify relevant dependent RPMs, to add and activate them.

With automatic dependency management, you need not identify dependent RPMs to individually add and activate them. You can execute new install command to identify and install dependent RPMs automatically.

The command install source adds and activates packages. The command install replace adds and activates packages in a given golden ISO (GISO).


Note


  1. Cisco IOS XR Version 6.0.2 and later does not provide third party and host package SMUs as part of automatic dependency management (install source command). The third party and host package SMUs must be installed separately, and in isolation from other installation procedures (installation of SMUs and RPMs in IOS XR or admin containers).

  2. From Cisco IOS XR Version 6.5.2 onwards, it is possible to update the mini.iso file by using the install source command.


The rest of this chapter contains these sections:

Update RPMs and SMUs

An RPM may contain a fix for a specific defect, and you may need to update the system with that fix. To update RPMs and SMUs to a newer version, use the install source command. When this command is issued for a particular RPM, the router communicates with the repository, and downloads and activates that RPM. If the repository contains a dependent RPM, the router identifies that dependent RPM and installs that too.

The syntax of the install source command is:

install source repository [rpm]

Four scenarios in which you can use the install source command are:

  • When a package name is not specified

    When no package is specified, the command updates the latest SMUs of all installed packages.

     install source  [repository]
    

    Note


    From Cisco IOS XR Version 6.1.1 onwards, if the mini.iso file is not specified, then it is not added as part of the update. Even if the repository contains the mini.iso file, it is not installed.

     install source  scp://<username>@<server>/my/path/of/packages noprompt

  • When a package name is specified

    If the package name is specified, the command installs that package, updates the latest SMUs of that package, along with its dependencies. If the package is already installed, only the SMUs of that package are installed.  (SMUs that are already installed are skipped.)

     install source  [repository] ncs5500-mpls.rpm
  • When a package name and version number are specified

    If a particular version of package needs to be installed, the complete package name must be specified; that package is installed along with the latest SMUs of that package present in the repository.

     install source  [repository] ncs5500-mpls-1.0.2.0-r710.x86_64.rpm
  • When an SMU is specified

    If an SMU is specified, that SMU is downloaded and installed, along with its dependent SMUs.

     install source  [repository] ncs5500-mpls-1.2.0.1-r611.CSCus12345.x86_64.rpm
  • When a list of packages (containing the mini.iso file) is specified

    From Cisco IOS XR Version 6.5.2 onwards, if a list of packages (containing the mini.iso file) is specified, all the packages in the list and the mini.iso file are automatically added as part of the update.

     install source  scp://<username>@<server>/my/path/of/packages [List of packages] noprompt
  • When the mini.iso file is specified

    From Cisco IOS XR Version 6.1.1 onwards, if the mini.iso file is specified during the update, then the file is installed with all RPMs and SMUs from the repository.

     install source  scp://<username>@<server>/my/path/of/packages [mini.iso] noprompt

Upgrade Base Software Version

You can upgrade to a newer version of the base software when it becomes available. To upgrade to the latest base software version, use the install source command. With the upgrade of the base version, RPMs that are currently available on the router are also upgraded.


Note


SMUs are not upgraded as part of this process.


The syntax of the install source command is:

install source  repository 

Note


VRF and TPA on dataport is not supported. If the server is reachable only through non-default VRF interface, the file must already be retrieved using ftp, sfp, scp, http or https protocols.



Note


Default routes (0.0.0.0/0) cannot be copied onto Linux due to TPA implementation.


You can use the install source command when:

  • The version number is specified

    The base software (.mini) is upgraded  to the specified version; all installed RPMs are upgraded to the same release version.

      install source [repository] version <version> asr9k-mini-x64-<version>.iso 
    For example,
    install source repository version 7.0.1 asr9k-mini-x64-7.0.1.iso 

    You can also automatically fetch the .mini file and RPMs of the required release and proceed with the upgrade.

    install source repository asr9k-mini-x64-7.0.1.iso 
  • The version number for an RPM is specified

    When performing a system upgrade, the user can choose to have an optional RPM to be of a different release (from that of the base software version); that RPM can be specified.

      install source repository version 6.2.2 ncs5500-mpls-1.0.2.0-r623.x86_64.rpm 

Downgrade an RPM

An RPM can be downgraded after it is activated. RPMs are of the following types:

  • Hostos RPM: The RPM contains hostos in the name.

    For example:
    • <platform>-sysadmin-hostos-6.5.1-r651.CSChu77777.host.arm

    • <platform>-sysadmin-hostos-6.5.1-r651.CSChu77777.admin.arm

    • <platform>-sysadmin-hostos-6.5.1-r651.CSChu77777.host.x86_64

    • <platform>-sysadmin-hostos-6.5.1-r651.CSChu77777.admin.x86_64

  • Non-hostos RPM: The RPM does not contain hostos in the name.

    For example:
    • <platform>-sysadmin-system-6.5.1-r651.CSCvc12346

To deactivate the RPMs, perform the following steps:

  • Downgrade Hostos RPM

    • Scenario 1: To downgrade to version 06 from the active version 09:
      1. Download the version 06 hostos RPMs, and add the RPMs.
        install add source [repository]  
        <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.host.arm <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.admin.arm 
        <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.host.x86_64 <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.admin.x86_64 
      2. Activate the downloaded RPMs.
        install activate  [repository] 
        <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.host.arm <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.admin.arm 
        <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.host.x86_64 <platform>-sysadmin-hostos-6.5.1.06-r65108I.CSChu44444.admin.x86_64
      3. Commit the configuration.
        install commit 
    • Scenario 2: Deactivate hostos RPM by activating base RPM, consider version 09 is active:

      1. Activate the base RPM.

        install activate  <platform>-sysadmin-hostos-6.5.1.08I-r65108I.admin.arm <platform>-sysadmin-hostos-6.5.1.08I-r65108I.host.arm 
        <platform>-sysadmin-hostos-6.5.1.08I-r65108I.admin.x86_64  <platform>-sysadmin-hostos-6.5.1.08I-r65108I.host.x86_64
        For example, if RPM ncs5500-sysadmin-hostos-6.5.1-r651.CSChu44444.host.arm is the RPM installed, then ncs5500-sysadmin-hostos-6.5.1-r651.host.arm is its base RPM.
      2. Commit the configuration.
        install commit 

      The downgrade for third-party RPMs is similar to the hostos RPMs. To downgrade a SMU, activate the lower version of the SMU. If only one version of SMU is present, the base RPM of the SMU must be activated.


      Note


      Hostos and third-party RPMs cannot be deactivated. Only activation of different versions is supported.


  • Downgrade Non-Hostos RPM

    1. Deactivate the RPM to downgrade to earlier version of RPM.
      install deactivate  <platform>-<rpm-name>
    2. Check the active version of the RPM.
      show install active 
    3. Commit the configuration.
      install commit