### Extended Uninstall Example with Dependencies Source: https://github.com/containerbase/base/blob/main/docs/tools.md Demonstrates the process of installing and then attempting to uninstall a Node.js tool, showing the error when child dependencies exist and the successful recursive uninstall. ```bash $ install-tool node 22.0.0 INFO (9): Installing tool node@22.0.0... v22.0.0 10.5.1 0.26.0 INFO (9): Install tool node succeeded in 4.3s. $ install-tool pnpm 10.20.0 INFO (10): Installing tool pnpm@10.20.0... v10.20.0 INFO (10): Install tool pnpm succeeded in 1.1s. $ uninstall-tool node 22.0.0 INFO (93): Uninstalling tool node@22.0.0... FATAL (93): tool version has child dependencies and cannot be uninstalled tool: "node" version: "22.0.0" childs: [ { "name": "pnpm", "version": "10.20.0" } ] FATAL (93): Uninstall tool node failed in 32ms. $ uninstall-tool node 22.0.0 -r INFO (104): Uninstalling tool node@22.0.0... INFO (104): Uninstalling child tool pnpm@10.20.0... INFO (104): Uninstall tool node succeeded in 100ms. ``` -------------------------------- ### Install and Build CLI Source: https://github.com/containerbase/base/blob/main/README.md Install project dependencies and build the CLI. These commands are prerequisites for building Docker images. ```console > pnpm install > pnpm build ``` -------------------------------- ### Install a specific tool version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a specified tool with an exact version into the container. Ensure the tool and version are compatible with your container environment. ```bash install-tool node 14.17.0 ``` -------------------------------- ### Dockerfile with Ignored Tools Source: https://github.com/containerbase/base/blob/main/README.md Example Dockerfile that temporarily disables the installation of specific tools like PowerShell and Node.js by using the IGNORED_TOOLS build argument. ```Dockerfile FROM containerbase/base ARG IGNORED_TOOLS=powershell,node # renovate: datasource=github-releases packageName=PowerShell/PowerShell RUN install-tool powershell v7.1.3 # renovate: datasource=github-releases packageName=containerbase/node-prebuild versioning=node RUN install-tool node 20.9.0 # renovate: datasource=github-releases packageName=moby/moby RUN install-tool docker 20.10.7 ``` -------------------------------- ### Install a tool using environment variable for version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a tool using a version number specified by an environment variable. This allows for dynamic version management without modifying the command itself. ```bash NODE_VERSION=14.17.0 install-tool node ``` ```bash export NODE_VERSION=14.17.0 install-tool node ``` -------------------------------- ### Dockerfile for Default User Settings Source: https://github.com/containerbase/base/blob/main/docs/custom-base-image.md Use this Dockerfile to create a custom base image with the default 'ubuntu' user and UID 12021. It includes setup for containerbase, tool installations, and environment variables. ```dockerfile # This containerbase is used for tool intallation and user/directory setup FROM containerbase/base AS containerbase FROM amd64/ubuntu:noble AS base # Allows custom apt proxy usage ARG APT_HTTP_PROXY # Set env and shell ENV BASH_ENV=/usr/local/etc/env ENV=/usr/local/etc/env PATH=/home/ubuntu/bin:$PATH SHELL ["/bin/bash" , "-c"] # This entry point ensures that dumb-init is run ENTRYPOINT [ "docker-entrypoint.sh" ] CMD [ "bash" ] # Optional: Add custom root certificate, should come before `install-containerbase` COPY my-root-ca.crt /usr/local/share/ca-certificates/my-root-ca.crt # Set up containerbase COPY --from=containerbase /usr/local/sbin/ /usr/local/sbin/ COPY --from=containerbase /usr/local/containerbase/ /usr/local/containerbase/ RUN install-containerbase # renovate: datasource=github-tags packageName=git/git RUN install-tool git v2.30.0 # renovate: datasource=github-releases packageName=containerbase/node-prebuild versioning=node RUN install-tool node 20.9.0 # renovate: datasource=npm versioning=npm RUN install-tool yarn 1.22.10 WORKDIR /usr/src/app # must be numeric if this should work with openshift USER 12021 ``` -------------------------------- ### Install the latest version of a tool Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs the most recent available version of a specified tool. This is useful when you always want to use the latest stable release. ```bash install-tool pnpm ``` -------------------------------- ### Install a specific gem package version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a specified Ruby gem package with an exact version. This requires Ruby to be pre-installed in the container. ```bash install-gem rake 13.0.6 ``` -------------------------------- ### Install a specific npm package version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a specified npm package with an exact version. This requires Node.js to be pre-installed in the container. ```bash install-npm del-cli 5.0.0 ``` -------------------------------- ### Install Custom Java Certificate Store at Buildtime Source: https://github.com/containerbase/base/blob/main/docs/custom-root-ca.md For Java applications, copy a custom Java KeyStore (JKS) file to the designated path during build time. This store will be used by all Java versions installed via `install-tool`. ```Dockerfile FROM containerbase/base COPY my-root-cert-store.jks /opt/containerbase/ssl/cacerts RUN install-tool java ``` -------------------------------- ### Install the latest version of an npm package Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs the latest available version of a specified npm package. This is useful for staying current with the newest features and fixes. ```bash install-npm del-cli ``` -------------------------------- ### Install a specific pip package version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a specified Python pip package with an exact version. This requires Python to be pre-installed in the container. ```bash install-pip checkov 2.4.7 ``` -------------------------------- ### Install the latest version of a gem package Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs the latest available version of a specified Ruby gem package. This ensures you are using the most up-to-date release. ```bash install-gem rake ``` -------------------------------- ### Install Custom Java Certificate Store at Runtime Source: https://github.com/containerbase/base/blob/main/docs/custom-root-ca.md For runtime Java certificate management, mount your custom JKS certificate store to `/opt/containerbase/ssl/cacerts`. The `SSL_CERT_FILE` environment variable can also be set for OpenSSL compatibility. ```bash docker run --rm -it \ -v my-root-ca.crt:/my-root-ca.crt \ -v my-root-cert-store.jks:/opt/containerbase/ssl/cacerts \ -e SSL_CERT_FILE=/my-root-ca.crt \ containerbase/base bash ``` -------------------------------- ### Install Custom Root CA at Runtime using SSL_CERT_FILE Source: https://github.com/containerbase/base/blob/main/docs/custom-root-ca.md Mount a custom root CA certificate into the container and set the `SSL_CERT_FILE` environment variable to use it at runtime. This is supported by most OpenSSL-based tools. ```bash docker run --rm -it \ -v my-root-ca.crt:/my-root-ca.crt \ -e SSL_CERT_FILE=/my-root-ca.crt \ containerbase/base bash ``` -------------------------------- ### Install the latest version of a pip package Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs the latest available version of a specified Python pip package. This ensures you are using the most recent stable release. ```bash install-pip checkov ``` -------------------------------- ### Install a pip package using environment variable for version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a Python pip package using a version number defined in an environment variable. This allows for dynamic version selection. ```bash CHECKOV_VERSION=2.4.7 install-pip checkov ``` ```bash export CHECKOV_VERSION=2.4.7 install-pip checkov ``` -------------------------------- ### Install Custom Root CA at Buildtime Source: https://github.com/containerbase/base/blob/main/docs/custom-root-ca.md Use this method to add a custom root CA certificate during the image build process. Copy the certificate file and run `update-ca-certificates`. ```Dockerfile FROM containerbase/base COPY my-root-ca.crt /usr/local/share/ca-certificates/my-root-ca.crt RUN update-ca-certificates ``` -------------------------------- ### Install a gem package using environment variable for version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs a Ruby gem package using a version number defined in an environment variable. This method is useful for flexible version control. ```bash RAKE_VERSION=13.0.6 install-gem rake ``` ```bash export RAKE_VERSION=13.0.6 install-gem rake ``` -------------------------------- ### Install an npm package using environment variable for version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Installs an npm package using a version number specified via an environment variable. This provides flexibility in managing package versions. ```bash DEL_CLI_VERSION=5.0.0 install-npm del-cli ``` ```bash export DEL_CLI_VERSION=5.0.0 install-npm del-cli ``` -------------------------------- ### Uninstall All Node Versions Recursively Source: https://github.com/containerbase/base/blob/main/docs/tools.md Remove all installed versions of Node.js and their associated child tools. ```bash uninstall-tool node --recursive --all ``` -------------------------------- ### Uninstall All Gem Versions Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to remove all installed versions of the 'rake' gem. ```bash uninstall-gem rake --all ``` -------------------------------- ### Set Containerbase CDN URL Source: https://github.com/containerbase/base/blob/main/docs/cdn.md Set the CONTAINERBASE_CDN environment variable to your desired CDN URL before using containerbase tools. This ensures that all tool installations and fetches are directed through the CDN. ```bash export CONTAINERBASE_CDN=https://cdn.example.test install-tool java ``` -------------------------------- ### Uninstall All Npm Package Versions Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to remove all installed versions of the 'del-cli' npm package. ```bash uninstall-npm del-cli --all ``` -------------------------------- ### Uninstall All Pip Package Versions Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to remove all installed versions of the 'checkov' pip package. ```bash uninstall-pip checkov --all ``` -------------------------------- ### Nuget Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Nuget command-line tools and metadata. ```txt https://dist.nuget.org/win-x86-commandline/v6.14.1/nuget.exe https://dist.nuget.org/tools.json ``` -------------------------------- ### Golang Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Golang releases, including pre-built archives, checksums, and version metadata. ```txt https://github.com/containerbase/golang-prebuild/releases/download/1.22.5/golang-1.22.5-x86_64.tar.xz.sha512 https://github.com/containerbase/golang-prebuild/releases/download/1.22.5/golang-1.22.5-x86_64.tar.xz https://github.com/containerbase/golang-prebuild/releases/download/1.22.5/golang-1.22.5-aarch64.tar.xz.sha512 https://github.com/containerbase/golang-prebuild/releases/download/1.22.5/golang-1.22.5-aarch64.tar.xz https://go.dev/dl/?mode=json&include=all https://dl.google.com/go/go1.21.6.linux-arm64.tar.gz https://dl.google.com/go/go1.17.5.linux-amd64.tar.gz ``` -------------------------------- ### Prepare all available tools Source: https://github.com/containerbase/base/blob/main/docs/tools.md This command prepares all tools that Containerbase supports within the container. It's a convenient way to set up the environment for multiple tools at once. ```bash prepare-tool all ``` -------------------------------- ### PowerShell Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for PowerShell releases, including tarballs for different architectures and checksums. ```txt https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell-7.4.1-linux-arm64.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell-7.4.1-linux-x64.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/hashes.sha256 ``` -------------------------------- ### Prepare a specific tool Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to prepare a single tool into the container. It creates necessary directories, files, and links for the tool. ```bash prepare-tool node ``` -------------------------------- ### Erlang Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Erlang pre-built releases, including tarballs and checksums. ```txt https://github.com/containerbase/erlang-prebuild/releases/download/25.3.2.8/erlang-25.3.2.8-jammy-x86_x64.tar.xz.sha512 https://github.com/containerbase/erlang-prebuild/releases/download/25.3.2.8/erlang-25.3.2.8-jammy-x86_x64.tar.xz ``` -------------------------------- ### Mono Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Mono releases, including tarballs and checksums for different architectures. ```txt https://github.com/containerbase/mono-prebuild/releases/download/6.14.1/mono-6.14.1-jammy-x86_x64.tar.xz.sha512 https://github.com/containerbase/mono-prebuild/releases/download/6.14.1/mono-6.14.1-jammy-x86_x64.tar.xz https://github.com/containerbase/mono-prebuild/releases/download/6.14.1/mono-6.14.1-jammy-aarch64.tar.xz.sha512 https://github.com/containerbase/mono-prebuild/releases/download/6.14.1/mono-6.14.1-jammy-aarch64.tar.xz https://github.com/containerbase/mono-prebuild/releases/latest/download/version ``` -------------------------------- ### Gleam Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Gleam releases, including tarballs and checksums for different architectures. ```txt https://github.com/gleam-lang/gleam/releases/download/v0.34.1/gleam-v0.34.1-aarch64-unknown-linux-musl.tar.gz https://github.com/gleam-lang/gleam/releases/download/v0.34.1/gleam-v0.34.1-aarch64-unknown-linux-musl.tar.gz.sha512 https://github.com/gleam-lang/gleam/releases/download/v0.34.1/gleam-v0.34.1-x86_64-unknown-linux-musl.tar.gz https://github.com/gleam-lang/gleam/releases/download/v0.34.1/gleam-v0.34.1-x86_64-unknown-linux-musl.tar.gz.sha512 ``` -------------------------------- ### Flutter Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Flutter pre-built releases, including tarballs and checksums for different architectures. ```txt https://github.com/containerbase/flutter-prebuild/releases/download/3.13.7/flutter-3.13.7-x86_64.tar.xz https://github.com/containerbase/flutter-prebuild/releases/download/3.13.7/flutter-3.13.7-x86_64.tar.xz.sha512 https://github.com/containerbase/flutter-prebuild/releases/download/3.13.7/flutter-3.13.7-aarch64.tar.xz https://github.com/containerbase/flutter-prebuild/releases/download/3.13.7/flutter-3.13.7-aarch64.tar.xz.sha512 ``` -------------------------------- ### Git LFS Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URL for Git LFS releases for Linux AMD64. ```txt https://github.com/git-lfs/git-lfs/releases/download/v3.4.1/git-lfs-linux-amd64-v3.4.1.tar.gz ``` -------------------------------- ### Flux Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Flux releases, including tarballs for different architectures. ```txt https://github.com/fluxcd/flux2/releases/download/v0.19.0/flux_0.19.0_linux_amd64.tar.gz https://github.com/fluxcd/flux2/releases/download/v2.1.0/flux_2.1.0_linux_arm64.tar.gz ``` -------------------------------- ### OpenTofu Release URLs Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for OpenTofu releases, specifying different operating systems and architectures. ```txt https://github.com/opentofu/opentofu/releases/download/v1.10.6/tofu_1.10.6_linux_amd64.tar.gz https://github.com/opentofu/opentofu/releases/download/v1.10.6/tofu_1.10.6_linux_arm64.tar.gz ``` -------------------------------- ### Elixir Release Samples Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Elixir releases, including precompiled archives for different OTP versions. ```txt https://github.com/elixir-lang/elixir/releases/download/v1.16.0/elixir-otp-24.zip https://github.com/elixir-lang/elixir/releases/download/v1.14.0/elixir-otp-23.zip https://github.com/elixir-lang/elixir/releases/download/v1.13.0/Precompiled.zip ``` -------------------------------- ### Vendir Release URL Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URL for a vendir release, specifying the operating system and architecture. ```txt https://github.com/vmware-tanzu/carvel-vendir/releases/download/v0.22.0/vendir-linux-amd64 ``` -------------------------------- ### Configure Apt Proxy Source: https://github.com/containerbase/base/blob/main/README.md Build a Docker image with an apt proxy configured. The APT_HTTP_PROXY build argument is used to specify the proxy URL. ```sh docker build --build-arg APT_HTTP_PROXY=https://apt.company.com . -t my/image ``` -------------------------------- ### Wally Release URLs Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Sample download URLs for Wally releases, including checksum and the release archive. ```txt https://github.com/containerbase/wally-prebuild/releases/download/0.3.2/wally-0.3.2-jammy-x86_x64.tar.xz.sha512 https://github.com/containerbase/wally-prebuild/releases/download/0.3.2/wally-0.3.2-jammy-x86_x64.tar.xz ``` -------------------------------- ### Configure Custom Registries with Dockerfile Source: https://github.com/containerbase/base/blob/main/docs/custom-registries.md Use URL_REPLACE environment variables in your Dockerfile to redirect download sources for tools. Ensure the FROM and TO variables have matching numbers. The variables are processed in numerical order. ```dockerfile FROM containerbase/base ENV URL_REPLACE_5_FROM=https://storage.googleapis.com/dart-archive/channels/stable/release/ ENV URL_REPLACE_5_TO=https://artifactory.proxy.test/virtual/dart-archive/ ENV URL_REPLACE_0_FROM=https://download.docker.com/linux/static/stable/ ENV URL_REPLACE_0_TO=https://artifactory.proxy.test/virtual/docker-com/ # renovate: datasource=github-releases packageName=moby/moby RUN install-tool docker v24.0.2 # renovate: datasource=docker RUN install-tool dart 2.18.0 ``` -------------------------------- ### Basic Go Error Handling Idiom Source: https://github.com/containerbase/base/blob/main/test/golang/test/d/vendor/github.com/pkg/errors/README.md Illustrates the traditional error handling pattern in Go, which can lead to a lack of context. ```Go if err != nil { return err } ``` -------------------------------- ### Build Base Docker Image (Ignore Cache) Source: https://github.com/containerbase/base/blob/main/README.md Build the containerbase/base Docker image while ignoring the remote cache. This can speed up local builds. ```sh docker buildx bake --set *.cache-from= ``` -------------------------------- ### Run Resolute Distro Tests Source: https://github.com/containerbase/base/blob/main/README.md Run tests for the Ubuntu 'resolute' distro. This command uses the test/Dockerfile.distro and sets the TAG environment variable to 'resolute'. ```sh TAG=resolute docker buildx bake test-distro ``` -------------------------------- ### Run Jammy Distro Tests Source: https://github.com/containerbase/base/blob/main/README.md Run tests for the Ubuntu 'jammy' distro. This command uses the test/Dockerfile.distro and sets the TAG environment variable to 'jammy'. ```sh TAG=jammy docker buildx bake test-distro ``` -------------------------------- ### Dockerfile for Custom User Name and ID Source: https://github.com/containerbase/base/blob/main/docs/custom-base-image.md This Dockerfile allows customization of the username and user ID. It uses build arguments `USER_NAME` and `USER_ID` for flexibility. Ensure the user ID is numeric for compatibility with OpenShift. ```dockerfile # This containerbase is used for tool intallation and user/directory setup FROM containerbase/base AS containerbase FROM amd64/ubuntu:noble AS base # The containerbase supports custom user ARG USER_NAME=custom ARG USER_ID=1005 # Allows custom apt proxy usage ARG APT_HTTP_PROXY # Set env and shell ENV BASH_ENV=/usr/local/etc/env ENV=/usr/local/etc/env PATH=/home/$USER_NAME/bin:$PATH SHELL ["/bin/bash" , "-c"] # This entry point ensures that dumb-init is run ENTRYPOINT [ "docker-entrypoint.sh" ] CMD [ "bash" ] # Optional: Add custom root certificate, should come before `install-containerbase` COPY my-root-ca.crt /usr/local/share/ca-certificates/my-root-ca.crt # Set up containerbase COPY --from=containerbase /usr/local/sbin/ /usr/local/sbin/ COPY --from=containerbase /usr/local/containerbase/ /usr/local/containerbase/ RUN install-containerbase # renovate: datasource=github-tags packageName=git/git RUN install-tool git v2.30.0 # renovate: datasource=github-releases packageName=containerbase/node-prebuild versioning=node RUN install-tool node 20.9.0 # renovate: datasource=npm versioning=npm RUN install-tool yarn 1.22.10 WORKDIR /usr/src/app # must be numeric if this should work with openshift USER 1005 ``` -------------------------------- ### Uninstall All Versions of a Tool Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to uninstall all versions of a specified tool, such as 'jb'. ```bash uninstall-tool jb --all ``` -------------------------------- ### Run Noble Distro Tests Source: https://github.com/containerbase/base/blob/main/README.md Run tests for the Ubuntu 'noble' distro. This command uses the test/Dockerfile.distro and sets the TAG environment variable to 'noble'. ```sh TAG=noble docker buildx bake test-distro ``` -------------------------------- ### Run Java Tests Source: https://github.com/containerbase/base/blob/main/README.md Execute the Java tests located in the test/java directory. The TAG environment variable is set to 'java'. ```sh TAG=java docker buildx bake test ``` -------------------------------- ### Adding Context to an Error with errors.Wrap Source: https://github.com/containerbase/base/blob/main/test/golang/test/d/vendor/github.com/pkg/errors/README.md Demonstrates how to use errors.Wrap to add contextual information to an existing error. This is useful for debugging and understanding the error path. ```Go _, err := ioutil.ReadAll(r) if err != nil { return errors.Wrap(err, "read failed") } ``` -------------------------------- ### Build Base Docker Image Source: https://github.com/containerbase/base/blob/main/README.md Rebuild the containerbase/base Docker image after making changes to the source code or Dockerfile. This command uses buildx bake. ```sh pnpm build docker buildx bake ``` -------------------------------- ### Retrieving the Cause of an Error Source: https://github.com/containerbase/base/blob/main/test/golang/test/d/vendor/github.com/pkg/errors/README.md Shows how to use errors.Cause to recursively retrieve the original error from a wrapped error stack. This is useful for inspecting the root cause of an error. ```Go type causer interface { Cause() error } ``` ```Go switch err := errors.Cause(err).(type) { case *MyError: // handle specifically default: // unknown error } ``` -------------------------------- ### Dockerfile for Custom Primary Group ID Source: https://github.com/containerbase/base/blob/main/docs/custom-base-image.md This Dockerfile demonstrates how to set a custom primary group ID using the `PRIMARY_GROUP_ID` build argument. This is necessary for environments like Gitpod where a specific group ID is required. The group must exist prior to this step. ```dockerfile # This containerbase is used for tool intallation and user/directory setup FROM containerbase/base AS containerbase FROM amd64/ubuntu:noble AS base ARG USER_NAME=gitpod ARG USER_ID=33333 ARG PRIMARY_GROUP_ID=33333 # Set env and shell ENV BASH_ENV=/usr/local/etc/env ENV=/usr/local/etc/env PATH=/home/$USER_NAME/bin:$PATH SHELL ["/bin/bash" , "-c"] # This entry point ensures that dumb-init is run ENTRYPOINT [ "docker-entrypoint.sh" ] CMD [ "bash" ] # Set up containerbase COPY --from=containerbase /usr/local/sbin/ /usr/local/sbin/ COPY --from=containerbase /usr/local/containerbase/ /usr/local/containerbase/ RUN install-containerbase # renovate: datasource=github-tags packageName=git/git RUN install-tool git v2.30.0 USER $USER_NAME ``` -------------------------------- ### Uninstall Node Version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Use this command to uninstall a specific version of a Node.js tool. ```bash uninstall-tool node 14.17.0 ``` -------------------------------- ### Uninstall Node Version Recursively Source: https://github.com/containerbase/base/blob/main/docs/tools.md Uninstall a specific Node.js tool version and all its child dependencies. ```bash uninstall-tool node 14.17.0 --recursive ``` -------------------------------- ### Uninstall Gem Version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Command to uninstall a specific version of the 'rake' gem. ```bash uninstall-gem rake 13.0.6 ``` -------------------------------- ### Uninstall Pip Package Version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Command to uninstall a specific version of the 'checkov' pip package. ```bash uninstall-pip checkov 2.4.7 ``` -------------------------------- ### Uninstall Npm Package Version Source: https://github.com/containerbase/base/blob/main/docs/tools.md Command to uninstall a specific version of the 'del-cli' npm package. ```bash uninstall-npm del-cli 5.0.0 ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.