npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

pacman-debian

v7.8.0

Published

A Debian/Ubuntu package manager using Arch Linux pacman syntax. Manages .deb packages at dpkg level, supports Arch .pkg.tar.zst, AUR helpers (yay), and makepkg. Configurable multi-repo setup.

Readme

pacman-debian

A package manager that adopts the Arch Linux pacman command-line syntax while operating directly on Debian/Ubuntu .deb packages. It manages packages at the dpkg level — bypassing APT — and also supports native Arch Linux .pkg.tar.zst packages (including AUR compatibility via yay with a bundled libalpm).

Highlights (some of the notable features):

  • Zero dpkg dependency — version comparison algorithm ported from libdpkg, dpkg status parsed directly, no dpkg command required
  • Byte-indexed database — sorted idx with binary search, JSONL chunk storage
  • In-memory cache — idx files loaded once, package data cached by offset
  • Sub-100ms search — across 3000+ packages via idx scan + cached reads
  • Release-based Debian sync — fetches InRelease/Release first, validates SHA256 before downloading Packages (like apt)
  • XferCommand — custom download commands (aria2c, curl, wget)
  • Paclink file backend — mappings stored in /var/lib/pacman-debian/paclinks, C shim reads directly, no recompilation needed for new mappings
  • Official-style operation help-S, -R, -Q, -D, -T, -F, and -U each have their own localized --help output
  • Better upgrade summaries — verbose upgrades show repository, old/new versions, download size, and net installed-size change
  • More complete upgrades-Syu handles dpkg-only packages and explicit targets through the same transaction path
  • Safer package source changes — source takeover warnings and localized confirmation prompts are shown before package records and files change owners
  • More reliable local database lookups — package names are matched exactly, so packages such as pipewire and pipewire-bin cannot be confused
  • Pacman-style version outputpacman -V and pacman pacman show the Pac-Man banner with localized version text
  • Standalone paclink source — Arch-to-Debian mappings sync from the separate xbodwf/paclinks repository and write dpkg Provides: entries
  • Fast mapping transactionspaclink -Syu applies mapping changes in a batch instead of rewriting local indexes for every package
  • Official-style progress output — downloading, install/upgrade/downgrade/reinstall, and removal progress bars mirror upstream pacman, with .pacnew and "local package is newer than the repository" warnings
  • Foreign package query-Qm/-Qmq list installed packages not in any synced repository, and -S -/-U - read the target list from stdin

Introduction

Goals

  • Provide a consistent, pacman-style CLI for package management on Debian-based systems, eliminating the conceptual overhead of switching between apt, dpkg, and their various frontends.
  • Support multi-repository setups combining Debian/Ubuntu and Arch Linux repositories under a single tool.
  • Maintain full compatibility with dpkg's database (/var/lib/dpkg/status), allowing coexistence with APT and other dpkg frontends.
  • Provide a libalpm ABI-compatible shared library so that Go-based AUR helpers (yay) can work on Debian without modification.

Project Status

Functional for day-to-day package management on Debian-based distributions. See Project Status for details.

Installation

Requirements

  • Node.js 18+
  • Debian-based distribution (Debian, Ubuntu, Armbian, Linux Mint, etc.)
  • Root privileges for write operations
  • Build essentials: gcc, make, ldconfig (for libalpm C library)

Install

sudo npm install -g pacman-debian@latest
sudo $(which pacman-debian-setup)

[!WARNING] npm install -g must be run under sudo or as the root user. If you install as a regular user, Node.js will place pacman-debian into your home directory (~/.npm-global/ or similar), making it susceptible to tampering, malicious modification, or breakage by other users or scripts on the system. Always use sudo npm install -g.

After installation, run this to migrate the system's APT sources and start using pacman-debian:

sudo pacmigrate setup

Then sync the package sources and perform a full system upgrade:

sudo pacman -Sy
sudo pacman -Syu

pacmigrate setup reads both traditional sources.list/.list files and Ubuntu 24.04 deb822 .sources files. It leaves the APT files untouched, backs up the current pacman-debian configuration, and asks about common pacman options.

Synchronize Arch-to-Debian compatibility mappings separately:

sudo paclink -Syu

paclink uses the standalone paclinks repository as its mapping source. -Sy syncs it, -Su uses the cached source, and -U installs a local mapping file. Mapping packages are activated only when their Debian targets are installed. Active mappings are also written as dpkg Provides: entries, so APT and dpkg dependency checks can see them. Removing a target removes the mapping and warns if an installed Arch package still depends on that virtual name. See paclink documentation for verification commands.

Development Install

git clone https://github.com/xbodwf/pacman-debian.git
cd pacman-debian
pnpm install && pnpm build
sudo node dist/scripts/setup.js

See Installation for details.

Quick Start

# Search
pacman -Ss neofetch

# Install
sudo pacman -S neofetch

# Remove
sudo pacman -R neofetch

# Upgrade all
sudo pacman -Syu

# Query installed
pacman -Q

See Usage for complete command reference.

Documentation

| Topic | English | 中文 | |-------|---------|------| | Usage (full command reference) | docs/en/usage.md | docs/zh-CN/usage.md | | Configuration | docs/en/configuration.md | docs/zh-CN/configuration.md | | Architecture & Database | docs/en/architecture.md | docs/zh-CN/architecture.md | | makepkg | docs/en/makepkg.md | docs/zh-CN/makepkg.md | | libalpm & yay/AUR | docs/en/yay-aur.md | docs/zh-CN/yay-aur.md | | paclink (package links) | docs/en/paclink.md | docs/zh-CN/paclink.md | | Installation (detailed) | docs/en/installation.md | docs/zh-CN/installation.md |

License

GNU General Public License v3.0