{"id":13423637,"url":"https://github.com/canonical/multipass","last_synced_at":"2025-05-12T13:18:53.478Z","repository":{"id":37450996,"uuid":"114128199","full_name":"canonical/multipass","owner":"canonical","description":"Multipass orchestrates virtual Ubuntu instances","archived":false,"fork":false,"pushed_at":"2025-05-12T13:08:08.000Z","size":40530,"stargazers_count":8279,"open_issues_count":537,"forks_count":684,"subscribers_count":119,"default_branch":"main","last_synced_at":"2025-05-12T13:18:33.433Z","etag":null,"topics":["cloud","container","hyper-v","libvirt","linux","macos","qemu","qemu-kvm","virtual-machine","virtualbox","windows"],"latest_commit_sha":null,"homepage":"https://canonical.com/multipass","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/canonical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-13T14:05:21.000Z","updated_at":"2025-05-11T16:07:46.000Z","dependencies_parsed_at":"2023-11-20T10:41:08.128Z","dependency_job_id":"7317aaab-4573-449a-9527-5b301703c1dd","html_url":"https://github.com/canonical/multipass","commit_stats":{"total_commits":7845,"total_committers":66,"mean_commits":"118.86363636363636","dds":0.7811344805608668,"last_synced_commit":"316af4498227fce842f5cd1fd297faf7fcc683bd"},"previous_names":["canonicalltd/multipass"],"tags_count":126,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fmultipass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fmultipass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fmultipass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Fmultipass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canonical","download_url":"https://codeload.github.com/canonical/multipass/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253745196,"owners_count":21957319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","container","hyper-v","libvirt","linux","macos","qemu","qemu-kvm","virtual-machine","virtualbox","windows"],"created_at":"2024-07-31T00:00:39.437Z","updated_at":"2025-05-12T13:18:53.421Z","avatar_url":"https://github.com/canonical.png","language":"C++","readme":"# What is Multipass?\n\nMultipass is a lightweight VM manager for Linux, Windows and macOS. It's designed for developers who want to spin up a fresh Ubuntu environment with a single command. It uses KVM on Linux, Hyper-V on Windows and QEMU on macOS to run virtual machines with minimal overhead. It can also use VirtualBox on Windows and macOS. Multipass will fetch Ubuntu images for you and keep them up to date.\n\nSince it supports metadata for cloud-init, you can simulate a small cloud deployment on your laptop or workstation.\n\n## Project status\n\n| Service | Status |\n|-----|:---|\n| [CI](https://github.com/canonical/multipass/actions) |  [![Build Status][gha-image]][gha-url]  |\n| [Snap](https://snapcraft.io/) |  [![Build Status][snap-image]][snap-url]  |\n| [Codecov](https://codecov.io/) |  [![Codecov Status][codecov-image]][codecov-url]  |\n\n# Installation\n\n* On **Linux**, Multipass is available as a snap:\n\n  ```\n  sudo snap install multipass\n  ```\n\n* On **macOS**, download the installer [from GitHub](https://github.com/canonical/multipass/releases).\n\n  Alternatively, you can use [Homebrew](https://github.com/Homebrew/brew). Please note that this method is **not officially supported**, as it is not maintained by the Multipass team, but by the community. Multipass is available as a cask:\n\n  ```\n  brew install --cask multipass\n  ```\n  \n  Please note that you may be required to enter your password for some sudo operations during installation. You may also need to disable the firewall to launch a multipass instance successfully on macOS.\n\n* On **Windows**, download the installer [from GitHub](https://github.com/canonical/multipass/releases).\n\nFor more information, see [How to install Multipass](https://canonical.com/multipass/docs/install-multipass).\n\n# Usage\n\nHere are some pointers to get started with Multipass. For a more comprehensive learning experience, please check out the Multipass [Tutorial](https://canonical.com/multipass/docs/tutorial).\n\n## Find available images\n\n```\n$ multipass find\n\nImage                       Aliases           Version          Description\n20.04                       focal             20240731         Ubuntu 20.04 LTS\n22.04                       jammy             20240808         Ubuntu 22.04 LTS\n24.04                       noble,lts         20240806         Ubuntu 24.04 LTS\n\nBlueprint                   Aliases           Version          Description\nanbox-cloud-appliance                         latest           Anbox Cloud Appliance\ncharm-dev                                     latest           A development and testing environment for charmers\ndocker                                        0.4              A Docker environment with Portainer and related tools\njellyfin                                      latest           Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media.\nminikube                                      latest           minikube is local Kubernetes\nros-noetic                                    0.1              A development and testing environment for ROS Noetic.\nros2-humble                                   0.1              A development and testing environment for ROS 2 Humble.\n```\n\n## Launch a fresh instance of the current Ubuntu LTS\n\n```\n$ multipass launch lts\n\nLaunched: dancing-chipmunk\n```\n\n## Check out the running instances\n\n```\n$ multipass list\n\nName                    State             IPv4             Image\ndancing-chipmunk        Running           192.168.64.8     Ubuntu 24.04 LTS\nphlegmatic-bluebird     Stopped           --               Ubuntu 22.04 LTS\ndocker                  Running           192.168.64.11    Ubuntu 22.04 LTS\n                                          172.17.0.1               \n```\n\n## Learn more about an instance\n\n```\n$ multipass info dancing-chipmunk\n\nName:           dancing-chipmunk\nState:          Running\nSnapshots:      0\nIPv4:           192.168.64.8\nRelease:        Ubuntu 24.04 LTS\nImage hash:     e2608bfdbc44 (Ubuntu 24.04 LTS)\nCPU(s):         1\nLoad:           5.70 4.58 2.63\nDisk usage:     3.3GiB out of 4.8GiB\nMemory usage:   769.0MiB out of 953.0MiB\nMounts:         --\n```\n\n## Connect to a running instance\n\n```\n$ multipass shell dancing-chipmunk\n\nWelcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-39-generic aarch64)\n...\n```\n\nDon't forget to logout (or Ctrl-D) or you may find yourself heading all the way down Inception levels... ;)\n\n## Run commands inside an instance from outside\n\n```\n$ multipass exec dancing-chipmunk -- lsb_release -a\n\nNo LSB modules are available.\nDistributor ID:  Ubuntu\nDescription:     Ubuntu 24.04 LTS\nRelease:         24.04\nCodename:        noble\n```\n\n## Stop an instance to save resources\n\n```\n$ multipass stop dancing-chipmunk\n```\n\n## Delete an instance\n\n```\n$ multipass delete dancing-chipmunk\n```\n\nThe instance will now show up as deleted:\n\n```\n$ multipass list\n\nName                    State             IPv4             Image\ndancing-chipmunk        Deleted           --               Ubuntu 24.04 LTS\nphlegmatic-bluebird     Stopped           --               Ubuntu 22.04 LTS\ndocker                  Running           192.168.64.11    Ubuntu 22.04 LTS\n                                          172.17.0.1               \n```\n\nIf you want to completely get rid of it:\n\n```\n$ multipass purge\n```\n\n## Get help\n\n```\nmultipass help\nmultipass help \u003ccommand\u003e\n```\n\n# Start developing Multipass\n\nHere's a set of steps to build the Multipass source code on Linux.\n\nPlease note that these instructions do not support building packages for macOS or Windows systems.\n\nNote: if building on arm, s390x, ppc64le, or riscv, environment variable `VCPKG_FORCE_SYSTEM_BINARIES` must be set:\n\n```\nexport VCPKG_FORCE_SYSTEM_BINARIES=1\n```\n\n## Build dependencies\n\n```\ncd \u003cmultipass\u003e\nsudo apt install devscripts equivs\nmk-build-deps -s sudo -i\n```\n\n## Build Multipass\n\n```\ncd \u003cmultipass\u003e\ngit submodule update --init --recursive\nmkdir build\ncd build\ncmake ../\nmake\n```\n\nPlease note that if you're working on a forked repository that you created using the \"Copy the main branch only\" option, the repository will not include the necessary git tags to determine the Multipass version during CMake configuration. In this case, you need to manually fetch the tags from the upstream by running `git fetch --tags https://github.com/canonical/multipass.git` in the `\u003cmultipass\u003e` source code directory. \n\n### Automatic linker selection\n\n***Requires (\u003e= CMake 3.29)***\n\nTo accelerate the build, the build system will attempt to locate and utilize `mold` or `lld` (respectively) in place of the default linker of the toolchain. To override, set [CMAKE_LINKER_TYPE](https://cmake.org/cmake/help/latest/variable/CMAKE_LINKER_TYPE.html#cmake-linker-type) at CMake configure step.\n\n## Run the Multipass daemon and client\n\nFirst, install Multipass's runtime dependencies. On AMD64 architecture, you can do this with:\n\n```\nsudo apt update\nsudo apt install libgl1 libpng16-16 libqt6core6 libqt6gui6 \\\n    libqt6network6 libqt6widgets6 libxml2 libvirt0 dnsmasq-base \\\n    dnsmasq-utils qemu-system-x86 qemu-utils libslang2 iproute2 \\\n    iptables iputils-ping libatm1 libxtables12 xterm\n```\n\nThen run the Multipass daemon:\n\n```\nsudo \u003cmultipass\u003e/build/bin/multipassd \u0026\n```\n\nCopy the desktop file that Multipass clients expect to find in your home:\n\n```\nmkdir -p ~/.local/share/multipass/\ncp \u003cmultipass\u003e/data/multipass.gui.autostart.desktop ~/.local/share/multipass/\n```\n\nOptionally, enable auto-complete in Bash:\n\n```\nsource \u003cmultipass\u003e/completions/bash/multipass\n```\n\nNow you can use the `multipass` command from your terminal (for example `\u003cmultipass\u003e/build/bin/multipass launch --name foo`) or launch the GUI client with the command `\u003cmultipass\u003e/build/bin/multipass.gui`.\n\n# Contributing guidelines\n\nThe Multipass team appreciates contributions to the project, through pull requests, issues, or discussions and questions on the [Discourse forum](https://discourse.ubuntu.com/c/multipass/21).\n\nPlease read the following guidelines carefully before contributing to the project.\n\n## Code of Conduct\n\nWhen contributing, you must adhere to the [Code of Conduct](https://ubuntu.com/community/ethos/code-of-conduct).\n\n## Copyright\n\nThe code in this repository is licensed under GNU General Public License v3.0. See [LICENSE](https://github.com/canonical/multipass/blob/main/LICENSE) for more information.\n\n## License agreement\n\nAll contributors must sign the [Canonical contributor license agreement (CLA)](https://ubuntu.com/legal/contributors), which gives Canonical permission to use the contributions. Without the CLA, contributions cannot be accepted.\n\n## Pull requests\n\nChanges to this project should be proposed as pull requests. Proposed changes will then go through review and once approved, be merged into the main branch.\n\n# Additional information\n\n[Multipass documentation](https://canonical.com/multipass/docs)\n\n[gha-image]: https://github.com/canonical/multipass/workflows/Linux/badge.svg?branch=main\n[gha-url]: https://github.com/canonical/multipass/actions?query=branch%3Amain+workflow%3ALinux\n[snap-image]: https://snapcraft.io/multipass/badge.svg\n[snap-url]: https://snapcraft.io/multipass\n[codecov-image]: https://codecov.io/gh/canonical/multipass/branch/main/graph/badge.svg\n[codecov-url]: https://codecov.io/gh/canonical/multipass\n","funding_links":[],"categories":["C++","HarmonyOS","Developer Tools","\u003ca name=\"cpp\"\u003e\u003c/a\u003eC++","Platform Engineering 平台工程"],"sub_categories":["Windows Manager","Virtualization","IaaS Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fmultipass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanonical%2Fmultipass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Fmultipass/lists"}