import { Callout } from 'nextra/components'
# Installation
The preferred way of installing Lune is using [Aftman](https://github.com/lpghatguy/aftman).
Install Aftman, and run this command in your terminal to add `lune` to an `aftman.toml` file in the
current directory, or create one if it does not exist:
```sh copy filename="Bash"
aftman add lune-org/lune
```
## Other Installation Options
Using GitHub Releases
You can download pre-built binaries for most systems directly from the
[GitHub Releases](https://github.com/lune-org/lune/releases) page.
There are many tools
that can install binaries directly from releases, and it is up to you to choose what tool to use
when installing here.
Community-maintained
### Scoop
Windows users can use [Scoop](https://scoop.sh) to install Lune.
```ps copy filename="PowerShell"
# Add the bucket
scoop bucket add lune https://github.com/CompeyDev/lune-packaging.git
# Install the package
scoop install lune
```
### Homebrew
macOS and Linux users can use [Homebrew](https://brew.sh) to install Lune.
```sh copy filename="Bash"
# Installs latest stable precompiled binary
brew install lune
```
***or***
```sh copy filename="Bash"
# Builds from latest stable source
brew install lune --build-from-source
```
### APT
APT is a package manager for Debian-based Linux distributions that uses `dpkg` to install packages.
Follow the instructions at the unofficial [lune-packaging](https://github.com/CompeyDev/lune-packaging#apt) repository to install Lune using APT.
The APT repository is hosted by the community and is not endorsed by or affiliated with Lune.
### AppImage
AppImages are platform independent sandboxed binaries that work out of the box.
Go to the [GitHub Actions Page](https://github.com/CompeyDev/lune-packaging/actions/workflows/appimage.yaml), and download the artifact suitable for your architecture from the build artifacts.
### AUR (Arch User Repository)
There are a number of packages available on the AUR:
- `lune` - Builds from the latest stable release source.
- `lune-git` - Builds from the latest commit in the repo; unstable.
- `lune-bin` - Installs a precompiled binary from GitHub Release artifacts.
These can be installed with your preferred AUR package manager as such:
```sh copy filename="Bash"
paru -S [PACKAGE_NAME]
```
***or***
```sh copy filename="Bash"
yay -S [PACKAGE_NAME]
```
Only one of these AUR packages must be installed at a time in order to prevent conflicts.
### Nix
macOS* and Linux users can use [Nix](https://nixos.org/) to install Lune.
*the macOS build is currently broken. Help is wanted debugging [it](https://github.com/NixOS/nixpkgs/blob/36f9963ac7ea0a471c1d408e90edec093a819d83/pkgs/development/interpreters/lune/default.nix).
Imperatively
**NixOS**
```sh copy filename="Bash"
nix-env -iA nixos.lune
```
**Non NixOS**
```sh copy filename="Bash"
nix-env -iA nixpkgs.lune
# If you are using flakes
nix profile install nixpkgs#lune
```
Declaratively
**With [home-manager](https://github.com/nix-community/home-manager)**
```nix copy filename="nix"
home.packages = with pkgs; [
lune
];
```
**system-wide NixOS configuration**
```nix copy filename="nix"
enviroment.systemPackages = with pkgs; [
lune
];
```
Temporarily
You can temporarily use Lune in your shell. You can use this to try out Lune before deciding to permanently install it.
```sh copy filename="Bash"
nix-shell -p lune
```
crates.io
### Building from source
Building and installing from source requires the latest version of
[Rust & Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) to be installed on
your system.
Once installed, run the following command in your terminal:
```sh copy filename="Bash"
cargo install lune --locked
```
### Binstall
[`cargo binstall`](https://github.com/cargo-bins/cargo-binstall) provides a simple mechanism for installing rust binaries from crates.io, without
compiling from source unlike `cargo install`. Lune is packaged in a `binstall` compatible way.
With `binstall` installed and in your path, run:
```sh copy filename="Bash"
cargo binstall lune
```
## Next Steps
Congratulations! You've installed Lune and are now ready to write your first script.
- If you want to write standalone scripts, head over to the
[Introduction](./2-introduction/1-hello-lune.md) section.
- If you want to write Lune scripts specifically for Roblox, check out the
[Roblox](../roblox/1-introduction.md) section.