VMware Cloud Community
GuyYafe
Contributor
Contributor

Difference betwen VIB update and VIB install

Hi,

I am wondering what is the difference between VIB update and VIB install:

From the documentation, it looks about the same, meaning that each can update an existing VIB.

My goal is to have the ability to update an existing VIB by replacing just one of the files and not reinstalling the entire bundle.

Thanks,

Guy

Tags (2)
Reply
0 Kudos
5 Replies
a_p_
Leadership
Leadership

From http://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vcli.ref.doc_50%2Fesxcli_software.ht...

software vib install

Installs VIB packages from a URL or depot. VIBs may be installed, upgraded, or downgraded. ...

software vib update

Update installed VIBs to newer VIB packages. No new VIBs will be installed, only updates. ...

André

Reply
0 Kudos
Gkeerthy
Expert
Expert

just refer the below link for more details, - so basically the install will over write all the realted files for the VIB but in Update it will just update the required files and some times you dont need a reboot. And update is the recommended method by the vmware.

Notes:

  • To install or update a .zip file, use the -d option. To install or update a .vib file use the -v option.

  • Using the update  command is the recommended method for patch application. Using this  command applies all of the newer contents in a patch, including all  security fixes. Contents of the patch that are a lower revision than the  existing packages on the system are not applied.

  • Using the install command  overwrites the existing packages in the system with contents of the  patch you are installing, including installing new packages and removing  old packages. The install command may downgrade packages on the system and should be used with caution. If required, the install command can be used to downgrade a system (only for image profiles) when the --allow-downgrade flag is set.

  • The install method has the possibility of overwriting existing  drivers. If you are using 3rd party ESXi images, VMware recommends using  the update method to prevent an unbootable state.

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=200893...

http://pibytes.wordpress.com/2013/02/17/vmware-esxi-network-driver-install-and-upgrade/

Please don't forget to award point for 'Correct' or 'Helpful', if you found the comment useful. (vExpert, VCP-Cloud. VCAP5-DCD, VCP4, VCP5, MCSE, MCITP)
GuyYafe
Contributor
Contributor

Thanks you,

Can you elaborate on the following:


  • Using the update  command is the recommended method for patch application. Using this  command applies all of the newer contents in a patch, including all  security fixes. Contents of the patch that are a lower revision than the  existing packages on the system are not applied.

How does Esxi decides which of the contents is higher revision?

Do you mean the version attribute in the descriptor file? If so, is there a convention for versioning?

Is there a way to have only one of the files in the VIB updated and keep the others?

Reply
0 Kudos
Gkeerthy
Expert
Expert

Regarding to your questions -

How does Esxi decides which of the contents is higher revision?

Do you mean the version attribute in the descriptor file? If so, is there a convention for versioning?

Is there a way to have only one of the files in the VIB updated and keep the others? - The system will do automatically if you use the command UPDATE, and i dont think it will be possible, and with any package management system also you can controll.

I dont think it will be possible, just like any package manage system the esx package management will also behave in same manner like APPTIUDE in debian, and RPM in redhat etc. So if you install the patch or driver using a VIB package, it will automatically detects the current version and related files and safely it does all the things. It is inteligent !!

in the XML descriptor which you find after extracting the VIB file, the version section is just telling the version of the package, it wont help you to control the installation, and version convention i am  not aware.

Please don't forget to award point for 'Correct' or 'Helpful', if you found the comment useful. (vExpert, VCP-Cloud. VCAP5-DCD, VCP4, VCP5, MCSE, MCITP)
Reply
0 Kudos
GuyYafe
Contributor
Contributor

Thanks you for your answer.

Still I can't realize how the system determines which package is newer in order to update the current one. I think the decision is related to the version attribute in the XML descriptor file:

I have installed a package with version '1' (written as the value of the version attribute in the descriptor file).

I creates three different VIBs, differ from the installed one only by that version attribute:

When the value was '0', the package was installed and I got the following message:

esxcli software vib update --no-sig-check -v /vmfs/volumes/datastore1/package.vib
Installation Result
   Message: Host is not changed.
   Reboot Required: false
   VIBs Installed:
   VIBs Removed:
   VIBs Skipped: package_0

Next I tried installing the VIB with version value '1':

~ # esxcli software vib update --no-sig-check -v /vmfs/volumes/datastore1/package.vib

[TypeError]

can't compare datetime.datetime to NoneType

Please refer to the log file for more details.

Finally I installed the VIB with the version value '2':

~ # esxcli software vib update --no-sig-check -v /vmfs/volumes/datastore1/package.vib

Installation Result

   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.

   Reboot Required: true

   VIBs Installed: package_2

   VIBs Removed: package_1

   VIBs Skipped:

Reply
0 Kudos