Matlab Package Manager (mpm)
A simple package manager for Matlab (inspired by pip). Downloads packages from Matlab Central's File Exchange, GitHub repositories, or any other url pointing to a .zip file.
Download/clone this repo and add it to your Matlab path (using
addpath). Now try the following:
mpm install [package-name]: install package by name
mpm uninstall [package-name]: remove package, if installed
mpm search [package-name]: search for package given name (checks Github and Matlab File Exchange)
mpm freeze: lists all packages currently installed
mpm init: adds all installed packages to path (run when Matlab starts up)
Install a single package
Install (searches FileExchange and Github):
>> mpm install export_fig
When installing, mpm checks for a file in the package called
install.m, which it will run after confirming (or add
--force to auto-confirm). It also checks for a file called
pathlist.m which tells it which paths (if any) to add.
Install a Github release (by tag, branch, or commit)
>> mpm install matlab2tikz -t 1.0.0
>> mpm install matlab2tikz -t develop
>> mpm install matlab2tikz -t ca56d9f
>> mpm uninstall matlab2tikz
When uninstalling, mpm checks for a file in the package called
uninstall.m, which it will run after confirming (or add
--force to auto-confirm).
Search without installing:
>> mpm search export_fig
Install from a url:
>> mpm install covidx -u https://www.mathworks.com/matlabcentral/fileexchange/76213-covidx
>> mpm install export_fig -u https://github.com/altmany/export_fig.git
(Note that when specifying Github repo urls you must add the '.git' to the url.)
Install local package:
>> mpm install my_package -u path/to/package --local
The above will copy
path/to/package into the default install directory. To skip the copy, add
-e to the above command.
Overwrite existing packages:
>> mpm install matlab2tikz --force
Install/uninstall packages in a specific directory:
>> mpm install matlab2tikz -d /Users/mobeets/mypath
Note that the default installation directory is
mpm has rudimentary support for managing collections of packages. To specify which collection to act on, use
-c [collection_name]. Default collection is "default".
>> mpm install cbrewer -c test Using collection "test" Collecting 'cbrewer'... Found url: https://www.mathworks.com/matlabcentral/fileexchange/58350-cbrewer2?download=true Downloading https://www.mathworks.com/matlabcentral/fileexchange/58350-cbrewer2?download=true... >> mpm init -c test Using collection "test" Adding to path: /Users/mobeets/code/mpm/mpm-packages/mpm-collections/test/cbrewer Added paths for 1 package(s).
Installing multiple packages from file
>> mpm install -i /Users/mobeets/example/requirements.txt
Specifying a requirements file lets you install or search for multiple packages at once. See 'requirements-example.txt' for an example. Make sure to provide an absolute path to the file!
To automatically confirm installation without being prompted, set
--approve. Note that this is only available when installing packages from file.
What it does
By default, mpm installs all Matlab packages to the directory
mpm-packages/. (You can edit
mpm_config.m to specify a custom default installation directory.)
If you restart Matlab, you'll want to run
mpm init to re-add all the folders in the installation directory to your Matlab path. Better yet, just run
mpm init from your Matlab startup script.
Because there's no standard directory structure for a Matlab package, automatically adding paths can get a bit messy. When mpm downloads a package, it adds a single folder within that package to your Matlab path. If there are no
*.m files in the package's base directory, it looks in folders called 'bin', 'src', 'lib', or 'code' instead. You can specify the name of an internal directory by passing in an
internaldir argument. To install a package without modifying any paths, set
--nopaths. Or to add all subfolders in a package to the path, set
Mpm keeps track of the packages it's downloaded in a file called
mpm.mat, within each installation directory.