# Install yasm with Homebrew, apk, chocolatey, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

Modular BSD reimplementation of NASM. Version 1.3.0 via Homebrew; verified 2026-06-27.

## Install

```sh
sudo av install brew:yasm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install yasm
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install yasm
```

  Evidence: MacPorts ports tree: lang/yasm/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add yasm
```

  Evidence: Alpine Linux edge package indexes: yasm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install yasm
```

  Evidence: Debian stable package indexes: yasm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install yasm
```

  Evidence: Fedora Rawhide package metadata: yasm from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#yasm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ya/yasm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S yasm
```

  Evidence: Arch Linux sync databases: yasm from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install yasm
```

  Evidence: openSUSE Tumbleweed package metadata: yasm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Chocolatey (92%):

```sh
choco install yasm
```

  Evidence: Chocolatey community package catalog: yasm from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','wiztree'

- Scoop (92%):

```sh
scoop install main/yasm
```

  Evidence: Scoop official bucket manifest trees: bucket/yasm.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:yasm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/yasm>
- **Version:** 1.3.0
- **Source summary:** Modular BSD reimplementation of NASM
- **Homepage:** <https://www.tortall.net/projects/yasm/manual/html/>
- **Repository:** <https://github.com/yasm/yasm>
- **Upstream docs:** <https://www.tortall.net/projects/yasm/manual/html>
- **License:** BSD-2-Clause AND BSD-3-Clause AND LicenseRef-Homebrew-public-domain AND (Artistic-1.0-Perl OR GPL-2.0-or-later OR LGPL-2.0-or-later)
- **Source archive:** <https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz>
- **Last updated:** 2026-06-27T18:33:31-04:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- vsyasm (cli)
- yasm (cli)
- ytasm (cli)
- vsyasm (alias)
- yasm (alias)
- ytasm (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.3.0
- Package-manager updated: 2026-06-27
- Local data: ok
- Upstream repository: https://www.tortall.net/projects/yasm/manual/html/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Yasm is a modular assembler for x86 and AMD64 that began as a BSD-licensed rewrite of NASM. Its package-manager identity is unusually clear: it exists because build systems needed a portable NASM-like assembler that could emit the object formats, debug formats, and 64-bit code used by Unix, Windows, and macOS projects.

### Project history

The Yasm manual says the project started in 2001 as a rewrite of the Netwide Assembler under the BSD license. Rather than being a drop-in clone only, Yasm was designed around modules for assembler syntaxes, object formats, debug formats, and instruction sets, which let it support NASM syntax while also adding GNU as syntax, AMD64 support, and multiple platform object formats.

Yasm's public GitHub repository describes itself as the mainline development tree and was created there in 2011, after the project had already been established through its own site and release tarballs. The current manual still presents the core command as yasm, with vsyasm for Visual Studio integration and ytasm as part of the toolkit.

### Adoption history

Yasm became a common build dependency during the period when multimedia and codec projects leaned heavily on hand-written x86 assembly. FFmpeg's own development log records a later switch of the default x86 assembler from Yasm to NASM while preserving an option to use Yasm, which is a good marker of how central Yasm had been to that ecosystem.

Its adoption was strongest where projects wanted NASM-style source compatibility plus portable output: ELF for Unix, Mach-O for macOS, COFF/Win32/Win64 for Windows, and debug information for platform debuggers. That combination made it show up in package managers less as an end-user tool and more as the thing that quietly made optimized native packages build.

### How it is used

Typical use is direct assembly of NASM- or GAS-style input into an object file, often from a larger configure or make build. Users select output formats with flags such as -f, target machines with -m, parser syntax with -p, and debug formats with -g.

In practical packaging, Yasm is important when a source tree contains x86 assembly tuned for codecs, emulators, runtimes, or low-level libraries. A build may not expose Yasm to the final user at all, but failure to find it can disable assembly optimizations or stop old release branches from building.

### Why package nerds care

Yasm is package-nerd plumbing: a small command-line tool whose importance is measured by how many other packages used to need it. It is also a useful example of a compatibility tool that gained adoption by matching an existing language, NASM syntax, while being friendlier to license and portability requirements.

Its later displacement by newer NASM releases in some projects is part of the story. Package collections keep Yasm because old build systems still ask for it, while newer projects may prefer NASM; knowing which assembler a package wants can explain otherwise opaque native-build failures.

### Timeline

- 2001: Yasm begins as a BSD-licensed rewrite of NASM.
- 2006-2009: The Yasm user manual documents the modular assembler architecture and supported syntaxes, formats, and debug outputs.
- 2011: The yasm/yasm GitHub repository is created as the mainline development tree.
- 2017: FFmpeg changes its default x86 assembler preference from Yasm to NASM while keeping Yasm selectable.

### Related projects

- NASM is the assembler whose syntax and role Yasm originally reimplemented.
- GNU as is another supported syntax target in Yasm's parser model.
- FFmpeg is a prominent downstream multimedia project whose build history reflects Yasm's adoption and later partial replacement by NASM.

### Sources

- <https://api.github.com/repos/yasm/yasm>
- <https://ffmpeg.org/pipermail/ffmpeg-cvslog/2017-June/108045.html>
- <https://github.com/yasm/yasm>
- <https://www.tortall.net/projects/yasm/manual/html/manual.html>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** yasm
- **Version Scheme:** 0
- **Revision:** 2
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - yasm - 1.3.0-7: normalized package name match | Debian stable package indexes: yasm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | modular assembler with multiple syntaxes support | https://github.com/yasm/yasm/
- Nix - yasm: normalized package name match | nixpkgs package indexes: pkgs/by-name/ya/yasm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - yasm - 1.3.0-4: normalized package name match | Ubuntu 24.04 LTS package indexes: yasm from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | modular assembler with multiple syntaxes support | http://www.tortall.net/projects/yasm/
- apk - yasm - 1.3.0-r4: normalized package name match | Alpine Linux edge package indexes: yasm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.) | http://www.tortall.net/projects/yasm/
- apk - yasm-dev - 1.3.0-r4: normalized package name match | Alpine Linux edge package indexes: yasm-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.) (development files) | http://www.tortall.net/projects/yasm/
- apk - yasm-doc - 1.3.0-r4: normalized package name match | Alpine Linux edge package indexes: yasm-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.) (documentation) | http://www.tortall.net/projects/yasm/
- dnf - yasm - 1.3.0^20250625git121ab15-3.fc44: normalized package name match | Fedora Rawhide package metadata: yasm from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Modular Assembler | http://yasm.tortall.net/
- dnf - yasm-devel - 1.3.0^20250625git121ab15-3.fc44: normalized package name match | Fedora Rawhide package metadata: yasm-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Header files and static libraries for the yasm Modular Assembler | http://yasm.tortall.net/
- pacman - yasm - 1.3.0-9: normalized package name match | Arch Linux sync databases: yasm from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.) | https://github.com/yasm/yasm
- zypper - yasm - 1.3.0-9.5: normalized package name match | openSUSE Tumbleweed package metadata: yasm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A complete rewrite of the NASM assembler | https://github.com/yasm/yasm
- zypper - yasm-devel - 1.3.0-9.5: normalized package name match | openSUSE Tumbleweed package metadata: yasm-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | YASM development package | https://github.com/yasm/yasm
- MacPorts - yasm: normalized package name match | MacPorts ports tree: lang/yasm/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - yasm: normalized package name match | Chocolatey community package catalog: yasm from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','wiztree'
- Scoop - main/yasm: normalized package name match | Scoop official bucket manifest trees: bucket/yasm.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [xa](https://www.automicvault.com/pkg/brew/xa/) - Shares av.db curated category or tags: assembler, assemblers, cli, developer-tools.
- [jasmin](https://www.automicvault.com/pkg/brew/jasmin/) - Shares av.db curated category or tags: assembler, cli, compiler-tools, developer-tools.
- [nasm](https://www.automicvault.com/pkg/brew/nasm/) - Shares av.db curated category or tags: assembler, cli, developer-tools, x86.
- [wla-dx](https://www.automicvault.com/pkg/brew/wla-dx/) - Shares av.db curated category or tags: assembler, cli, compiler-tools, developer-tools.
- [aarch64-elf-binutils](https://www.automicvault.com/pkg/brew/aarch64-elf-binutils/) - Shares av.db curated category or tags: assembler, cli, developer-tools.
- [acme](https://www.automicvault.com/pkg/brew/acme/) - Shares av.db curated category or tags: assembler, cli, developer-tools.
- [asm6809](https://www.automicvault.com/pkg/brew/asm6809/) - Shares av.db curated category or tags: assembler, cli, developer-tools.
- [atasm](https://www.automicvault.com/pkg/brew/atasm/) - Shares av.db curated category or tags: assembler, cli, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/yasm.yml](https://github.com/automic-vault/db/blob/main/combined/yasm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
