Lima launches Linux virtual machines on macOS, with automatic file sharing, port forwarding, and containerd.

Overview

Lima: Linux-on-Mac ("macOS subsystem for Linux", "containerd for Mac")

Lima launches Linux virtual machines on macOS, with automatic file sharing, port forwarding, and containerd.

Lima can be considered as a some sort of unofficial "macOS subsystem for Linux", or "containerd for Mac".

Automatic file sharing

Automatic port forwarding

Built-in support for containerd

Intel on Intel

ARM on Intel

ARM on ARM (untested)

Intel on ARM (untested)

Ubuntu

Fedora

Related project: sshocker (ssh with file sharing and port forwarding)

Examples

uname

$ uname -a
Darwin macbook.local 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:47 PDT 2021; root:xnu-7195.101.2~1/RELEASE_X86_64 x86_64

$ lima uname -a
Linux lima-default 5.11.0-16-generic #17-Ubuntu SMP Wed Apr 14 20:12:43 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

$ LIMA_INSTANCE=arm lima uname -a
Linux lima-arm 5.11.0-16-generic #17-Ubuntu SMP Wed Apr 14 20:10:16 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

Sharing files across macOS and Linux

some-file $ lima cat some-file files under /Users on macOS filesystem are readable from Linux $ lima sh -c 'echo "/tmp/lima is writable from both macOS and Linux" > /tmp/lima/another-file' $ cat /tmp/lima/another-file /tmp/lima is writable from both macOS and Linux" ">
$ echo "files under /Users on macOS filesystem are readable from Linux" > some-file

$ lima cat some-file
files under /Users on macOS filesystem are readable from Linux

$ lima sh -c 'echo "/tmp/lima is writable from both macOS and Linux" > /tmp/lima/another-file'

$ cat /tmp/lima/another-file
/tmp/lima is writable from both macOS and Linux"

Running containerd containers (compatible with Docker containers)

$ lima nerdctl run -d --name nginx -p 127.0.0.1:8080:80 nginx:alpine

http://127.0.0.1:8080 is accessible from both macOS and Linux.

NOTE Privileged ports (0-1023) cannot be forwarded

For the usage of containerd and nerdctl (contaiNERD ctl), visit https://github.com/containerd/containerd and https://github.com/containerd/nerdctl.

Getting started

Requirements (Intel Mac)

  • coreutils (for realpath command) (brew install coreutils)

  • QEMU (brew install qemu)

  • Run the following commands to enable --accel=hvf:

com.apple.vm.hypervisor com.apple.security.hypervisor EOF codesign -s - --entitlements entitlements.xml --force /usr/local/bin/qemu-system-x86_64 ">
cat >entitlements.xml <<EOF




    
    com.apple.vm.hypervisor
    
    
    com.apple.security.hypervisor
    


EOF

codesign -s - --entitlements entitlements.xml --force /usr/local/bin/qemu-system-x86_64

Requirements (ARM Mac)

NOTE Lima is not tested on ARM Mac.

Install

Download the binary archive from https://github.com/AkihiroSuda/lima/releases , and extract it under /usr/local (or somewhere else).

To install from the source, run make && make install.

Usage

  • Run limactl start to start the Linux instance. The default instance name is "default". Lima automatically opens an editor (vi) for reviewing and modifying the configuration. Wait until "READY" to be printed on the host terminal.

  • Run limactl shell to launch on Linux. For the "default" instance, this command can be shortened as just lima . The lima command also accepts the instance name as the environment variable $LIMA_INSTANCE.

  • Run limactl ls to show the instances.

  • Run limactl delete to delete the instance.

  • To enable bash completion, add source <(limactl completion bash) to ~/.bash_profile.

⚠️ CAUTION: make sure to back up your data

Lima may have bugs that result in loss of data.

Make sure to back up your data before running Lima.

Especially, the following data might be easily lost:

  • Data in the shared writable directories (/tmp/lima by default), probably after hibernation of the host machine (e.g., after closing and reopening the laptop lid)
  • Data in the VM image, mostly when upgrading the version of lima

Configuration

See ./pkg/limayaml/default.TEMPLATE.yaml.

The current default spec:

  • OS: Ubuntu 21.04 (Hirsute Hippo)
  • CPU (x86_64): Haswell v4, 4 cores
  • CPU (aarch64): Cortex A72, 4 cores
  • Memory: 4 GiB
  • Disk: 100 GiB
  • Mounts: ~ (read-only), /tmp/lima (writable)
  • SSH: 127.0.0.1:60022

How it works

  • Hypervisor: QEMU with HVF accelerator
  • Filesystem sharing: reverse sshfs
  • Port forwarding: ssh -L, automated by watching /proc/net/tcp in the guest

Developer guide

Contributing to Lima

Help wanted

🙏

  • Test on ARM Mac
  • Performance optimization
  • Homebrew
  • More guest distros
  • Linux on Windows/Linux/BSD
  • GUI with system tray icon (Qt or Electron, for portability)
  • VirtFS to replace the current reverse sshfs (work has to be done on QEMU repo)
  • vsock to replace SSH (work has to be done on QEMU repo)

FAQs

"What's my login password?"

Password is disabled and locked by default. You have to use limactl shell bash (or lima bash) to open a shell.

Alternatively, you may also directly ssh into the guest: ssh -p 60022 -o NoHostAuthenticationForLocalhost=yes 127.0.0.1.

"Does Lima work on ARM Mac?"

Yes, it should work, but not tested on ARM.

"Can I run non-Ubuntu guests?"

Fedora is also known to work, see ./examples/fedora.yaml. This file can be loaded with limactl start ./examples/fedora.yaml.

An image has to satisfy the following requirements:

  • systemd
  • cloud-init
  • The following binaries to be preinstalled:
    • curl
    • sudo
  • The following binaries to be preinstalled, or installable via the package manager:
    • sshfs
    • newuidmap and newgidmap
  • apt-get or dnf (if you want to contribute support for another package manager, run git grep apt-get to find out where to modify)

"Can I run other container engines such as Podman?"

Yes, if you install it.

containerd can be stopped with systemctl --user disable --now containerd.

"Can I run Lima with a remote Linux machine?"

Lima itself does not support connecting to a remote Linux machine, but sshocker, the predecessor or Lima, provides similar features for remote Linux machines.

e.g., run sshocker -v /Users/foo:/home/foo/mnt -p 8080:80 @ to expose /Users/foo to the remote machine as /home/foo/mnt, and forward localhost:8080 to the port 80 of the remote machine.

"QEMU crashes with HV_ERROR"

You have to add com.apple.security.hypervisor entitlement to qemu-system-x86_64 binary. See Getting started.

"QEMU is slow"

  • Make sure that HVF is enabled with com.apple.security.hypervisor entitlement. See Getting started.
  • Emulating non-native machines (ARM-on-Intel, Intel-on-ARM) is slow by design.

"Port forwarding does not work"

Privileged ports (0-1023) cannot be forwarded. e.g., you have to use 8080, not 80.

error "field SSHPubKeys must be set"

Make sure you have a ssh keypair in ~/.ssh. To create:

ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa <<&1 >/dev/null

error "hostkeys_foreach failed: No such file or directory"

Make sure you have a ssh known_hosts file:

touch ~/.ssh/known_hosts

error "failed to execute script ssh: [...] Permission denied (publickey)"

If you have a ~/.ssh/config with a username overwrite for all hosts, exclude 127.0.0.1 from it. Example:

Host * !127.0.0.1
        User root

"Hints for debugging other problems?"

  • Inspect logs:
    • limactl --debug start
    • /var/log/cloud-init-output.log (inside the guest)
    • /var/log/cloud-init.log (inside the guest)
  • Make sure that you aren't mixing up tabs and spaces in the YAML.
  • If you have passphrases for any private key under ~/.ssh, you will need to have ssh-agent running.
Comments
  • Add virtfs/9p mounts, instead of sshocker/sshfs

    Add virtfs/9p mounts, instead of sshocker/sshfs

    This PR allows selecting mount type, as "9p"

    The default mount type is still as it was before.

    ~~Add mount option variable, for "rw" vs "ro"~~

    Add mount type, for "reverse-sshfs" vs "9p"

    Issue #20

    ~~QEMU with 9p-darwin patches available here:~~ ~~https://github.com/afbjorklund/homebrew-core/blob/qemu-9p-darwin/Formula/qemu.rb~~ ~~Patches from: https://github.com/willcohen/qemu/commits/v6.2.0-9p-darwin (or use HEAD)~~ ~~You can also use the latest/greatest QEMU HEAD.~~

    EDIT: The qemu in brew now supports virtfs, also for darwin systems.


    Example mount when booting with "sshfs":

    :/tmp/lima on /tmp/lima type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000,allow_other)

    Example mount when booting with "9p":

    mount1 on /tmp/lima type 9p (rw,sync,dirsync,relatime,access=client,msize=131072,trans=virtio)

    enhancement impact/changelog component/qemu component/qemu/9p 
    opened by afbjorklund 96
  • Allow RHEL-like distros below version 8

    Allow RHEL-like distros below version 8

    This MR allows you create VMs using CentOS 7

    My centos7.yaml file:

    images:
    - location: "https://cloud.centos.org/altarch/7/images/CentOS-7-x86_64-GenericCloud-2009.qcow2"
      arch: "x86_64"
      digest: "sha256:e38bab0475cc6d004d2e17015969c659e5a308111851b0e2715e84646035bdd3"
    - location: "https://cloud.centos.org/altarch/7/images/CentOS-7-aarch64-GenericCloud-2009.qcow2"
      arch: "aarch64"
      digest: "sha256:51c0222aa4bc7d966fc044eb6ce9182993a1dc398eaa595e58abd0d361439baf"
    containerd:
      system: false
      user: false
    mounts:
    - location: "~"
    - location: "/tmp/lima"
      writable: true
    firmware:
      legacyBIOS: true
    cpuType:
      # Workaround for "vmx_write_mem: mmu_gva_to_gpa XXXXXXXXXXXXXXXX failed" on Intel Mac
      # https://bugs.launchpad.net/qemu/+bug/1838390
      x86_64: "Haswell-v4
    
    enhancement priority/low 
    opened by alisson276 24
  • [Ubuntu on M1] Lima VM will not start (`EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary`)

    [Ubuntu on M1] Lima VM will not start (`EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary`)

    EDIT by @AkihiroSuda

    Update (Mar 14, 2022)

    :warning: Running recent Linux guests on M1 macOS needs Homebrew's QEMU 6.2.0_1 or later.

    Run brew upgrade to upgrade QEMU.

    Intel macOS users are NOT affected by this issue.

    For the further information, see https://github.com/lima-vm/lima/pull/734 and https://github.com/Homebrew/homebrew-core/pull/96743 .

    Old information

    Ubuntu kernel 5.13.0-35.40 (5.4.0-103.117 for 20.04 LTS) released in March 2022 is not bootable on ARM hosts:

    (~/.lima/default/serial.log)
    ...
    EFI stub: Booting Linux Kernel...
    EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary
    EFI stub: Using DTB from configuration table
    EFI stub: Exiting boot services and installing virtual address map...
    SetUefiImageMemoryAttributes - 0x000000013F500000 - 0x0000000000040000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013C190000 - 0x0000000000040000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013C140000 - 0x0000000000040000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013F4C0000 - 0x0000000000030000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013C0F0000 - 0x0000000000040000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013BCB0000 - 0x0000000000040000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013BB00000 - 0x0000000000030000 (0x0000000000000008)
    SetUefiImageMemoryAttributes - 0x000000013BAC0000 - 0x0000000000030000 (0x0000000000000008)
    (hangs here)
    

    Until the issue gets resolved, it is HIGHLY RECOMMENDED to run the following command inside the Ubuntu shell to avoid upgrading the kernel:

    sudo apt-mark hold linux-image-$(uname -r)
    

    (Make sure to unhold it when we get the fix)

    If your kernel was already upgraded and the VM does not boot, try running Lima with the following environment variable to show the video display:

    export QEMU_SYSTEM_AARCH64="qemu-system-aarch64 -display cocoa"
    

    After the display is shown, press the Esc key several times to show the GRUB prompt for choosing an older kernel. You can also mount the disk image from another instance to modify the GRUB config or rescue the data inside the image. https://github.com/lima-vm/lima/issues/712#issuecomment-1065266828

    See also https://gitlab.com/qemu-project/qemu/-/issues/899

    :pray: Help wanted for testing

    This QEMU patch may fix the issue: https://github.com/AkihiroSuda/homebrew-core/commit/177d583c741f4f50a12f326f632c54dbf169d37b (from https://gitlab.com/qemu-project/qemu/-/issues/899)

    Download qemu.rb and run brew install --build-from-source ./qemu.rb to apply the patch.

    Below is the original post by @mateka


    Description

    Today I was working in lima VM (Ubuntu 20.04; Mac M1). After a while, it has lost connection (as it often does), so I had tried to restart it. Old VM and even brand new will not start and return an error after:

    Waiting for the essential requirement 1 of 5: "ssh"

    limactl --debug start VM-name prints:

    DEBU[0171] [hostagent] executing ssh for script "ssh": /usr/bin/ssh [ssh -F /dev/null -o IdentityFile="/Users/matek/.lima/_config/user" -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o NoHostAuthenticationForLocalhost=yes -o GSSAPIAuthentication=no -o PreferredAuthentications=publickey -o Compression=no -o BatchMode=yes -o IdentitiesOnly=yes -o Ciphers="^[email protected],[email protected]" -o User=matek -o ControlMaster=auto -o ControlPath="/Users/matek/.lima/test/ssh.sock" -o ControlPersist=5m -p 52070 127.0.0.1 -- /bin/bash] DEBU[0246] [hostagent] stdout="", stderr="kex_exchange_identification: read: Connection reset by peer\r\nConnection reset by 127.0.0.1 port 52070\r\n", err=failed to execute script "ssh": stdout="", stderr="kex_exchange_identification: read: Connection reset by peer\r\nConnection reset by 127.0.0.1 port 52070\r\n": exit status 255

    Rancher Desktop seems to work.

    priority/high platform/ARM guest/ubuntu component/qemu 
    opened by mateka 23
  • Set instance name while starting

    Set instance name while starting

    Running limactl start foo.yml automatically sets the instance name to foo. It would be nice to be able to set a name different than the file name. Ex. running limactl start foo.yml --name bar would create an instance named bar.

    enhancement priority/high 
    opened by beriberikix 23
  • Support for Virtualization.Framework for macOS 13

    Support for Virtualization.Framework for macOS 13

    This PR provides support for using Virtualization.Framework as a optional driver.

    The following are the changes done related to using drivers,

    • [x] Driver interface
    • [x] Migrate current QEMU implementation to driver
    • [x] New driver vz for Virtualization.Framework

    The following are the features of lima, the vz driver should provide support for below,

    • [x] Running VM (Using both disk img and iso)*
    • [x] Slirp network for guest to host communication (uses gvisor-tap-vsock)
    • [x] Host to guest network (uses vz NAT gateway)*
    • [x] Directory sharing, supports reverse-sshfs and virtiofs (newly added)
    • [x] Port forwarding
    • [x] Host DNS resolver
    • [ ] Display (Deferring it for now as it requires runtime.LockOsThread() to be called in the beginning of hostagent start cmd)

    Notes

    • Vz driver internally converts qcow to raw image using (qemu-img convert). This is because vz only supports raw disk
    • Need to provide yaml configuration for NAT

    Know Issues

    • Serial log doesn't contain system boot logs
    • Gvisor-tap-vsock will throw some errors like [e.connection](tcpproxy:) during start-up (This is because of port 22 Forwards being tried before VM is ready) [Not a failure/blocker just info message thrown, but we can look into fixing in a follow-up to call ssh forward manually]
    • When vz vm stops, it doesn't trigger hostagent stop [Fixed]

    Testing Tested the following templates with driver: vz. All test are done on macOS 13 intel as of now.

    • [x] almalinux.yaml
    • [x] alpine.yaml
    • [x] apptainer.yaml
    • [ ] archlinux.yaml
    • [x] buildkit.yaml
    • [ ] centos-stream.yaml
    • [x] debian.yaml
    • [x] docker.yaml
    • [x] faasd.yaml
    • [x] fedora.yaml
    • [x] k3s.yaml
    • [x] k8s.yaml
    • [x] nomad.yaml
    • [ ] opensuse.yaml
    • [ ] oraclelinux.yaml
    • [x] podman.yaml
    • [ ] rocky.yaml
    • [x] ubuntu.yaml
    • [x] vmnet.yaml
    impact/changelog component/vz 
    opened by balajiv113 21
  • `host.lima.internal` should be defined *inside* running containers

    `host.lima.internal` should be defined *inside* running containers

    A note though - host.lima.internal should be defined inside running containers. That's what docker desktop has always done, it provides that name resolution. People don't really want to get to the host just from inside the lima container, they want to get to the host from inside containers they're running.

    Originally posted by @rfay in https://github.com/lima-vm/lima/discussions/389#discussioncomment-1855625

    enhancement guest/alpine 
    opened by jandubois 21
  • Replace reverse SSHFS with Samba

    Replace reverse SSHFS with Samba

    🔴 Current blocker: nls_utf8.ko is missing in openSUSE 15.3 https://bugzilla.opensuse.org/show_bug.cgi?id=1190797 🔴 I also have to rewrite this PR to make Samba non-default (https://github.com/lima-vm/lima/pull/188#discussion_r718677030)


    Replace previous PR #118 Fix #20 (Filesystem sharing)

    See the changes of docs/internal.md for the design.

    • On macOS hosts, /usr/local/sbin/samba-dot-org-smbd is used as the smbd binary. This binary can be installed with brew install samba. Apple's version of /usr/sbin/smbd cannot be used. The binary path can be overridden with $SMBD env var.

    • smbd is connected to QEMU via smb's stdio. The samba address 192.168.5.4:445 is only accessible from the guest, not from the host.

    • When the host's hostname is not present in /etc/hosts on the host filesystem, the Lima hostagent launches a mDNS to help looking up the hostname. Otherwise starting Samba takes 25 secs with "getaddrinfo failed" error. See the pkg/samba/getaddrinfoworkaround package for the further information.

    impact/changelog 
    opened by AkihiroSuda 21
  • How to install containerd with alpine-lima

    How to install containerd with alpine-lima

    It's not fully clear how to add containerd to alpine, since the scripts require systemd:

    ERRO[0018] [1 error occurred:
    	* failed to satisfy the optional requirement 1 of 2 "systemd must be available": systemd is required to run containerd, but does not seem to be available.
    Make sure that you use an image that supports systemd. If you do not want to run
    containerd, please make sure that both 'container.system' and 'containerd.user'
    are set to 'false' in the config file.
    

    Installing containerd is quite simple, but packages for "nerdctl" and "buildkit" are missing...

    provision:
      - mode: system
        script: |
          #!/bin/bash
          set -eux -o pipefail
          command -v containerd >/dev/null 2>&1 && exit 0
          apk add runc containerd cni-plugins
          sudo rc-update add containerd default
          sudo service containerd start
    

    They can be added from the tarballs, but there doesn't seem to be any support available ?

    That is, the current support is for nerdctl-full only (and not for nerdctl and buildkit archives)


    Would it be better to make custom aports, or perhaps to add support for extra archives ?

    containerd

    • https://github.com/containerd/containerd/archive/v1.5.8.tar.gz
    • https://github.com/alpinelinux/aports/tree/3.14-stable/community/containerd

    nerdctl

    • nerdctl-0.15.0-linux-amd64.tar.gz
    • nerdctl-0.15.0-linux-arm64.tar.gz

    buildkit

    • buildkit-v0.9.3.linux-amd64.tar.gz
    • buildkit-v0.9.3.linux-arm64.tar.gz
    • buildkit.confd
    • buildkit.initd

    Both lima sudo nerdctl run and lima sudo nerdctl build seem to be doing just fine...

    init-+-acpid
         |-7*[getty]
         |-sshd.pam---sshd.pam---sshd.pam-+-pstree
         |                                `-2*[sshfs---3*[{sshfs}]]
         |-supervise-daemo---lima-guestagent---7*[{lima-guestagent}]
         |-supervise-daemo---containerd---10*[{containerd}]
         |-supervise-daemo---buildkitd---8*[{buildkitd}]
         |-syslogd
         |-udevd
         `-udhcpc
    
    question guest/alpine 
    opened by afbjorklund 20
  • vmnet: Support socket_vmnet; deprecate vde_vmnet

    vmnet: Support socket_vmnet; deprecate vde_vmnet

    socket_vmnet is similar to vde_vmnet but does not depend on VDE.

    https://github.com/lima-vm/socket_vmnet

    See docs/network.md for how to create networks.yaml with socketVMNet. When both socketVMNet and vdeVMNet (deprecated) are present in the YAML, socketVMNet is chosen.


    iperf3 benchmark (host -> guest)

    Mode | Shared (NAT) | Bridged ---------------|--------------|---------- socket_vmnet | 0.66 Gbps | 1.23 Gbps vde_vmnet | 0.27 Gbps | 0.31 Gbps

    Tested on MacBook Pro 2020 (Intel), macOS 12 Lima commit 8db31e8087272da1c848d5d6d23f680004ad7d45 , socket_vmnet v1.0.0-alpha.0, vde_vmnet v0.6.0

    Known issue: the throughput of the Shared (NAT) interface can be slower when both the Shared (NAT) and the Bridged interfaces are configured

    component/vmnet impact/changelog roadmap 
    opened by AkihiroSuda 19
  • [M1 macOS] Help wanted for testing Lima with QEMU@master

    [M1 macOS] Help wanted for testing Lima with [email protected]

    Help wanted for testing https://github.com/lima-vm/lima/pull/703 on M1 macOS

    1. Install Lima v0.9.0-beta.0 or later (brew install --HEAD lima, or git clone https://github.com/lima-vm/lima.git && cd lima && make && make install)
    2. Install QEMU v6.2.0 (brew install qemu)
    3. Create instances with the following memory: 8 GiB, 4 GiB, 2 GiB.
    $ limactl start
    ? Creating an instance "default"  [Use arrows to move, type to filter]
      Proceed with the current configuration
    > Open an editor to review or modify the current configuration
      Choose another example (docker, podman, archlinux, fedora, ...)
      Exit
    
    (Change "memory: null" to "memory: 8 GiB" in the editor, and confirm that the instance works)
    $ limactl delete -f defaut
    
    1. Install QEMU master (brew install --HEAD qemu)
    2. Repeat the step 3
    help wanted good first issue priority/high platform/ARM component/qemu 
    opened by AkihiroSuda 19
  • Enable trimming of the `diffdisk`

    Enable trimming of the `diffdisk`

    The diffdisk starts out small, but grows quickly as users create and delete container images. This can become an issue on laptops with limited free space.

    I tried to enable trim support just for Alpine, for testing, but couldn't get it to work. Here is the patch I tried:

    --- pkg/cidata/cidata.TEMPLATE.d/boot/05-persistent-data-volume.sh
    +++ pkg/cidata/cidata.TEMPLATE.d/boot/05-persistent-data-volume.sh
    @@ -14,7 +14,7 @@ DATADIRS="/etc /home /tmp /usr/local /var/lib"
     if [ "$(awk '$2 == "/" {print $3}' /proc/mounts)" == "tmpfs" ]; then
            mkdir -p /mnt/data
            if [ -e /dev/disk/by-label/data-volume ]; then
    -               mount -t ext4 /dev/disk/by-label/data-volume /mnt/data
    +               mount -t ext4 -o discard /dev/disk/by-label/data-volume /mnt/data
            else
                    # Find an unpartitioned disk and create data-volume
                    DISKS=$(lsblk --list --noheadings --output name,type | awk '$2 == "disk" {print $1}')
    @@ -32,7 +32,7 @@ if [ "$(awk '$2 == "/" {print $3}' /proc/mounts)" == "tmpfs" ]; then
                                    echo 'type=83' | sfdisk --label dos /dev/"${DISK}"
                                    PART=$(lsblk --list /dev/"${DISK}" --noheadings --output name,type | awk '$2 == "part" {prin
                                    mkfs.ext4 -L data-volume /dev/"${PART}"
    -                               mount -t ext4 /dev/disk/by-label/data-volume /mnt/data
    +                               mount -t ext4 -o discard /dev/disk/by-label/data-volume /mnt/data
                                    for DIR in ${DATADIRS}; do
                                            DEST="/mnt/data$(dirname "${DIR}")"
                                            mkdir -p "${DIR}" "${DEST}"
    --- pkg/qemu/qemu.go
    +++ pkg/qemu/qemu.go
    @@ -261,7 +261,7 @@ func Cmdline(cfg Config) (string, []string, error) {
                    args = appendArgsIfNoConflict(args, "-boot", "order=c,splash-time=0,menu=on")
            }
            if diskSize, _ := units.RAMInBytes(cfg.LimaYAML.Disk); diskSize > 0 {
    -               args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio", diffDisk))
    +               args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio,discard=unmap", diffDisk))
            } else if !isBaseDiskCDROM {
                    args = append(args, "-drive", fmt.Sprintf("file=%s,if=virtio", baseDisk))
            }
    

    I've created some files via dd if=/dev/urandom of=1.bin bs=64M count=64 iflag=fullblock etc and verified the growth in diffdisk size.

    I then deleted the *.bin files and ran:

    lima-alpine:~$ sudo fstrim -v /mnt/data
    /mnt/data: 105074479104 bytes trimmed
    lima-alpine:~$ sudo fstrim -v /mnt/data
    /mnt/data: 0 bytes trimmed
    

    But the size of the disk never shrinks.

    I wonder if this is a macOS limitation, that qemu doesn't implement the sparse file logic for APFS.

    Thoughts?

    enhancement help wanted 
    opened by jandubois 19
  • `limactl list --json` now returns an array instead of newline delimited JSON

    `limactl list --json` now returns an array instead of newline delimited JSON

    Description

    Originally reported in https://github.com/abiosoft/colima/issues/572

    I don't think this was intentional, and should be fixed before the next release, as it breaks backwards compatibility.

    And I think limactl inspect should be changed accordingly for consistency.

    bug priority/high area/cli 
    opened by jandubois 0
  • support socket_vmnet for vz driver

    support socket_vmnet for vz driver

    The support for socket_vmnet is provided as mentioned over here https://github.com/lima-vm/socket_vmnet/issues/13#issuecomment-1366410910

    Note: This is done so that we can easily support QEMU based network stack in vz as well. This might have a reduced performance due to pipe of dgram <-> unix socket connection

    opened by balajiv113 2
  • build(deps): bump golang.org/x/sys from 0.3.0 to 0.4.0

    build(deps): bump golang.org/x/sys from 0.3.0 to 0.4.0

    Bumps golang.org/x/sys from 0.3.0 to 0.4.0.

    Commits
    • b60007c unix: add Uvmexp and SysctlUvmexp for NetBSD
    • b751db5 unix: gofmt hurd files after CL 459895
    • b360406 unix: support TIOCGETA on GNU/Hurd
    • 3086868 unix: regen on OpenBSD 7.2
    • 2b11e6b unix: remove Mclpool from openbsd types
    • 7c6badc unix: convert openbsd/mips64 to direct libc calls
    • 3b1fc93 unix: avoid allocations for common uses of Readv, Writev, etc.
    • 2204b66 cpu: parse /proc/cpuinfo on linux/arm64 on old kernels when needed
    • 72f772c unix: offs2lohi should shift by bits, not bytes
    • cffae8e unix: add ClockGettime on *bsd and solaris
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies go 
    opened by dependabot[bot] 0
  • Support for VBox driver

    Support for VBox driver

    This is a legacy driver for Oracle VirtualBox, x86_64 only.

    It also has support for shared folders and hostonly networks, but they are not implemented just yet (sshfs and nat only)

    Deletion does not work properly, due to the VM "registry".

    opened by afbjorklund 1
  • visualize qemu vm statistics in real-time

    visualize qemu vm statistics in real-time

    Description

    We (w/@dentrax) thought it'd be good to create a sub-command like stats which would display the VM statistics in real-time as the docker's stats command.

    # can take a VM name as an argument or will list all the VM stats if no VM name is given
    $ limactl stats <VM>
    NAME     CPUS    MEMORY    DISK
    vbox     %13     %27       %31    
    
    enhancement 
    opened by developer-guy 1
  • Virtualization.framework low Geekbench performance

    Virtualization.framework low Geekbench performance

    Description

    I've tried running Geekbench 5.4 from here on Lima using both Virtualization.framework and QEMU and on Docker Desktop using Virtualization.framework. The performance of Docker Desktop and QEMU are pretty much aligned, but Lima with VZ consistently lags behind.

    Here are the numbers I got (in all the tests the VM has access to 4 cores and 8GB of RAM):

    • Lima QEMU:
      • Single: 1672
      • Multi: 5503
    • Lima VZ:
      • Single: 1225
      • Multi: 4191
    • Docker Desktop (Virtualization.framework):
      • Single: 1655
      • Multi: 5680

    I apologize if this is a known issue or if I missed something in the configuration

    area/performance component/vz 
    opened by Sangeppato 6
Releases(v0.14.2)
  • v0.14.2(Dec 23, 2022)

    Changes

    • VZ:

      • Fix NSInvalidArgumentException on headless hosts, such as EC2 mac2.metal (#1261)
    • limactl CLI:

      • limactl start: support reading template from stdin (limactl start --name=NAME --tty=false -) (#1250, thanks to @deitch)
      • limactl info: add vmTypes []string to the JSON output (#1262)
    • Templates:

      • Arch Linux: update to 20221215.111177 (#1257)

    Full changes: https://github.com/lima-vm/lima/milestone/32?closed=1 Thanks to @deitch

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3766201229

    The sha256sum of the SHA256SUMS file itself is 682c7d5e520914cc513d8af440de9ea3608817bbb475a45e893e238b7d14d0af .

    Source code(tar.gz)
    Source code(zip)
    lima-0.14.2-Darwin-arm64.tar.gz(14.46 MB)
    lima-0.14.2-Darwin-x86_64.tar.gz(14.96 MB)
    lima-0.14.2-go-mod-vendor.tar.gz(4.07 MB)
    lima-0.14.2-Linux-aarch64.tar.gz(13.46 MB)
    lima-0.14.2-Linux-x86_64.tar.gz(13.94 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.14.1(Dec 14, 2022)

    This release fixes a regression #1242 in Lima v0.14.0: On colima, docker data, such as containers and images in /var/lib/docker were unmounted and they looked as if they were removed.

    The actual data are not removed, and can be rescued by upgrading Lima to this v0.14.1 release (or downgrading to v0.13.0).

    Only the following instances are known to have been affected:

    • colima instances
    • alpine instances that were created with Lima before v0.13.0

    The default (ubuntu) instances are unaffected.

    Changes

    • Boot scripts:
      • Check if growpart is installed before calling it (#1243, thanks to @jandubois)
    • VZ:
      • Fix nil pointer deference (#1245)
      • Validate disk format (#1245)
    • Templates:
      • Alma Linux 9: fix 404 (#1244)
    • Website:
      • Set up https://lima-vm.io/ (#1240)

    Full changes: https://github.com/lima-vm/lima/milestone/31?closed=1 Thanks to @hftsin @jandubois

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3692334791

    The sha256sum of the SHA256SUMS file itself is 11c0e020d62d8192e40249c9aa978f7dc15ea6e250aa8d66879045812b807d02 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.14.1-Darwin-arm64.tar.gz(14.47 MB)
    lima-0.14.1-Darwin-x86_64.tar.gz(14.96 MB)
    lima-0.14.1-go-mod-vendor.tar.gz(4.09 MB)
    lima-0.14.1-Linux-aarch64.tar.gz(13.46 MB)
    lima-0.14.1-Linux-x86_64.tar.gz(13.95 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.14.0(Dec 12, 2022)

    This release adds an experimental support for Apple's Virtualization.framework aka vz.

    limactl start template://experimental/vz
    

    Pros:

    Cons:

    • No support for legacy BIOS
    • The boot log is not available in serial.log
    • The source code of Virtualization.framework does not seem available

    Using Virtualization.framework with Lima needs macOS 13.0 or later. See also docs/vmtype.md.

    Changes

    • Virtualization.framework (VZ):

      • Support Virtualization.framework (#1147, etc., thanks to @balajiv113)
      • Support Rosetta for Linux (#1155, thanks to @chancez)
      • Support vzNAT networking (#1207)
    • vmnet:

      • Support detecting Homebrew's socket_vmnet path (#1220)
    • YAML:

      • Remove deprecated network and useHostResolver (#1186)
    • limactl CLI:

      • Allow using $SSH as a custom SSH binary path (#1132, thanks to @antoineco)
      • Add limactl disk (create|delete|list) commands for attaching multiple disks to instances (#1065, thanks to @sam-berning)
      • Add limactl start --timeout=<TIMEOUT> for setting custom timeout (#1143, thanks to @antoineco)
    • nerdctl:

      • Update to v1.1.0. Compose is significantly improved. (#1236)
    • Templates: (#1159, #1194, #1215, #1236)

      • Alpine: update to 3.17.0
      • Arch Linux: update to 20221201.106936
      • Debian 11: update to 20221205-1220
      • EL derivatives: update to 8.7/9.1
      • Fedora: update to 37
      • Ubuntu 22.04: update to release-20221201
      • Ubuntu 22.10: update to release-20221201
      • openSUSE Tumbleweed: switch away from "JeOS" to "Minimal-VM"
    • Misc:

      • Add Finch as an adopter of Lima (#1199, thanks to @estesp)

    Full changes: https://github.com/lima-vm/lima/milestone/29?closed=1 Thanks to @afbjorklund @antoineco @balajiv113 @chancez @chrisx8 @estesp @jandubois @pendo324 @sam-berning

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3676969854

    The sha256sum of the SHA256SUMS file itself is adcc4b9c798aba356c5c3a5140a77edf8443b8df9e195d7ba89d976ef5074ed3 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.14.0-Darwin-arm64.tar.gz(14.47 MB)
    lima-0.14.0-Darwin-x86_64.tar.gz(14.96 MB)
    lima-0.14.0-go-mod-vendor.tar.gz(4.09 MB)
    lima-0.14.0-Linux-aarch64.tar.gz(13.46 MB)
    lima-0.14.0-Linux-x86_64.tar.gz(13.95 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.14.0-beta.1(Nov 23, 2022)

    This release adds an experimental support for Apple's Virtualization.framework aka vz.

    limactl start template://experimental/vz
    

    Pros:

    • Supports faster filesystem sharing (virtiofs)
    • Supports faster emulation for running Linux/x86_64 ELF binaries on ARM (Rosetta 2)

    Cons:

    • No support for legacy BIOS
    • The boot log is not available in serial.log
    • The source code of Virtualization.framework does not seem available

    Using Virtualization.framework with Lima needs macOS 13.0 or later.

    Changes

    (To be documented) Since beta.0, the support for Rosetta was added.

    Full changes: https://github.com/lima-vm/lima/milestone/29?closed=1 Thanks to @afbjorklund @antoineco @balajiv113 @chancez @chrisx8 @jandubois @pendo324 @sam-berning

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3531739770

    The sha256sum of the SHA256SUMS file itself is daebd6289f6327f70abd14616747e906244cd3f5665b5662e93242d9b6368732 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.14.0-beta.1-Darwin-arm64.tar.gz(14.46 MB)
    lima-0.14.0-beta.1-Darwin-x86_64.tar.gz(14.95 MB)
    lima-0.14.0-beta.1-go-mod-vendor.tar.gz(4.08 MB)
    lima-0.14.0-beta.1-Linux-aarch64.tar.gz(13.46 MB)
    lima-0.14.0-beta.1-Linux-x86_64.tar.gz(13.95 MB)
    SHA256SUMS(528 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.14.0-beta.0(Nov 16, 2022)

    This release adds an experimental support for Apple's Virtualization.framework aka vz.

    limactl start template://experimental/vz
    

    Pros:

    • Supports faster filesystem sharing (virtiofs)
    • (Coming soon) Supports faster emulation for running Linux/x86_64 ELF binaries on ARM (Rosetta 2)

    Cons:

    • No support for legacy BIOS
    • The boot log is not available in serial.log
    • The source code of Virtualization.framework does not seem available

    Using Virtualization.framework with Lima needs macOS 13.0 or later.

    Changes

    (To be documented)

    Full changes: https://github.com/lima-vm/lima/milestone/29?closed=1 Thanks to @antoineco @balajiv113 @chrisx8 @jandubois @pendo324 @sam-berning

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3477558407

    The sha256sum of the SHA256SUMS file itself is 4ab2fc1128fed870a4803f1c12ebdfc58357584dc25fa31ae2547efb72c13b37 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.14.0-beta.0-Darwin-arm64.tar.gz(14.45 MB)
    lima-0.14.0-beta.0-Darwin-x86_64.tar.gz(14.95 MB)
    lima-0.14.0-beta.0-go-mod-vendor.tar.gz(4.08 MB)
    lima-0.14.0-beta.0-Linux-aarch64.tar.gz(13.46 MB)
    lima-0.14.0-beta.0-Linux-x86_64.tar.gz(13.94 MB)
    SHA256SUMS(528 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.13.0(Oct 25, 2022)

    Lima is now a CNCF Sandbox project :tada:

    The slack is now moved to the #lima channel in the CNCF Slack.

    • New account: https://slack.cncf.io/
    • Login: https://cloud-native.slack.com/

    Changes

    • nerdctl:

      • Update from v0.23.0 to v1.0.0 (#1127)
    • YAML:

      • Add "boot" provisioning script mode (#1094, thanks to @pendo324)
    • QEMU:

      • Enable trimming QEMU disks (#1102, thanks to @chrisx8)
      • Change the default securityModel of 9p (experimental) from mapped-xattr to none, for supporting symlinks, sacrificing the support for chown (#1110)
    • Templates:

      • alpine: update alpine-lima to 0.2.23, to include resize2fs and growpart (#1106, #1118, thanks to @jandubois)
      • archlinux: update update Arch Linux to 20221015.94571 (#1127)
      • debian: update Debian 11 to 20221020-1174 (#1127)
      • default, ubuntu, etc.: update Ubuntu from 22.04 to 22.10 (#1127)
      • experimental/{almalinux,centos-stream,oraclinux,rocky}-9: moved to almalinux, centos-stream, oraclelinux, rocky (#1120)
      • k8s: Update flannel from v0.19.1 to v0.20.0 (#1128, thanks to @afbjorklund)
      • podman-rootful: add podman-rootful (#1052, thanks to @afbjorklund)
      • singularity, experimental/apptainer: moved to apptainer (#1076, #1081, thanks to @afbjorklund)
      • ubuntu-lts: update Ubuntu 22.04 to release-20221018 (#1127)
    • Project:

      • Lima is now a CNCF Sandbox project (#1061, #1064)

    Full changes: https://github.com/lima-vm/lima/milestone/28?closed=1 Thanks to @Nino-K @afbjorklund @chrisx8 @jandubois @pendo324 @saltbo @vmasutin

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3322258374

    The sha256sum of the SHA256SUMS file itself is b13864b41c85112c51f24f9de41f4a4d1d7c8b1f4b56da5630484bbdfeb0c1bd .

    Source code(tar.gz)
    Source code(zip)
    lima-0.13.0-Darwin-arm64.tar.gz(12.71 MB)
    lima-0.13.0-Darwin-x86_64.tar.gz(12.93 MB)
    lima-0.13.0-go-mod-vendor.tar.gz(3.02 MB)
    lima-0.13.0-Linux-aarch64.tar.gz(12.31 MB)
    lima-0.13.0-Linux-x86_64.tar.gz(12.74 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.12.0(Sep 12, 2022)

    This release adds support for socket_vmnet and deprecates vde_vmnet.

    Mode | Shared (NAT) | Bridged ---------------|--------------|---------- socket_vmnet | 0.66 Gbps | 1.23 Gbps vde_vmnet | 0.27 Gbps | 0.31 Gbps

    ~The next major release will be probably v1.0 :tada: , and the default mount driver will be changed from reverse-sshfs to 9p: https://github.com/lima-vm/lima/issues/971 .~ (EDIT: this will probably happen after the release of QEMU 7.2: https://github.com/lima-vm/lima/issues/971#issuecomment-1278392768)


    Changes

    • nerdctl:

      • Update from v0.22.2 to v0.23.0. Features nerdctl compose run, etc. (https://github.com/lima-vm/lima/issues/1047)
    • Network:

    • YAML:

      • Deprecate non-strict YAML (https://github.com/lima-vm/lima/issues/1045)

    • Templates:

      • alpine: update alpine-lima to v0.2.21 (https://github.com/lima-vm/lima/issues/1047)
      • archlinux: update Arch Linux to v20220901.79699 (https://github.com/lima-vm/lima/issues/1047)
      • debian: update Debian 11 to release 20220816-1109 (https://github.com/lima-vm/lima/issues/1047)
      • default, ubuntu, ...: Update Ubuntu 22.04 to release 20220902 (https://github.com/lima-vm/lima/issues/1047)
      • docker-rootful: Add docker-rootful (https://github.com/lima-vm/lima/issues/1025)
      • k8s: Bug fixes (https://github.com/lima-vm/lima/issues/1035, https://github.com/lima-vm/lima/issues/1037, thanks to @afbjorklund)
      • experimental/opensuse-tumbleweed: Support aarch64 (https://github.com/lima-vm/lima/issues/1014, thanks to @replicajune)

    Full changes: https://github.com/lima-vm/lima/milestone/27?closed=1 Thanks to @afbjorklund @replicajune

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/3040193685

    The sha256sum of the SHA256SUMS file itself is 5f7accbeca07867c51b024f377177d64aef9fb5ead7f1260d62da60374e030da .

    Source code(tar.gz)
    Source code(zip)
    lima-0.12.0-Darwin-arm64.tar.gz(12.68 MB)
    lima-0.12.0-Darwin-x86_64.tar.gz(12.91 MB)
    lima-0.12.0-go-mod-vendor.tar.gz(3.01 MB)
    lima-0.12.0-Linux-aarch64.tar.gz(12.29 MB)
    lima-0.12.0-Linux-x86_64.tar.gz(12.72 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.11.3(Aug 1, 2022)

    Changes

    • nerdctl:

      • Update from v0.22.0 to v0.22.2 (#1006). The v0.22.1 release finally implements nerdctl system prune (with --all). Also fixes an issue that is related to logging in to Docker Hub via Rancher Desktop (https://github.com/rancher-sandbox/rancher-desktop/issues/2553).
    • Templates:

      • alpine: update alpine-lima to v0.2.20 (#1006)
      • archlinux: update Arch Linux to v20220801.71902 (#1006)
      • experimental/oraclelinux-9: Add experimental/oraclelinux-9 (Oracle Linux 9.0) (#1000)
      • experimental/opensuse-tumbleweed: Add experimental/opensuse-tumbleweed (openSUSE Tumbleweed) (#1005)

    Full changes: https://github.com/lima-vm/lima/milestone/25?closed=1 Thanks to @afbjorklund @jandubois

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2778508093

    The sha256sum of the SHA256SUMS file itself is 45f2deda96c72640df9deb3b8591a39f71c36e0eb1101931e3e4431c37c730f1 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.11.3-Darwin-arm64.tar.gz(12.37 MB)
    lima-0.11.3-Darwin-x86_64.tar.gz(12.57 MB)
    lima-0.11.3-go-mod-vendor.tar.gz(3.01 MB)
    lima-0.11.3-Linux-aarch64.tar.gz(12.02 MB)
    lima-0.11.3-Linux-x86_64.tar.gz(12.41 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.11.2(Jul 19, 2022)

    Lima is now known to work on NetBSD hosts with NVMM. Windows port is in progress too.

    Changes

    • nerdctl:

      • Update to v0.22.0. (#963) This release adds nerdctl (container|image|volume) prune commands. No support for nerdctl (network|system) prune yet.
    • QEMU:

      • Add USB hub (#948, thanks to @aluedeke)
    • Templates:

      • alpine: Update alpine-lima to v0.2.18 (#963)
      • archlinux:Update ArchLinux to v20220715.68480 (#963)
      • debian: Update Debian 11 to release 20220711-1073 (#963)
      • default, ubuntu, ...: Update Ubuntu 22.04 to release 20220712 (#963)
      • rocky: Update to Rocky Linux 8.6.20220702.0 (#942)
 - experimental/centos-stream-9: Update to 20220705 (#963)
      • experimental/rocky-9: Add experimental/rocky-9 (Rocky Linux 9.0) (#959)
      • apptainer: Update Apptainer to 1.0.3
    • Misc:

      • Lima is now known to work on NetBSD hosts with NVMM (#913, #914, thanks to @iamleot)
      • Windows port is in progress (thanks to @afbjorklund)

    Full changes: https://github.com/lima-vm/lima/milestone/24?closed=1 Thanks to @Nino-K @afbjorklund @aluedeke @iamleot @jandubois @jkremser

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2694869694

    The sha256sum of the SHA256SUMS file itself is 27396dc6a7636f94221875abd0be4b17f601edb7721cb30112a8735093f0fe77 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.11.2-Darwin-arm64.tar.gz(12.43 MB)
    lima-0.11.2-Darwin-x86_64.tar.gz(12.63 MB)
    lima-0.11.2-go-mod-vendor.tar.gz(2.96 MB)
    lima-0.11.2-Linux-aarch64.tar.gz(12.08 MB)
    lima-0.11.2-Linux-x86_64.tar.gz(12.47 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.11.1(Jun 19, 2022)

    This release introduces an experimental support for AlmaLinux 9 and CentOS Stream 9.

    Changes

    • nerdctl:

      • Update nerdctl to v0.21.0. This releases fixes the regression of nerdctl compose up. (#910)
    • YAML:

      • Add .[]mounts.mountPoint to support specifying a custom mount point (#867, thanks to @chancez)
      • Add .ssh.forwardX11 and .ssh.forwardX11Trusted to allow X11 forwarding (#877, thanks to @jordemort)
    • limactl CLI:

      • Expand the instance message fields during inspection (#903, thanks to @jandubois)
    • Templates

      • alpine: Update to alpine-lima v0.2.17 (Alpine Linux 3.16) (#910)
      • archlinux: Update to ArchLinux 20220615.61815 (#910)
      • centos-stream: Add centos-stream (CentOS Stream 8-20220125.1) (#901, thanks to @afbjorklund)
      • opensuse: Update to openSUSE Leap 15.4 (#890)
      • oraclelinux: Update to Oracle Linux 8.6; support ARM (#865)
      • podman: Change the VM distro from Ubuntu 22.04 (Podman 3) to Fedora 36 (Podman 4) (#876, thanks to @dmage)
      • experimental/almalinux-9: Add experimental/almalinux-9 (AlmaLinux 9.0)(#904)
      • experimental/apptainer: Add experimental/apptainer (Apptainer 1.0.2 on Rocky Linux 8.5) (#887, thanks to @afbjorklund)
      • experimental/centos-stream-9: Add experimental/centos-stream-9 (CentOS Stream 9-20220606.0) (#901, thanks to @afbjorklund)

    Full changes: https://github.com/lima-vm/lima/milestone/23?closed=1

    Thanks to @afbjorklund @chancez @davebarkerxyz @dmage @jandubois @jordemort @nl6720 @nunix

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2522953157

    The sha256sum of the SHA256SUMS file itself is 6b52aedb4eb30332e740ad834add7ee871c03fccc8427ffc9a7e10efce7c8222 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.11.1-Darwin-arm64.tar.gz(12.40 MB)
    lima-0.11.1-Darwin-x86_64.tar.gz(12.60 MB)
    lima-0.11.1-go-mod-vendor.tar.gz(2.95 MB)
    lima-0.11.1-Linux-aarch64.tar.gz(12.05 MB)
    lima-0.11.1-Linux-x86_64.tar.gz(12.44 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.11.0(May 19, 2022)

    This release adds an experimental support for RISC-V (#827): limactl start template://experimental/riscv64


    Changes

    • QEMU:

      • Experimental support for RISC-V (#827): limactl start template://experimental/riscv64
      • Look for firmware in $HOME/.local/share/qemu (#820, thanks to @jcdickinson)
    • Network:

      • Enable reverse forwarding of portForwards (#836, thanks to @afbjorklund)
    • nerdctl:

      • Update nerdctl to v0.20.0 (#859). This release adds the nerdctl builder debug command for interactive debugging of Dockerfile. https://github.com/containerd/nerdctl/blob/v0.20.0/docs/builder-debug.md
    • Templates:

      • almalinux: Update to AlmaLinux 8.6 (#860)
      • alpine: Update to Alpine-Lima 0.2.13 (#860)
      • archlinux: Update to 20220515.56564 (#860)
      • fedora, singularity: Update to Fedora 36 (#854)
      • k8s: Support Kubernetes 1.24 (#846, 818, thanks to @afbjorklund)
      • docker: Add the docker.lima wrapper, similar to the nerdctl.lima wrapper (#855, thanks to @afbjorklund)
      • podman: Add the podman.lima wrapper, similar to the nerdctl.lima wrapper (#855, thanks to @afbjorklund)

    Full changes: https://github.com/lima-vm/lima/milestone/22?closed=1

    Thanks to @afbjorklund @jandubois @jcdickinson

    Homebrew

    brew install lima https://github.com/Homebrew/homebrew-core/commit/e21a16e2d982fb5070c5f671891e667e4cb5d0d4

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2350148772

    The sha256sum of the SHA256SUMS file itself is a10530d36673adc0952df64ffaf333ae573fc8cc658e66215fd940073290ec12 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.11.0-Darwin-arm64.tar.gz(12.40 MB)
    lima-0.11.0-Darwin-x86_64.tar.gz(12.59 MB)
    lima-0.11.0-go-mod-vendor.tar.gz(2.93 MB)
    lima-0.11.0-Linux-aarch64.tar.gz(12.04 MB)
    lima-0.11.0-Linux-x86_64.tar.gz(12.43 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.10.0(Apr 25, 2022)

    This release adds experimental support for 9P to replace reverse-sshfs mounts:

    limactl start --name=default template://experimental/9p
    

    Adoption of 9P is aimed at solving the issues around stability and security of reverse-sshfs. The default mount type is still reverse-sshfs, but the default is planned to be changed to 9P in Lima v1.0.


    Changes

    • Mounts:

      • Add experimental support for 9P to replace reverse-sshfs mounts (#726, #784, #787, thanks to @afbjorklund)
      • SUpport setting sftpDriver: "openssh-sftp-server" to replace the "builtin" SFTP implementation (#804)
    • QEMU:

      • Adjust the memory size to be <= 3GB on M1 to avoid host panic (#796)
    • nerdctl:

      • Update nerdctl to v0.19.0 (#811). This release finally implements the long-wanted nerdctl cp.
    • limactl CLI:

      • limactl shell: add --shell option (#779, #780, thanks to @jandubois)
      • limactl start: template://: support subdirectories (#805)
    • YAML:

      • Support specifying .caCerts (#783, thanks to @nickpetrovic)
    • Templates:

      • Update Ubuntu from 21.10 to 22.04 (#811)

    Full changes: https://github.com/lima-vm/lima/milestone/21?closed=1 Thanks to @afbjorklund @jandubois @nickpetrovic @tdaniely-dn @tweltz @xfoxfu

    Homebrew

    brew install lima https://github.com/Homebrew/homebrew-core/commit/8bcf04872a089a0d9a7979d479b116ad8fb46d23

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2218559760

    The sha256sum of the SHA256SUMS file itself is 6fc5182eb4498660ccb5a69e42af126ee665c72bb5e6c8a604c6cfa8257b490d .

    Source code(tar.gz)
    Source code(zip)
    lima-0.10.0-Darwin-arm64.tar.gz(9.82 MB)
    lima-0.10.0-Darwin-x86_64.tar.gz(10.02 MB)
    lima-0.10.0-go-mod-vendor.tar.gz(2.92 MB)
    lima-0.10.0-Linux-aarch64.tar.gz(9.46 MB)
    lima-0.10.0-Linux-x86_64.tar.gz(9.86 MB)
    SHA256SUMS(493 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.9.2(Mar 26, 2022)

    :warning: Running recent Linux guests on M1 macOS needs Homebrew's QEMU 6.2.0_1 or later. Run brew upgrade to upgrade QEMU. Intel macOS users are NOT affected by this issue. For the further information, see https://github.com/lima-vm/lima/pull/734 and https://github.com/Homebrew/homebrew-core/pull/96743 .


    Changes

    • nerdctl

      • Update nerdctl to v0.18.0, and configure BuildKit to use the containerd worker (#756). Now nerdctl build can consume local images in FROM ... lines of Dockerfile.
    • limactl CLI:

      • Add factory-reset command (#757, thanks to @Junnplus)
    • Network:

      • Treat AAAA queries as A queries when IPv6 is disabled (#738, thanks to @jandubois)
    • Examples:

      • archlinux.yaml now supports aarch64 (ARM) architecture (#750, thanks to @mcginty)
      • Add deprecated/centos-7.yaml. This example is already deprecated on its birth. Users are suggest to use rocky.yaml or almalinux.yaml. (#720, thanks to @alisson276)

    Full changes: https://github.com/lima-vm/lima/milestone/20?closed=1 Thanks to @Junnplus @alisson276 @jandubois @mcginty

    Homebrew

    brew install lima https://github.com/Homebrew/homebrew-core/commit/eeb646b9e232c7d98c81229b6ea8491ae1fc8ccf

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/2044479172

    The sha256sum of the SHA256SUMS file itself is 5acfb83e93363ee5b9085d0e90ba5a7923e00629a0bc25234758b428f6bb94dd .

    Source code(tar.gz)
    Source code(zip)
    lima-0.9.2-Darwin-arm64.tar.gz(9.80 MB)
    lima-0.9.2-Darwin-x86_64.tar.gz(10.01 MB)
    lima-0.9.2-Linux-aarch64.tar.gz(9.45 MB)
    lima-0.9.2-Linux-x86_64.tar.gz(9.84 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.9.1(Mar 14, 2022)

    :warning: Running recent Linux guests on M1 macOS needs Homebrew's QEMU 6.2.0_1 or later. Run brew upgrade to upgrade QEMU. Intel macOS users are NOT affected by this issue. For the further information, see https://github.com/lima-vm/lima/pull/734 and https://github.com/Homebrew/homebrew-core/pull/96743 .


    Changes

    • QEMU:

      • Recommend QEMU 6.2.0_1 on M1 macOS, to support recent Linux guests (#734)
    • Project:

      • Add logo (#721 #725, thanks to @jandubois and his colleague)

    logo

    Other changes: https://github.com/lima-vm/lima/milestone/19?closed=1 Thanks to @Junnplus @jandubois

    Homebrew

    brew install Lima

    https://github.com/Homebrew/homebrew-core/commit/22a62843249edc0010f6627a52a8784d8e4ac5d4

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1979479375

    The sha256sum of the SHA256SUMS file itself is 6bc15d1e275dc2cf156579a6e65d8f5d217d57b7c5528be8959b779f14c87f40 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.9.1-Darwin-arm64.tar.gz(9.51 MB)
    lima-0.9.1-Darwin-x86_64.tar.gz(9.58 MB)
    lima-0.9.1-Linux-aarch64.tar.gz(9.06 MB)
    lima-0.9.1-Linux-x86_64.tar.gz(9.41 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.9.0(Mar 11, 2022)

    :warning: Running recent Linux guests on M1 macOS needs Homebrew's QEMU 6.2.0_1 or later. Run brew upgrade to upgrade QEMU. Intel macOS users are NOT affected by this issue. For the further information, see https://github.com/lima-vm/lima/pull/734 and https://github.com/Homebrew/homebrew-core/pull/96743 .


    Changes

    • nerdctl:

      • Update to v0.17.1 (#694)
      • Automatically upgrade existing installation of containerd/nerdctl inside the guest (#694)
      • Use fuse-overlayfs only when kernel < 5.13, and use real overlayfs on kernel >= 5.13. Instances created with an old release of Lima will continue to use fuse-overlayfs. (#695)
    • limactl CLI:

      • Support limactl start template://TEMPLATE (#674), e.g., limactl start --name=default template://docker. The template can be also chosen from TUI.
    $ limactl start
    ? Creating an instance "default"  [Use arrows to move, type to filter]
      Proceed with the current configuration
      Open an editor to review or modify the current configuration
    > Choose another example (docker, podman, archlinux, fedora, ...)
      Exit
    
    ? Choose an example  [Use arrows to move, type to filter]
    > almalinux
      alpine
      archlinux
      debian
      default
      docker
      faasd
    ...
    

    Other changes: https://github.com/lima-vm/lima/milestone/18?closed=1 Thanks to @chrisperelstein @developer-guy @deviantintegral @jandubois @jwhb @samuelkarp

    Homebrew

    brew install lima https://github.com/Homebrew/homebrew-core/commit/dfb16b662187d68a8c1b20b4f8f998d54601ae80

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1967583891

    The sha256sum of the SHA256SUMS file itself is a10848bd3bfa41b395ca54473bc82fe59081cc4e0b11f7b6c7c35a18ba633374 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.9.0-Darwin-arm64.tar.gz(9.51 MB)
    lima-0.9.0-Darwin-x86_64.tar.gz(9.57 MB)
    lima-0.9.0-Linux-aarch64.tar.gz(9.06 MB)
    lima-0.9.0-Linux-x86_64.tar.gz(9.41 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.9.0-beta.0(Mar 10, 2022)

    (Changes to be documented) https://github.com/lima-vm/lima/milestone/18?closed=1

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1962700739

    The sha256sum of the SHA256SUMS file itself is b54c393705a6e69d25bda4c3672fff25caaf8eee8a71bd0ec85394a0ec25939b .

    Source code(tar.gz)
    Source code(zip)
    lima-0.9.0-beta.0-Darwin-arm64.tar.gz(9.51 MB)
    lima-0.9.0-beta.0-Darwin-x86_64.tar.gz(9.57 MB)
    lima-0.9.0-beta.0-Linux-aarch64.tar.gz(9.06 MB)
    lima-0.9.0-beta.0-Linux-x86_64.tar.gz(9.41 MB)
    SHA256SUMS(418 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.8.3(Feb 18, 2022)

    • nerdctl:

    Note: Upgrading lima does not automatically upgrade nerdctl in the existing instances. To upgrade nerdctl, recreate a new Lima instance, or replace /usr/local/bin/nerdctl binaries in the existing instance manually:

    • https://github.com/containerd/nerdctl/releases/download/v0.17.0/nerdctl-0.17.0-linux-amd64.tar.gz (Intel)
    • https://github.com/containerd/nerdctl/releases/download/v0.17.0/nerdctl-0.17.0-linux-arm64.tar.gz (ARM)
    • Network:

      • Add portForwards.guestIPMustBeZero property to support docker run -p 0.0.0.0:... (#660, thanks to @jandubois)
      • Add static names to hostresolver (#650, thanks to @jandubois)
    • SSH:

      • Fix SSH command escaping (#633, thanks to @buu700)
    • QEMU:

      • Support overriding cpuType, e.g., Haswell-v4 (#643, #656, #662, thanks to @Junnplus and @jandubois)
    • Examples:

      • Add almalinux.yaml (#630, thanks to @reishoku)
      • podman.yaml: use connection instead of $CONTAINER_HOST (#644, thanks to @afbjorklund)
      • Split the examples to "Tier 1" and others (#634). The following yamls are in the "Tier 1" category: default.yaml, alpine.yaml, archlinux.yaml, debian.yaml, fedora.yaml, opensuse.yaml, vmnet.yaml .
    • Translation:

      • Add Japanese translation of README.md: README.ja.md (#621, thanks to @reishoku)

    Other changes: https://github.com/lima-vm/lima/milestone/17?closed=1 Thanks to @Junnplus @afbjorklund @buu700 @jandubois @reishoku

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/5e7bcfac005f9264e180aea4877685d8546bd210

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1862709672

    The sha256sum of the SHA256SUMS file itself is 1cabbfd9ab382296d9eeecdf26c25f0a1901b27ce288687a97fdd4929029a3ee .

    Source code(tar.gz)
    Source code(zip)
    lima-0.8.3-Darwin-arm64.tar.gz(9.38 MB)
    lima-0.8.3-Darwin-x86_64.tar.gz(9.45 MB)
    lima-0.8.3-Linux-aarch64.tar.gz(8.93 MB)
    lima-0.8.3-Linux-x86_64.tar.gz(9.28 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.8.2(Feb 1, 2022)

    • nerdctl:
      • Update to v0.16.1 (#619). Fixes several nerdctl login regressions.

    Note: Upgrading lima does not automatically upgrade nerdctl in the existing instances. To upgrade nerdctl, recreate a new Lima instance, or replace /usr/local/bin/nerdctl binaries in the existing instance manually:

    • https://github.com/containerd/nerdctl/releases/download/v0.16.1/nerdctl-0.16.1-linux-amd64.tar.gz (Intel)
    • https://github.com/containerd/nerdctl/releases/download/v0.16.1/nerdctl-0.16.1-linux-arm64.tar.gz (ARM)
    • SSHFS:

      • Make SSHFS caching configurable (#564, thanks to @jandubois)
      • Enable SSHFS caching by default, for compatibility with PHP applications (#606, thanks to @jandubois)
      • Avoid upgrading Arch Linux packages during installing SSHFS (#566, thanks to @Junnplus)
    • Network:

      • Use DNS and proxy settings from first interface with an IPv4 address (#570, thanks to @jandubois)
    • limactl CLI:

      • Add limactl edit command to edit the YAML (#572, thanks to @Junnplus)
      • Improve limactl start messages for copypastability (#595)
    • Examples:

      • Add ubuntu-lts.yaml (#613, thanks to @reishoku). Same as ubuntu.yaml but pinned to the LTS version.

    Other changes: https://github.com/lima-vm/lima/milestone/16?closed=1 Thanks to @Junnplus @afbjorklund @developer-guy @ericpromislow @jandubois @jsoref @reishoku

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/4e19a277c7e38798d9b41fa723fd69f0feabcfad

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1776154960

    The sha256sum of the SHA256SUMS file itself is b6438973dbc201edb3581a7ce01beb5320f87f3d8998e951945d9a6c05f1e02d .

    Source code(tar.gz)
    Source code(zip)
    lima-0.8.2-Darwin-arm64.tar.gz(9.38 MB)
    lima-0.8.2-Darwin-x86_64.tar.gz(9.44 MB)
    lima-0.8.2-Linux-aarch64.tar.gz(8.93 MB)
    lima-0.8.2-Linux-x86_64.tar.gz(9.28 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.8.1(Jan 13, 2022)

    • nerdctl: update to v0.16.0 (#548)

    • Guest agent:

      • Automatically sync hwclock (#490, thanks to @mikluko)
    • SSHFS:

      • Disable cache to fix https://github.com/abiosoft/colima/issues/99 (#538, thanks to @rfay)
      • Optional support for following symlinks (needs .[]mounts.sshfs.followSymlinks to be true) (#495, thanks to @byepolr)
    • Network:

      • Replace localhost in proxy settings with gateway address (#508, thanks to @jandubois)
      • Disable IPv6 host resolver by default (#547)
    • QEMU:

      • Improve x86_64 emulation on aarch64 platform (#471, thanks to @gayanper)
      • aarch64: Switch from EHCI to XHCI (#497, thanks to @byepolr)
    • Examples:

      • Improve examples/k8s.yaml (#513, #522, #534, #536, thanks to @afbjorklund)
      • Update examples/debian.yaml (#520, thanks to @reishoku)
      • Don't set .ssh.localPort in examples (#517, thanks to @jandubois)

    Other changes: https://github.com/lima-vm/lima/milestone/15?closed=1 Thanks to @afbjorklund @ain @byepolr @gayanper @jandubois @mikluko @reishoku @rfay

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/a302dcbe5ca6c35d3271cf4b09b96894ceafe677

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1691505802

    The sha256sum of the SHA256SUMS file itself is 4b4b3ebb6899127cc2736b224d041d8b7338260a72e5750b034e67b4733f8af4 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.8.1-Darwin-arm64.tar.gz(9.37 MB)
    lima-0.8.1-Darwin-x86_64.tar.gz(9.44 MB)
    lima-0.8.1-Linux-aarch64.tar.gz(8.92 MB)
    lima-0.8.1-Linux-x86_64.tar.gz(9.27 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.8.0(Dec 14, 2021)

    • nerdctl: Update to v0.15.0 (#479)

    • YAML:

      • Support global default.yaml and override.yaml (#436, thanks to @jandubois)
      • Add message field to show custom messages to the user (#472, thanks to @afbjorklund)
    $ limactl start /usr/local/share/doc/lima/examples/docker.yaml
    ...
    INFO[0122] READY. Run `limactl shell docker` to open the shell. 
    INFO[0122] To run `docker` on the host (assumes docker-cli is installed): 
    INFO[0122] $ export DOCKER_HOST=unix:///Users/foo/.lima/docker/sock/docker.sock 
    INFO[0122] $ docker ...
    
    • Shell:

      • Change the default prompt color from green to lime (#433, thanks to @afbjorklund)
      • Add $COLORTERM to the lima shell environment (#435, thanks to @afbjorklund)
    • Examples:

      • Replace examples/centos.yaml with examples/rocky.yaml (#448)
      • Add examples/faasd.yaml (#441, thanks to @jsiebens)

    Other changes: https://github.com/lima-vm/lima/milestone/14?closed=1 Thanks to @afbjorklund @jandubois @jsiebens @k-nasa

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/6215fc04fb7cb281817ec0ea4b56bc70b22150e2

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1577781065

    The sha256sum of the SHA256SUMS file itself is 21265455c39aa16924c5013ae97ebdc0055180eb3d6e27eb53c436b0b144456a .

    Source code(tar.gz)
    Source code(zip)
    lima-0.8.0-Darwin-arm64.tar.gz(9.36 MB)
    lima-0.8.0-Darwin-x86_64.tar.gz(9.43 MB)
    lima-0.8.0-Linux-aarch64.tar.gz(8.91 MB)
    lima-0.8.0-Linux-x86_64.tar.gz(9.26 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.7.4(Nov 22, 2021)

    • nerdctl: Update to v0.14.0, and install bash completion (#426).

    • limactl list:

      • Add possibility to list particular instances (#413, thanks to @afbjorklund)
      • Add --list-fields option (#324, thanks to @afbjorklund)
    • limactl info: add $LIMA_HOME (#400, thanks to @jandubois)

    • Support old OpenSSH (#382, #386, thanks to @davidcassany)

    Other changes: https://github.com/lima-vm/lima/milestone/13?closed=1 Thanks to @afbjorklund @davidcassany @efx @enihsyou @jandubois

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/32c4bfcfa010be36914523398c81b47815ece79a

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1490146744

    The sha256sum of the SHA256SUMS file itself is f3dcd06328b571c8762a9c38315f8b842b6862af8754d77415ae2bd015c3f0ea .

    Source code(tar.gz)
    Source code(zip)
    lima-0.7.4-Darwin-arm64.tar.gz(9.35 MB)
    lima-0.7.4-Darwin-x86_64.tar.gz(9.42 MB)
    lima-0.7.4-Linux-aarch64.tar.gz(8.90 MB)
    lima-0.7.4-Linux-x86_64.tar.gz(9.25 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.7.3(Nov 4, 2021)

    This release introduces support for running Intel containers on ARM and vice versa, with nerdctl v0.13. Also provides better integration for Docker and Podman.

    Other changes: https://github.com/lima-vm/lima/milestone/12?closed=1

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/2e161f3d4aa4afef4f2b8b18035cdc305463d28a

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1421099650

    The sha256sum of the SHA256SUMS file itself is fb3c3667f5a493f4bee73b40d1bd153f439f2bfd328bc6ff714962fd0ea31e01 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.7.3-Darwin-arm64.tar.gz(9.35 MB)
    lima-0.7.3-Darwin-x86_64.tar.gz(9.41 MB)
    lima-0.7.3-Linux-aarch64.tar.gz(8.90 MB)
    lima-0.7.3-Linux-x86_64.tar.gz(9.25 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.7.2(Oct 22, 2021)

    • Bump up the default image from Ubuntu 21.04 to 21.10 (#336)
    • New command: limactl show-ssh --format=(cmd|args|options|config) INSTANCE (#338)
    • Support ARM version of Fedora guest (#317, #329, thanks to @afbjorklund)
    • Support Ubuntu 18.04 hosts (QEMU 2.11) and macOS 10.14 hosts (#331, #353, thanks to @jandubois)
    • Support TCP DNS (#319, thanks to @dee-kryvenko)
    • Substitute HTTP_PROXY=http://localhost:<PORT> with HTTP_PROXY=http://<HOSTIP>:<PORT> automatically (#351, thanks to @jandubois)
    • limactl list: show more details (#308, thanks to @afbjorklund)
    • New examples:
      • centos.yaml:CentOS 8 (#348, #345, #347 thanks to @afbjorklund)
      • k8s.yaml: Kubernetes with kubeadm (#339, thanks to @afbjorklund)
      • nomad.yaml: Nomad (#352, thanks to @afbjorklund)

    Other changes: https://github.com/lima-vm/lima/milestone/11?closed=1 Thanks to @afbjorklund @dee-kryvenko @jandubois @znz

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/04872584099052160c3fff6406ab7ddb64ca31ff

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1371055240

    The sha256sum of the SHA256SUMS file itself is 4472ceca7d107f948613ec05f6e7edcb08c7f13cd458ec170530fafecc4d0907 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.7.2-Darwin-arm64.tar.gz(9.34 MB)
    lima-0.7.2-Darwin-x86_64.tar.gz(9.41 MB)
    lima-0.7.2-Linux-aarch64.tar.gz(8.89 MB)
    lima-0.7.2-Linux-x86_64.tar.gz(9.24 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.7.1(Oct 8, 2021)

    Fixed the binary release pipeline (#305, #306). No change on the source code since v0.7.0.

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/1763395a7a06f8000c744b4482214fc52698f862

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1320119887

    The sha256sum of the SHA256SUMS file itself is 65ad99d1558b97e12cf9eebdcc4cb8b7d6a85fc79b6bb94ac4fbe63f925d62c4 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.7.1-Darwin-arm64.tar.gz(9.32 MB)
    lima-0.7.1-Darwin-x86_64.tar.gz(9.39 MB)
    lima-0.7.1-Linux-aarch64.tar.gz(8.87 MB)
    lima-0.7.1-Linux-x86_64.tar.gz(9.22 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.7.0(Oct 8, 2021)

    • port: Enable sudo nerdctl run to expose ports to localhost (#242, thanks to @mattfarina)
    • port: Support port forwarding for privileged ports (1-1023) (#283)
    • ssh: Assign ssh.localPort automatically to an available port (#285)
    • ssh: prioritize AES when hardware acceleration for AES is available (roughly 60% faster on Intel Mac) (#299)
    • Add DNS server to host-agent to use native host resolve (#281, thanks to @jandubois)
    • Setup proxy environment variables from system settings (#266, thanks to @jandubois)
    • limactl cp now supports recursive copy (limactl cp -r) (#274, thanks to @HappyTobi)
    • Implement starting instances from a HTTP URL (#276, thanks to @afbjorklund)
    • Update nerdctl from v0.11.2 to v0.12.1 (#284, #295)
    • add limactl completion zsh, and make nerdctl.lima completion works (#234, thanks to @robberphex)

    Other changes: https://github.com/lima-vm/lima/milestone/5?closed=1 Thanks to @robberphex @mattfarina @jandubois @unixorn @ocadaruma @stealthyV1per @Nipsuli @afbjorklund @HappyTobi @hypnoce

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    Binaries are not available for Lima v0.7.0, due to a bug in the release pipeline (https://github.com/lima-vm/lima/issues/304) 😅 . Fixed in v0.7.1.

    Source code(tar.gz)
    Source code(zip)
  • v0.6.4(Sep 16, 2021)

    • Use lima username if the local user is not a valid Linux name (#214 #220 #243, thanks to @jandubois)
    • Reverse SSHFS:
      • Switch mount options -o allow_root to -o allow_other. This makes mount points accessible from all UIDs in the guest (#247, thanks to @yangyang198703)
      • Fix weird ls -l result (#211)
    • YAML:
      • The env config is now propagate to /etc/environments in the guest (#207 #228, thanks to @loganprice @jandubois)
      • Support specifying dns explicitly (#218, thanks to @jandubois)
    • QEMU: use -cpu host by default (#224)
    • Examples: add {docker,podman,singularity}.yaml (#210)
    • SSH: Ignore public keys that are not in ssh format (#219, thanks to @jandubois)
    • nerdctl: update from v0.11.1 to v0.11.2 (#248)

    Other changes: https://github.com/lima-vm/lima/milestone/9 (thanks to @wey-gu @jandubois)

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/b5d15304b6b4a1fcdd098e12dad65b64af2c1a14

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1240626144

    The sha256sum of the SHA256SUMS file itself is 0343a99d151ea4a854546b652a411a011db235d547ea417232d8bb7de1ebd48f .

    Source code(tar.gz)
    Source code(zip)
    lima-0.6.4-Darwin-arm64.tar.gz(8.73 MB)
    lima-0.6.4-Darwin-x86_64.tar.gz(8.80 MB)
    lima-0.6.4-Linux-aarch64.tar.gz(8.34 MB)
    lima-0.6.4-Linux-x86_64.tar.gz(8.64 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.6.3(Sep 4, 2021)

    • Fix nerdctl run -v hang up (#203). This was a regression in v0.6.1 (https://github.com/lima-vm/lima/issues/187).
    • Fix DNS issues that had resulted in failure of installation of sshfs (#199, thanks to @jandubois)
    • EXPERIMENTAL: Allow users to define custom environment variables to be loaded on VM start (#195, #205, thanks to @loganprice). This feature is experimental. The YAML syntax and the behavior may change in the next release.

    https://github.com/lima-vm/lima/milestone/8?closed=1

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/0df69b6adc48c2d8158378df13937554623bd082

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1201906189

    The sha256sum of the SHA256SUMS file itself is 842e18ba7798dc3937268e8db0d01110751bf6130e8661b3adf3d453e4d03c15 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.6.3-Darwin-arm64.tar.gz(8.73 MB)
    lima-0.6.3-Darwin-x86_64.tar.gz(8.79 MB)
    lima-0.6.3-Linux-aarch64.tar.gz(8.33 MB)
    lima-0.6.3-Linux-x86_64.tar.gz(8.63 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.6.2(Sep 3, 2021)

    • Make sure user provisioning scripts can be executed (#197, thanks to @jandubois)
    • copy: use SSHArgs if copying to a single remote host. (#194, thanks to @mook-as)
    • Ignore .pub files in $HOME/.ssh without a matching private key (#184, thanks to @ben-krieger)

    Other changes: https://github.com/lima-vm/lima/milestone/7?closed=1 (thanks to @jandubois)

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/a72d0ce33896ed78b8a89279422b8d4345890deb

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1199415218

    The sha256sum of the SHA256SUMS file itself is 9bfa9b2f597ea66e1f03d652a389d7d8cc8a2126ce8c42bfc2a84e543425eb9f .

    Source code(tar.gz)
    Source code(zip)
    lima-0.6.2-Darwin-arm64.tar.gz(8.72 MB)
    lima-0.6.2-Darwin-x86_64.tar.gz(8.78 MB)
    lima-0.6.2-Linux-aarch64.tar.gz(8.33 MB)
    lima-0.6.2-Linux-x86_64.tar.gz(8.63 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.6.1(Aug 29, 2021)

    • Support QEMU v6.1 (#174, #176, thanks to @jandubois)
    • Avoid touching ~/.ssh/known_hosts (#165, thanks to @mook-as)
    • nerdctl: update from v0.11.0 to v0.11.1 (#162)

    Other changes: https://github.com/lima-vm/lima/milestone/6?closed=1 (thanks to @jandubois @mook-as)

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/4be375c75643909a0d85bef3c2c291852a2e0921

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1178966500

    The sha256sum of the SHA256SUMS file itself is de1a34735dcd784152d84644c7475d4ac56823899e48280a6c884aa56fdb5003 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.6.1-Darwin-arm64.tar.gz(8.72 MB)
    lima-0.6.1-Darwin-x86_64.tar.gz(8.78 MB)
    lima-0.6.1-Linux-aarch64.tar.gz(8.33 MB)
    lima-0.6.1-Linux-x86_64.tar.gz(8.62 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.6.0(Aug 5, 2021)

    • Moved the repo from github.com/AkihiroSuda/lima to github.com/lima-vm/lima (#119, #144)
    • Support macOS vmnet.framework with vde_vmnet (#133, #139, thanks to @jandubois)
    • Support flexible port forwarding configuration (#114, thanks to @jandubois)
    • Add host.lima.internal (192.168.5.2) to /etc/hosts (#142, thanks to @jandubois)
    • nerdctl: update from v0.10.0 to v0.11.0 (#117)

    Other changes: https://github.com/lima-vm/lima/milestone/4?closed=1

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/10a34807f34e9ea57d09c0d6f299aa38e3f02939

    Usage

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run `lima` to open the shell.
    
    [macOS]$ lima uname
    Linux
    

    The binaries were built automatically on GitHub Actions. The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/1100502784

    The sha256sum of the SHA256SUMS file itself is 48663d1999d19655233b4285328f5af14a5c9c5c2c732f98923285276acd7acc .

    Source code(tar.gz)
    Source code(zip)
    lima-0.6.0-Darwin-arm64.tar.gz(8.73 MB)
    lima-0.6.0-Darwin-x86_64.tar.gz(8.85 MB)
    lima-0.6.0-Linux-aarch64.tar.gz(8.33 MB)
    lima-0.6.0-Linux-x86_64.tar.gz(8.70 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
Owner
Akihiro Suda
A maintainer of Moby(dockerd), BuildKit, containerd, and runc.
Akihiro Suda
Auto-magic file organisation for your machines. :open_file_folder:

Switchboard Description Do you ever get annoyed that your Downloads folder gets cluttered with all types of files? Do you wish you could automatically

Cian Gallagher 206 Jan 2, 2023
Knit is an inline code generation tool that combines the power of Go's text/template package with automatic spec file loading.

Knit Knit is an inline code generation tool that combines the power of Go's text/template package with automatic spec file loading. Example openapi: "

Tyler 4 Sep 15, 2022
Go library for creating state machines

Stateless Create state machines and lightweight state machine-based workflows directly in Go code: phoneCall := stateless.NewStateMachine(stateOffHook

Quim Muntal 527 Jan 6, 2023
Package fsm allows you to add finite-state machines to your Go code.

fsm Package fsm allows you to add finite-state machines to your Go code. States and Events are defined as int consts: const ( StateFoo fsm.State =

Cocoon Space 35 Dec 9, 2022
libFFM-gp: Pure Golang implemented library for FM (factorization machines)

libFFM-gp: Pure Golang implemented library for FM (factorization machines)

null 1 Oct 10, 2022
The package manager for macOS you didn’t know you missed. Simple, functional, and fast.

Stew The package manager for macOS you didn’t know you missed. Built with simplicity, functionality, and most importantly, speed in mind. Installation

Stew 20 Mar 30, 2022
GoC2 - MacOS Post Exploitation C2 Framework

goc2 c2 client/server/paylod GoC2 - MacOS Post Exploitation C2 Framework Custom C2 for bypassing EDR and ease of use.

Brian Stegemoller 76 Dec 23, 2022
TNO MPC Lab - Shamir Secret Sharing

TNO MPC Lab - Shamir Secret Sharing The TNO MPC lab consists of generic software components, procedures, and functionalities developed and maintained

TNO - MPC Lab 1 Jun 26, 2022
Let's Go is task sharing app implemented in golang.

Let's Go - A sample GO app Overview Let's Go is an HTTP server. It has various apis to play with. It is a small app that can group users of a company

null 0 Dec 13, 2021
Forklift: an API application developed with go that enables virtual server migration from vcenter virtualization environment to openstack environment

What is the Forklift? Forklift is an API application developed with go that enables virtual server migration from vcenter virtualization environment t

Ali 3 Jan 14, 2022
Simple Golang API to demonstrate file upload to fireabase storage and retrieving url of uploaded file.

go-firebase-storage -Work in progress ??️ Simple Golang API that uses Firebase as its backend to demonstrate various firebase services using Go such a

Victor Kabata 4 Oct 4, 2021
Works with HashiCorp HCL. Allows to append the input file with blocks and attributes from the template file

About hclmergetool Works with HashiCorp HCL. Allows to append the input file with blocks and attributes from the template file Installation Binary Rel

Max Fedorov 0 Feb 6, 2022
Entitas-Go is a fast Entity Component System Framework (ECS) Go 1.17 port of Entitas v1.13.0 for C# and Unity.

Entitas-Go Entitas-GO is a fast Entity Component System Framework (ECS) Go 1.17 port of Entitas v1.13.0 for C# and Unity. Code Generator Install the l

Vladislav Fedotov 21 Dec 26, 2022
A Go package to allow you to read and write from the serial port as a stream of bytes.

Serial A Go package to allow you to read and write from the serial port as a stream of bytes. Details It aims to have the same API on all platforms, i

null 1.4k Jan 6, 2023
Go port of Coda Hale's Metrics library

go-metrics Go port of Coda Hale's Metrics library: https://github.com/dropwizard/metrics. Documentation: http://godoc.org/github.com/rcrowley/go-metri

Richard Crowley 3.3k Dec 30, 2022
Go binding to libserialport for serial port functionality.

Go Serial Package serial provides a binding to libserialport for serial port functionality. Serial ports are commonly used with embedded systems, such

Jacob Michael Lee 52 Nov 1, 2022
Minecraft Port Knock With Golang

Minecraft Port Knock A simple program that performs two duties: Monitor a Minecraft server and stop it after it has been empty for some amount of time

Daniel Widrick 2 Jan 11, 2022
A simple tool to send binary data over a serial port. Designed for use with my retro computer systems.

Colin's Transfer Tool This is a really basic tool to transfer firmware files to my retro computer systems over a serial port. This removes the need fo

Colin Maykish 0 Dec 21, 2021
Record CS knowlegement with XMind, version 2.0. 使用 XMind 记录 Linux 操作系统,网络,C++,Golang 以及数据库的一些设计

Psyduck 另一个用 XMind 记录 CS 基础问题的地方,同样提供了 .xmind 源文件以及导出的 .pdf 文件,XMind 版本为「XMind 2020」。 在 2020 年时,曾花了约 2 个月的时间整理了第一份 XMind 知识库: ZeroMind。 之所以额外创建一个 Repo

SmartKeyerror 4.3k Dec 30, 2022