# The dfx version manager (dfxvm) version 1.0.0 is released!

**URL:** https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720
**Category:** Developers
**Created:** [February 20, 2024, 5:25pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720 "2024-02-20T17:25:14Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![ericswanson](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/ericswanson/32/622_2.png) [@ericswanson](https://forum.dfinity.org/u/ericswanson)
#### Post date: [February 20, 2024, 5:25pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/1 "2024-02-20T17:25:14Z")

</div>

We’ve released version 1.0.0 of the [dfx version manager](https://github.com/dfinity/dfxvm).

You can install it with

```auto
sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"

```

The install scripts at [internetcomputer.org](http://internetcomputer.org) and [smartcontracts.org](http://smartcontracts.org) have not yet cut over.

If you are installing dfx in CI, you’ll need to update your method of doing so.

There are two main methods: GitHub action or Manual

GitHub action: [GitHub - dfinity/setup-dfx: GitHub Action to set up dfx](https://github.com/dfinity/setup-dfx)

```auto
jobs:
  example-job:
    runs-on: ubuntu-latest 
    steps:
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Install dfx
      uses: dfinity/setup-dfx@main
    - name: Confirm successful installation
      run: dfx --version

```

Manual:

1. Set DFXVM\_INIT\_YES=true so that the installer bypasses prompts:

```auto
$ DFXVM_INIT_YES=true sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"

```

1. Add the dfxvm bin path to your PATH depending on OS:

```auto
# Linux:
"$HOME/.local/share/dfx/bin"

# Macos:
"$HOME/Library/Application Support/org.dfinity.dfx/bin"

```

Depending on how your script runs, you could also source the env script, one of these:

```auto
# Linux:
source "$HOME/.local/share/dfx/env"

# Macos:
source "$HOME/Library/Application Support/org.dfinity.dfx/env"

```

---

<div class="post-metadata">

### Author: ![NathanosDev](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/nathanosdev/32/7204_2.png) [@NathanosDev](https://forum.dfinity.org/u/NathanosDev)
#### Post date: [February 20, 2024, 7:23pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/2 "2024-02-20T19:23:49Z")

</div>

This is awesome! A huge improvement to the DX working with DFX.

---

<div class="post-metadata">

### Author: ![lastmjs](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lastmjs/32/3406_2.png) [@lastmjs](https://forum.dfinity.org/u/lastmjs)
#### Post date: [February 20, 2024, 8:14pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/3 "2024-02-20T20:14:03Z")

</div>

So the current way `DFX_VERSION=0.16.1 sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"` won’t work anymore? We can’t just install a specific version like this?

---

<div class="post-metadata">

### Author: ![lastmjs](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/lastmjs/32/3406_2.png) [@lastmjs](https://forum.dfinity.org/u/lastmjs)
#### Post date: [February 20, 2024, 8:16pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/4 "2024-02-20T20:16:17Z")

</div>

Is there a way to just install a version directly without the dfxvm? All of our CI tests are failing on we haven’t updated any of our documentation or notified anyone about this, and seems we have to now. Would be great if we could have a way to keep the original behavior during the transition, if it’s available.

---

<div class="post-metadata">

### Author: ![ericswanson](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/ericswanson/32/622_2.png) [@ericswanson](https://forum.dfinity.org/u/ericswanson)
#### Post date: [February 20, 2024, 8:53pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/5 "2024-02-20T20:53:51Z")

</div>

```auto
DFXVM_INIT_YES=true DFX_VERSION=0.16.1 sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"

```

You do still need to add the dfxvm bin directory to the path. I should have posted about this when I announced the dfxvm soft launch.

---

<div class="post-metadata">

### Author: ![q2333gh](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/q2333gh/32/36020_2.png) [@q2333gh](https://forum.dfinity.org/u/q2333gh)
#### Post date: [February 21, 2024, 3:00am UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/6 "2024-02-21T03:00:10Z")

</div>

Thanks for your great work! wahoo~  
Already using it ~ Love it

---

<div class="post-metadata">

### Author: ![bruno353](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/bruno353/32/15709_2.png) [@bruno353](https://forum.dfinity.org/u/bruno353)
#### Post date: [February 27, 2024, 12:26am UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/7 "2024-02-27T00:26:57Z")

</div>

Just a feedback, it would be good if this big updates did not disrupt existing workflows that were compatible with previous versions of the DFX installation. This can be challenging for individual developers to keep up with all the updates and adjust their code accordingly since their CI could break.

---

<div class="post-metadata">

### Author: ![icme](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/icme/32/4327_2.png) [@icme](https://forum.dfinity.org/u/icme)
#### Post date: [February 27, 2024, 5:30am UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/8 "2024-02-27T05:30:29Z")

</div>

It looks like the other install scripts were also migrated (i.e. [smartcontracts.org](http://smartcontracts.org)), or at least once `dfxvm` is installed attempting to install from this url using the old command forwards to `dfxvm`. Was this intentional?

I’m all migrated over though now, and it’s great, but as Jordan and other mentioned it did break CI.

Since this overwrites the previous dfx path, for future dfx releases it would be nice if there are instructions included for going back and forth between the new and the old system (if one needs to locally).

Thanks again for dfxvm though - loving it! 👏

---

<div class="post-metadata">

### Author: ![fabiob](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/fabiob/32/16063_2.png) [@fabiob](https://forum.dfinity.org/u/fabiob)
#### Post date: [February 28, 2024, 10:38pm UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/9 "2024-02-28T22:38:37Z")

</div>

> [@ericswanson](#):
>
> 1. Add the dfxvm bin path to your PATH depending on OS:

Hi there.

I have to say that this kind of surprise breaking change of a reference install script isn’t welcome at all.

We have a custom docker image that we use in our Gitlab CI/CD pipelines.  
This docker image has its own CI/CD and all of a sudden we are not only unable to create images for new dfx releases, but also unable to update older dfx version’s images to our evolving needs.

Here is what our Dockerfile looks like now, in my attempt to fix this:

```Dockerfile
...
ARG DFX_VERSION
RUN DFXVM_INIT_YES=true sh -ci "$(curl -fsSL https://sdk.dfinity.org/install.sh)"
RUN . $HOME/.local/share/dfx/env
ENV PATH="$HOME/.local/share/dfx/bin:$PATH"
...

```

Apparently, `dfx` is correctly installed, `dfxvm` as well even if not needed in our case, and both binaries are present in `$HOME/.local/share/dfx/bin/`.  
But the `PATH` doesn’t seem to be updated correctly, even running the `env` script (I also tried with `RUN ["/usr/bin/bash", "-c", "source $HOME/.local/share/dfx/env"]` and several other syntaxes, with no success, in the test job for that image, the result is always the same:

 ![Screenshot from 2024-02-28 23-34-29](https://us1.discourse-cdn.com/flex023/uploads/dfn/original/3X/b/9/b92cd2e928a0a8ccc9aebaf5c4addc97f34c6f4f.png)

Any idea ??!

---

<div class="post-metadata">

### Author: ![ericswanson](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/ericswanson/32/622_2.png) [@ericswanson](https://forum.dfinity.org/u/ericswanson)
#### Post date: [February 29, 2024, 1:01am UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/10 "2024-02-29T01:01:25Z")

</div>

I apologize for not giving more advance notice about these breaking changes to CI.

Additionally, while I had thought it wasn’t feasible to release dfxvm without breaking changes for CI, in hindsight there are probably things we could have done.

In the case of your Dockerfile, the problem may be that HOME isn’t something that ENV knows about. In that case, this might work:

```auto
ENV PATH="/root/.local/share/dfx/bin:$PATH"

```

---

<div class="post-metadata">

### Author: ![fabiob](https://sea1.discourse-cdn.com/flex023/user_avatar/forum.dfinity.org/fabiob/32/16063_2.png) [@fabiob](https://forum.dfinity.org/u/fabiob)
#### Post date: [February 29, 2024, 8:16am UTC](https://forum.dfinity.org/t/the-dfx-version-manager-dfxvm-version-1-0-0-is-released/27720/11 "2024-02-29T08:16:09Z")

</div>

That worked. 👍 Thanks.
