User Tools

Site Tools


aix:remove_lpp_odm

Remove all traces of a package /software

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.

Before starting, think to backup:

# tar -cvf /tmp/odm.tar ./etc/objrepos ./usr/lib/objrepos

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:

  ODMDIR=/usr/lib/objrepos odmget -q "lpp_id = ID " history 

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

  history:
  lpp_id = id
  event = 2
  ver = 1
  rel = 1
  mod = 0
  fix = 0
  ptf = ""
  corr_svn = ""
  cp_mod = ""
  cp_fix = ""
  login_name = ""
  state = 1
  time = 1023223295
  comment = "" 

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

  ODMDIR=/usr/lib/objrepos odmdelete -o history -q "lpp_id = ID " 

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

  ODMDIR=/usr/lib/objrepos odmget -q "lpp_id = ID " history 

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

Remove entries from the inventory class

To search the inventory class, you must use the lpp_id that you obtained from the lpp or the vendor steps above. Note that only Components will have inventory entries (so you do not need to check any lpp_id that is a Product or Feature).

1. Run the command:

  ODMDIR=/usr/lib/objrepos odmget -q "lpp_id = ID " inventory 

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

  inventory:
  lpp_id = id
  private = 0
  file_type = 0
  format = 1
  loc0 = "location/of/file/installed/with/component
  loc1 = ""
  loc2 = ""
  size = 779
  checksum = 25483 
  Note: You will have an inventory entry for each file that is installed for a particular lpp_id associated with a component, so in most cases, you will see multiple entries after running this command. 

2. To remove all entries for a particular lpp_id, run the command:

  ODMDIR=/usr/lib/objrepos odmdelete -o inventory -q "lpp_id = ID " 

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

  ODMDIR=/usr/lib/objrepos odmget -q "lpp_id = ID " inventory 

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

4. Ensure that there are no entries for the TSM Administration Center in the file /usr/lib/objrepos/vpd.properties. This is a plain ASCII file. Remove any lines that refer to TSM Administration Center by deleting them.

aix/remove_lpp_odm.txt · Last modified: 2021/01/01 21:21 (external edit)