def update(*args, **kwargs):
package_name = kwargs.pop('<STR_LIT>', None)<EOL>installed_plugins_ = installed_plugins(only_conda=True)<EOL>if installed_plugins_:<EOL><INDENT>plugin_packages = [plugin_i['<STR_LIT>']<EOL>for plugin_i in installed_plugins_]<EOL>if package_name is None:<EOL><INDENT>package_name = plugin_packages<EOL><DEDENT>elif isinstance(package_name, (str,)):<EOL><INDENT>package_name = [package_name]<EOL><DEDENT>logger.info('<STR_LIT>',<EOL>'<STR_LIT:U+002C>'.join('<STR_LIT>'.format(package_name_i)<EOL>for package_name_i in package_name))<EOL>try:<EOL><INDENT>install_log = install(package_name, *args, **kwargs)<EOL><DEDENT>except RuntimeError as exception:<EOL><INDENT>if '<STR_LIT>' in str(exception):<EOL><INDENT>raise IOError('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>raise<EOL><DEDENT><DEDENT>if '<STR_LIT>' in install_log:<EOL><INDENT>logger.debug('<STR_LIT>', install_log['<STR_LIT>'])<EOL><DEDENT>return install_log<EOL><DEDENT>else:<EOL><INDENT>return {}<EOL><DEDENT>
Update installed plugin package(s).

Each plugin package must have a directory (**NOT** a link) containing a
``properties.yml`` file with a ``package_name`` value in the following
directory:

    <conda prefix>/share/microdrop/plugins/available/

Parameters
----------
*args
    Extra arguments to pass to Conda ``install`` command.

    See :func:`install`.
package_name : str or list, optional
    Name(s) of MicroDrop plugin Conda package(s) to update.

    By default, all installed packages are updated.
**kwargs
    See :func:`install`.

Returns
-------
dict
    Conda installation log object (from JSON ``conda install`` output).

Notes
-----
Only actual plugin directories are considered when updating (i.e., **NOT**
directory links).

This permits, for example, linking of a plugin into the ``available``
plugins directory during development without risking overwriting during an
update.

Raises
------
RuntimeError
    If one or more installed plugin packages cannot be updated.

    This can happen, for example, if the plugin package is not available in
    any of the specified Conda channels.

See also
--------
:func:`installed_plugins`