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
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é
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:
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.
http://pibytes.wordpress.com/2013/02/17/vmware-esxi-network-driver-install-and-upgrade/
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?
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.
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.vibInstallation ResultMessage: Host is not changed.Reboot Required: falseVIBs Installed:VIBs Removed:VIBs Skipped: package_0Next 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: