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.
Issues
  • 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
  • `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
  • [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
  • Add SSHIdentityFile to the list output

    Add SSHIdentityFile to the list output

    In order to connect to lima with an external ssh tool, nice to have both the ssh port and the ssh identity...

    Avoids hardcoding any dependencies on lima internals, and the identity can be empty if using default keys.

    opened by afbjorklund 19
  • Host-agent DNS forwarder improvements (fixes #770)

    Host-agent DNS forwarder improvements (fixes #770)

    Previous issues:

    • https://github.com/lima-vm/lima/issues/270
    • https://github.com/rancher-sandbox/rancher-desktop/issues/702

    Fixes: https://github.com/rancher-sandbox/rancher-desktop/issues/770

    • Listen for TCP traffic
    • Fix responding with more than one A record
    • Add AAAA, CNAME, NS, MX and TXT forwarding
    • Fix iptables forward rules so hostagent is accessible from containers
    opened by dee-kryvenko 19
  • make nerdctl.lima completion works

    make nerdctl.lima completion works

    • switch to cobra
    • make nerdctl.lima completion works
    • support double dash --.(limactl shell default -- echo --help can work now)
    • support auto-completion at bash\fish\zsh.
    • fix https://github.com/lima-vm/lima/issues/233
    impact/changelog 
    opened by robberphex 19
  • Changes to group membership are not reflected for current boot

    Changes to group membership are not reflected for current boot

    If I change my group membership within a lima vm, I don't see those changes reflected immediately ie

    [[email protected] ~]$ sudo usermod lima -g games 
    [[email protected] ~]$ sudo usermod -aG video lima
    [[email protected] ~]$ id
    uid=502(lima) gid=1000(lima) groups=1000(lima) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    Of course I've tried logging out and back in again, but to no avail. Rebooting the lima vm works.
    newgrp works as well, but I don't like the fact that it opens a new shell.

    [[email protected] ~]$ newgrp 
    [[email protected] ~]$ id
    uid=502(lima) gid=20(games) groups=20(games),39(video),1000(lima) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    

    Is there a way for the lima (or default) user to see their updated group membership list without resorting to rebooting the VM or by using newgrp?

    I need to do this as my primary gid on macos is 20 (and not 1000 as per the lima vm default)

    [[email protected] ~]$ id
    uid=502(leif.liddy) gid=20(staff)....
    

    I need the primary gids to match between macos and lima (it's a long story but it involves accessing mounted host volumes from within a container). It would just be extremely convenient if I didn't have to reboot the lima vm in order to do that.

    opened by leifliddy 17
  • Fix test failures on windows, mostly paths

    Fix test failures on windows, mostly paths

    After merging the other code fixes.

    Only unit tests, not functional tests...


    --- FAIL: TestTemplate (0.00s)
        template_test.go:26: assertion failed: error is not nil: field mounts[0] must be absolute, got "/Users/dummy"
    --- FAIL: TestTemplate9p (0.00s)
        template_test.go:54: assertion failed: error is not nil: field mounts[0] must be absolute, got "/Users/dummy"
    FAIL
    FAIL	github.com/lima-vm/lima/pkg/cidata	1.177s
    --- FAIL: TestTXTRecords (0.07s)
        --- FAIL: TestTXTRecords/test_TXT_records (0.07s)
            dns_test.go:60: assertion failed: regex_check is false
    FAIL
    FAIL	github.com/lima-vm/lima/pkg/hostagent/dns	1.229s
    --- FAIL: TestFillDefault (0.01s)
        defaults_test.go:212: assertion failed: 
            --- &y
            +++ &expect
              &limayaml.LimaYAML{
              	... // 12 identical fields
              	Containerd: {System: &false, User: &true, Archives: {{Location: "https://github.com/containerd/nerdctl/releases/download/v0.21.0/"..., Arch: "x86_64", Digest: s"sha256:728f9b543374b1b1733f759608e156dbe578d7b140a081084a1f4bfb4"...}, {Location: "https://github.com/containerd/nerdctl/releases/download/v0.21.0/"..., Arch: "aarch64", Digest: s"sha256:1d0c822f7571042e71ef0b2f8d092f99b0034061726385ca90deaf0b3"...}}},
              	Probes:     {{Mode: "readiness", Description: "user probe 1/1", Script: "#!/bin/false"}},
              	PortForwards: []limayaml.PortForward{
              		{GuestIP: s"127.0.0.1", GuestPortRange: {1, 65535}, HostIP: s"127.0.0.1", HostPortRange: {1, 65535}, ...},
              		{GuestIP: s"127.0.0.1", GuestPort: 80, GuestPortRange: {80, 80}, HostIP: s"127.0.0.1", ...},
              		{GuestIP: s"127.0.0.1", GuestPort: 8080, GuestPortRange: {8080, 8080}, HostIP: s"127.0.0.1", ...},
              		{
              			... // 6 identical fields
              			HostPort:      0,
              			HostPortRange: {1, 65535},
              			HostSocket: strings.Join({
              				`C:\users\anders | C:\users\anders\.lima\instance | instance | S-`,
              				"1-5-21-0-0-0-1000 | ",
            - 				`UBUNTU\anders`,
            + 				"lima",
              			}, ""),
              			Proto:   "tcp",
              			Reverse: false,
              			Ignore:  false,
              		},
              	},
              	Message:  "",
              	Networks: {{Lima: "shared", MACAddress: "52:55:55:f0:96:23", Interface: "lima0"}},
              	... // 7 identical fields
              }
            
    FAIL
    FAIL	github.com/lima-vm/lima/pkg/limayaml	1.270s
    --- FAIL: TestLogFile (0.00s)
        commands_test.go:47: assertion failed: C:\users\anders\.lima\_networks/name_daemon.stream.log (logFile string) != C:\users\anders\.lima\_networks\name_daemon.stream.log (string)
    --- FAIL: TestUser (0.00s)
        commands_test.go:59: assertion failed: error is not nil: No security ID mapped.
    FAIL
    FAIL	github.com/lima-vm/lima/pkg/networks	0.880s
    
    platform/Windows 
    opened by afbjorklund 3
  • [Windows Please]

    [Windows Please]

    Description

    Hi , This is such a great work , hoping for the Windows version

    WSL is good but very slow in most cases , i prefer to have this in windows , :) hope that this will be available soon.

    Thanks

    enhancement help wanted expert 
    opened by jhay06 5
  • Support for flexible Slirp IP address

    Support for flexible Slirp IP address

    Description

    Lima currently uses the 192.168.5.0/24 subnet and it is currently hardcoded. There should be room for flexibility to accommodate users with a clashing IP address. https://github.com/lima-vm/lima/blob/3ad14f6618f8837a729a79b0ce765beb75f668ab/pkg/qemu/const/const.go#L6

    Related Issue: https://github.com/abiosoft/colima/issues/335

    enhancement component/qemu 
    opened by abiosoft 1
  • A configurable filter of iptables rules for port forwarding

    A configurable filter of iptables rules for port forwarding

    Description

    I would like to extend this filter:

    https://github.com/lima-vm/lima/blob/600f3421bc056f2bb3e69981d36412b5d31f8818/pkg/guestagent/iptables/iptables.go#L32

    It's probably a process to prevent unintended port forwarding.

    Usecase

    My usecase is to access the NodePort service on Kubernetes run on lima.

    Pod containers using hostPort are set up with a CNI-DN- * chain by CNI plugin, so automatic port forwarding works without any change.

    However, actually using hostPort is painful. It makes replicas of pods will not work.

    In a basic k8s configuration, using NodePort updates iptables.

    For example, when exposing port 80 of nginx container with NodePort: 30010, just a related chain:

    -A KUBE-NODEPORTS -p tcp -m comment --comment "default/nginx-nodeport" -m tcp --dport 30010 -j KUBE-EXT-CGFVTWEXQTKV5QXW
    -A KUBE-EXT-CGFVTWEXQTKV5QXW -m comment --comment "masquerade traffic for default/nginx-nodeport external destinations" -j KUBE-MARK-MASQ
    -A KUBE-EXT-CGFVTWEXQTKV5QXW -j KUBE-SVC-CGFVTWEXQTKV5QXW
    -A KUBE-SVC-CGFVTWEXQTKV5QXW ! -s 10.244.0.0/16 -d 10.102.188.3/32 -p tcp -m comment --comment "default/nginx-nodeport cluster IP" -m tcp --dport 8000 -j KUBE-MARK-MASQ
    -A KUBE-SVC-CGFVTWEXQTKV5QXW -m comment --comment "default/nginx-nodeport -> 10.244.0.159:80" -j KUBE-SEP-4HC2IE63VSQQECKY
    -A KUBE-SEP-4HC2IE63VSQQECKY -s 10.244.0.159/32 -m comment --comment "default/nginx-nodeport" -j KUBE-MARK-MASQ
    -A KUBE-SEP-4HC2IE63VSQQECKY -p tcp -m comment --comment "default/nginx-nodeport" -m tcp -j DNAT --to-destination 10.244.0.159:80
    

    In this case, automatic port forwarding does not work because the CNI-DN-* is not published. However, KUBE-NODEPORTS acts as a DNAT to the target port of the container. If this is included for the targets of port forwarding, we can achieve access to containers on kubernetes with port forwarding without interfering with the replication of pods running.

    I find this very convenient. Would you please consider adding it to your hard-coded or making the rules you want to filter configurable? Thanks!

    expert 
    opened by ornew 1
  • Suggestion: allow using

    Suggestion: allow using "." in mount location and\or scripts

    Description

    Hi, first - thanks for the great project, lima is a first thing that worked properly from the start on M1 Mac for me, 💯 👍 .

    I'm trying to build dev environment for the project using lima-vm and found that I need somehow map dirs which are relative to lima yaml file. The scenario is to have a VM with installed tools (provisioning scripts work great for installing tools but not for adding configs) and configuration for tools from a repository. To achieve this I need some form of "relative" path to be mapped into vm on creation. There is an example of such path - ~ is expanded to user's home directory when used in mounts.location. Can we have something like . and .. or some other path expansion tokens, which would be expanded to a current template file directory, so during VM creation we can use something like:

    mounts:
      - location: "./../config"
         mountPoint: /opt/hashicorp/config # will be supported in next version
         writable: false
    

    to map certain folders from host to guest.

    Technically it can be achieved today by specifying a location path relative to home, e.g.- location: "~/myprojects/project-name/devenv/config" but it's less portable as different developers may have different structure in their home dir.

    Mount point is probably an ideal case, as it will be in sync all the time and can be updated from host with changes reflected in guest. Alternative options may be (1) to allow location to be dynamically specified in limactl start command or (2) have an original template directory mounted in provisioning scripts. In the latter case I can simply copy latest config files in a provisioning script but have to restart an underlying VM.

    Alternatives are not ideal but would work better, than asking developer to edit template and point to his project path before creating a vm from a template.

    opened by centur 0
Releases(v0.11.1)
  • 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)
  • v0.5.0(Jul 6, 2021)

    • allow overriding qemu binary $QEMU_SYSTEM_X86_64, $QEMU_SYSTEM_AARCH64 (#80)
    • examples: add archlinux.yaml (#88)
    • examples: add opensuse.yaml (#91, thanks to @jandubois)
    • new subcommand: limactl cp (#92, thanks to @jandubois)
    • nerdctl: update to v0.10.0 (#103)
    • validate SHA256/SHA512 digests (#106)

    Other changes: https://github.com/AkihiroSuda/lima/milestone/3?closed=1

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/545eab7189d281f9e28d00033e57adf8ca4ddce5

    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/AkihiroSuda/lima/actions/runs/1003394152

    The sha256sum of the SHA256SUMS file itself is d6e337dbedd14c714db24fc3872e9c25b12115ac8ec4589c24245685fb4c7882 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.5.0-Darwin-arm64.tar.gz(8.60 MB)
    lima-0.5.0-Darwin-x86_64.tar.gz(8.72 MB)
    lima-0.5.0-Linux-aarch64.tar.gz(8.21 MB)
    lima-0.5.0-Linux-x86_64.tar.gz(8.57 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.4.0(Jun 22, 2021)

    Changes

    • Add support for Alpine guest OS (#52, thanks to @jandubois)

    • Implement $LIMA_HOME to override /.lima location (#59, thanks to @jandubois)

    • nerdctl: update to v0.9.0 (#71)

      • Compose: support multi-network
      • runc: v1.0.0
      • ...
    • Lots of refactoring

    Upgrading notice

    Upgrading from Lima v0.3.0 probably requires recreating instances.

    $ limactl delete -f default
    $ limactl start default
    

    Homebrew

    brew install lima

    https://github.com/Homebrew/homebrew-core/commit/36e0f8d721c3bd2a43cdb0dc319953367c65513e

    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/AkihiroSuda/lima/actions/runs/959858130

    The sha256sum of the SHA256SUMS file itself is 3e4b0a80bf329ff3302d29c33ad3b543c9a136c1db91064dbeb4ceb923778074 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.4.0-Darwin-arm64.tar.gz(8.51 MB)
    lima-0.4.0-Darwin-x86_64.tar.gz(8.63 MB)
    lima-0.4.0-Linux-aarch64.tar.gz(8.14 MB)
    lima-0.4.0-Linux-x86_64.tar.gz(8.49 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.3.0(Jun 15, 2021)

    Changes

    • Daemonize limactl start (#46)
    • Add limactl validate FILE.yaml [FILE.yaml, ...] (#48)
    • Misc improvements to Makefile (#50)

    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/AkihiroSuda/lima/actions/runs/938930089

    The sha256sum of the SHA256SUMS file itself is a0af9a3757a23d20d7af55071f7c2d557da6c8161a59873080d485f2075368b6 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.3.0-Darwin-arm64.tar.gz(8.44 MB)
    lima-0.3.0-Darwin-x86_64.tar.gz(8.55 MB)
    lima-0.3.0-Linux-aarch64.tar.gz(8.07 MB)
    lima-0.3.0-Linux-x86_64.tar.gz(8.41 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.2.1(Jun 11, 2021)

    Changes

    • Fixed "Mounted filesystems not accessible by root" (#5, #43).

    Upgrading notice

    An instance created with an old version of Lima may get stuck during Waiting for the essential requirement 3 of 4: "/etc/fuse.conf to contain \"user_allow_other\"".

    In such a case, run the following command to fix the issue:

    lima sudo sh -c 'echo user_allow_other >> /etc/fuse.conf'
    

    Usage

    Terminal 1:

    [macOS]$ limactl start
    ...
    INFO[0029] READY. Run  to open the shell.
    

    Terminal 2:

    [macOS]$ lima uname
    Linux
    

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

    The sha256sum of the SHA256SUMS file itself is 3e94dc470f9d8d022b1029b64b87e7fd0478957761649078eb1aabb908b13ed2 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.2.1-Darwin-arm64.tar.gz(8.35 MB)
    lima-0.2.1-Darwin-x86_64.tar.gz(8.47 MB)
    lima-0.2.1-Linux-aarch64.tar.gz(7.99 MB)
    lima-0.2.1-Linux-x86_64.tar.gz(8.33 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.2.0(Jun 9, 2021)

    • cmd/lima: drop dependency on GNU coreutils (#35)
    • update nerdctl to v0.8.3 (#36)
    • Implement system and user provisioning scripts (#38, thanks to @jandubois)
    • Implement "readiness" probes (#38, thanks to @jandubois)
    • Make containerd optional (#38, thanks to @jandubois)
    • Added k3s exammple (#38, thanks to @jandubois)
    • Cache disk image and nerdctl package under ~/Library/Caches/Lima (#41)

    Related news: QEMU binary no longer needs to be signed manually. Just run brew install qemu.

    Usage

    Terminal 1:

    [macOS]$ limactl start
    

    Terminal 2:

    [macOS]$ lima uname
    Linux
    

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

    The sha256sum of the SHA256SUMS file itself is 503b16d5b45ec4ea57d66d85682508ac7eb87460dedcde8318a01a12492fbb8b .

    Source code(tar.gz)
    Source code(zip)
    lima-0.2.0-Darwin-arm64.tar.gz(8.35 MB)
    lima-0.2.0-Darwin-x86_64.tar.gz(8.47 MB)
    lima-0.2.0-Linux-aarch64.tar.gz(7.99 MB)
    lima-0.2.0-Linux-x86_64.tar.gz(8.33 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.1.2(May 21, 2021)

    • Disable video display by default to avoid the performance issue caused by macOS App Nap #29 (#30)
    • qemu: set splash-time to 0 (#31, thanks to @Tarik02 for suggestion #25)

    Usage

    Terminal 1:

    [macOS]$ limactl start
    

    Terminal 2:

    [macOS]$ lima uname
    Linux
    

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

    The sha256sum of the SHA256SUMS file itself is 117f4d3aa507731f2acb966dc614f7c8bdd37fe4cd87176771b1a7894d925673 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.1.2-Darwin-arm64.tar.gz(8.34 MB)
    lima-0.1.2-Darwin-x86_64.tar.gz(8.45 MB)
    lima-0.1.2-Linux-aarch64.tar.gz(7.98 MB)
    lima-0.1.2-Linux-x86_64.tar.gz(8.32 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.1.1(May 20, 2021)

    • Support Linux-on-Linux (#21, mostly for testing). Should work on NetBSD as well, but not tested on NetBSD.
    • Fix issues on ARM Mac (#23, #24, thanks to @Tarik02)
    • Update docs (#3, #7, #9, #10, thanks to @christian-korneck, @boegel, @nghialv)

    Usage

    Terminal 1:

    [macOS]$ limactl start
    

    Terminal 2:

    [macOS]$ lima uname
    Linux
    

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

    The sha256sum of the SHA256SUMS file itself is e2990ac0ee5e4b718befbf8b8a28a6a255d4847166e4a913a2016cfc01ca28e1 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.1.1-Darwin-arm64.tar.gz(8.33 MB)
    lima-0.1.1-Darwin-x86_64.tar.gz(8.45 MB)
    lima-0.1.1-Linux-aarch64.tar.gz(7.98 MB)
    lima-0.1.1-Linux-x86_64.tar.gz(8.32 MB)
    SHA256SUMS(390 bytes)
    SHA256SUMS.asc(659 bytes)
  • v0.1.0(May 14, 2021)

    The first release.

    Usage

    Terminal 1:

    [macOS]$ limactl start
    

    Terminal 2:

    [macOS]$ lima uname
    Linux
    

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

    The sha256sum of the SHA256SUMS file itself is 747e87a4ed6b62da496062a7dd03845afb5fedec25396c7bd684a3f0c1c35224 .

    Source code(tar.gz)
    Source code(zip)
    lima-0.1.0-Darwin-arm64.tar.gz(8.24 MB)
    lima-0.1.0-Darwin-x86_64.tar.gz(8.35 MB)
    SHA256SUMS(195 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 83 May 26, 2022
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 3 Apr 6, 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 446 Jun 25, 2022
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 25 Jul 1, 2022
libFFM-gp: Pure Golang implemented library for FM (factorization machines)

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

null 0 Jan 23, 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 33 Jun 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
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 19 Jun 15, 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 Jun 29, 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
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.2k Jun 21, 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 51 Jun 15, 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.2k Jun 27, 2022