User Tools

Site Tools


aix:cleanup_odm_soft

AIX broken package

On a WPAR

[root@wpar01]/root# odmget -q name="rpm.rte" lpp

lpp:
        name = "rpm.rte"
        size = 0
        state = 7
        cp_flag = 275
        group = ""
        magic_letter = "I"
        ver = 4
        rel = 13
        mod = 0
        fix = 10
        description = "RPM Package Manager"
        lpp_id = 551

lpp:
        name = "rpm.rte"
        size = 0
        state = 5
        cp_flag = 275
        group = ""
        magic_letter = "I"
        ver = 4
        rel = 15
        mod = 1
        fix = 3
        description = "RPM Package Manager"
        lpp_id = 927
[root@wpar01]/root#  lslpp -ach rpm.rte
#Path:Fileset:Level:PTF Id:Action:Status:Date:Time
/usr/lib/objrepos:rpm.rte:4.15.1.1006::COMMIT:COMPLETE:10/20/22:14;08;01
/usr/lib/objrepos:rpm.rte:4.15.1.1006::APPLY:COMPLETE:10/20/22:14;08;01
/etc/objrepos:rpm.rte:4.13.0.10::COMMIT:COMPLETE:10/03/19:10;39;28
/etc/objrepos:rpm.rte:4.13.0.10::APPLY:COMPLETE:10/03/19:10;39;28
/etc/objrepos:rpm.rte:4.15.1.3::APPLY:BROKEN:05/03/22:13;35;16
[root@wpar01]/root# lppchk -vm3
lppchk:  The following filesets need to be installed or corrected to bring
         the system to a consistent state:

  rpm.rte 4.15.1.3                        (BROKEN)
  rpm.rte 4.15.1.1006                     (usr: COMMITTED, root: not installed)

lppchk:  The following describes dependencies from installed filesets
         on one or more of the filesets listed above:

Fileset cdrtools.base 1.9.0.9 requires:
  rpm.rte 4.15.1.3

Fileset expect.base 5.45.4.0 requires:
  rpm.rte 4.15.1.3

Fileset tcl.base 8.6.10.0 requires:
  rpm.rte 4.15.1.3

Fileset tk.base 8.6.10.0 requires:
  rpm.rte 4.15.1.3

Remove bad package definition into ODM (broken)

[root@wpar01]/root# ODMDIR=/etc/objrepos odmdelete -q "lpp_name=rpm.rte and ver=4 and rel=15 and mod=1 and fix=1" -o product
[root@wpar01]/root# ODMDIR=/etc/objrepos odmdelete -q "lpp_name=rpm.rte and ver=4 and rel=15 and mod=1 and fix=3" -o product

Recheck, if no broken, then issue a syncwpar from base LPAR

[root@wpar01]/root# lppchk -vm3
[root@lpar01]/root# syncwpar -A

Example of removing package

Uninstallation failure for the Administration Center - removing ODM entries on AIX Preventive Service Planning

Abstract

When uninstallation for the TSM Administration Center or Integrated Solutions Console (ISC) fails, use these instructions to remove entries for these components from the Object Data Manager (ODM) database on AIX. Content

Note: Use the instructions below only when the uninstaller program fails to remove the Administration Center entries from the ODM database. See APAR IC48937 for more information about the installation error that occurs when the ODM entries are not correctly removed by the uninstaller.

To remove the ODM entries, you must perform operations on each Globally Unique Identifier (GUID). For each GUID, determine if it is referenced in any of the five classes in the Software Vital Product Data (SWVPD). The five classes are: lpp, product, vendor, history and inventory.

List of GUIDs for the Administration Center:

TIVsm-admincenter
tivoli.tsm.server.admincenter
admincenter
07681838b3993cf412d858c5b6083a63
10f0b955b159943a96e34f1003a7063e
13d7472a8ea54a61321e42f3a0b52f64
184e8957368e9239c13d5c8108773aea
21dde986483508d2bf7bc4781d8bf8e7
235a58f2ff4e7d24ac103f50b951096c
2f0f338f548978fbb15776156562becf
334e4fc2e2436de3eb16435e571bfa2c

Remove entries from the lpp class

For each GUID in the list, search the lpp class.

1. Run the command:

# ODMDIR=/usr/lib/objrepos odmget -q "name = Product GUID" lpp

If the GUID is found, you will see output like the following:

    lpp:
    name = "Product GUID"
    size = 0
    state = 5
    cp_flag = 131345
    group = ""
    magic_letter = ""
    ver = 1
    rel = 1
    mod = 0
    fix = 0
    description = "Description of Product"
    lpp_id = 1043

2. Record the lpp_id associated with each GUID, as shown in the output of this command. (The lpp_id is used later.)

3. For each entry found, run the following command to remove it:

# ODMDIR=/usr/lib/objrepos odmdelete -o lpp -q "name = Product GUID"

4. To verify that the entry was removed, rerun the command:

# ODMDIR=/usr/lib/objrepos odmget -q "name = Product GUID" lpp

If the entry was successfully removed, there should be no output.

Remove entries from the product class

For each GUID in the list, search the product class.

1. Run the command:

# ODMDIR=/usr/lib/objrepos odmget -q "lpp_name = Product GUID" product

If the GUID is found, you will see output like the following:

    product:
    lpp_name = "Product GUID"
    comp_id = ""
    update = 0
    cp_flag = 131345
    fesn = ""
    name = "Product GUID"
    state = 5
    ver = 1
    rel = 1
    mod = 0
    fix = 0
    ptf = ""
    media = 0
    sceded_by = ""
    fixinfo = ""
    prereq = ""
    description = "Description of Product"
    supersedes = ""

2. For each entry found, run the following command to remove it:

# ODMDIR=/usr/lib/objrepos odmdelete -o product -q "lpp_name = Product GUID"

3. To verify that the entry was removed, rerun the command:

# ODMDIR=/usr/lib/objrepos odmget -q "lpp_name = Product GUID" product

If the entry was successfully removed, there should be no output.

Remove entries from the vendor class

For each GUID in the list, search the vendor class.

1. Run the command:

# ODMDIR=/usr/lib/objrepos odmget -q "GUID = Product GUID" vendor

If the GUID is found, you will see output like the following:

    vendor:
    GUID = "Product GUID"
    ver = 1
    rel = 1
    mod = 0
    fix = 0
    type = 1
    ddir = "install/directory"
    uninstaller = "location/of/uninstaller"
    msgcat = ""
    msgnumber = 0
    msgset = 0
    lpp_id = 1043
    PGUID = "Parent GUID"
    time = 1023223295
    instance = 1
    description = "Description of Product"
    misc1 = ""
    misc2 = ""
    misc3 = ""

Note that the lpp_id is also included in this record.

2. For each entry found, run the following command to remove it:

# ODMDIR=/usr/lib/objrepos odmdelete -o vendor -q "GUID = Product GUID"

3. To verify that the entry was removed, rerun the command:

# ODMDIR=/usr/lib/objrepos odmget -q "GUID = Product GUID" vendor

If the entry was successfully removed, there should be no output.

Remove entries from the history class

For each GUID in the list, search the history class. To search the history class, you must use the lpp_id that you obtained from the lpp or the vendor steps above.

1. Run the following command, using the lpp_id that you obtained when removing the entries from the lpp class or the vendor class:

aix/cleanup_odm_soft.txt · Last modified: 2022/10/24 11:55 by manu