asdf/docs/manage/plugins.md

82 lines
2.2 KiB
Markdown
Raw Normal View History

2021-07-22 22:26:21 -07:00
# Plugins
2021-07-22 22:26:21 -07:00
Plugins are how `asdf` knows to handle different tools like Node.js, Ruby, Elixir etc.
See [Creating Plugins](/plugins/create.md) for the plugin API used to support more tools.
## Add
Add plugins via their Git URL:
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin add <name> <git-url>
# asdf plugin add elm https://github.com/vic/asdf-elm
```
or via the short-name association in the plugins repository:
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin add <name>
# asdf plugin add erlang
```
2021-07-22 22:26:21 -07:00
::: tip Recommendation
Prefer the longer `git-url` method as it is independent of the short-name repo.
:::
## List Installed
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin list
# asdf plugin list
# java
# nodejs
```
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin list --urls
# asdf plugin list
# java https://github.com/halcyon/asdf-java.git
# nodejs https://github.com/asdf-vm/asdf-nodejs.git
```
## List All in Short-name Repository
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin list all
```
2021-07-22 22:26:21 -07:00
See [Plugins Shortname Index](https://github.com/asdf-vm/asdf-plugin-template) for the entire short-name list of plugins.
## Update
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin update --all
```
If you want to update a specific package, just say so.
2021-07-22 22:26:21 -07:00
```shell:no-line-numbers
asdf plugin update <name>
# asdf plugin update erlang
```
2021-07-22 22:26:21 -07:00
This update will fetch the _latest commit_ on the _default branch_ of the _origin_ of the plugin repository. Versioned plugins and updates are currently being developed ([#916](https://github.com/asdf-vm/asdf/pull/916))
## Remove
2021-07-22 22:26:21 -07:00
```bash:no-line-numbers
asdf plugin remove <name>
# asdf plugin remove erlang
```
Removing a plugin will remove all installations of the tool made with the plugin. This can be used as a shorthand for cleaning/pruning many unused versions of a tool.
## Syncing the Short-name Repository
The short-name repo is synced to your local machine and periodically refreshed. This period is determined by the following method:
- commands `asdf plugin add <name>` or `asdf plugin list all` can trigger a sync
- a sync occurs if there has not been one in the last `X` minutes
2021-07-22 22:26:21 -07:00
- `X` defaults to `60`, but can be configured in your `.asdfrc` via the `plugin_repository_last_check_duration` option. See the [asdf config docs](/manage/configuration.md) for more.