CARMEL(1)

πŸ“¦
version 0.1.56 Β· 3 versions
, in fedora 43

πŸ’– CARMEL(1) β€” like, the whole vibe πŸ’–

okay bestie, sit down, hydrate, and let me tell you about carmel β€” it's a User Contributed Perl Documentation page (section 1, the classics ✨), and honestly? it's giving main character energy for your CPAN situation. no cap.


✨ NAME ✨

carmel β€” CPAN Artifact Repository Manager πŸŽ€

that's it. that's the whole name. short, iconic, does exactly what it says on the tin. πŸ’…


🌸 SYNOPSIS 🌸

here's the group chat rundown of everything carmel can do for you. run these from a directory that has a cpanfile or a cpanfile.snapshot in it, and watch the magic happen πŸ¦‹

# Run with a directory with cpanfile or cpanfile.snapshot
carmel install

# list all the modules to be loaded
carmel list

# list all the modules in a tree
carmel tree

# show a location where a module is installed
carmel show Plack

# update Plack to the latest
carmel update Plack

# update all the modules in the snapshot
carmel update

# pin modules to specific versions
carmel update DBI@1.633 Plack@1.0000

# show diffs for cpanfile.snapshot in a nice way
carmel diff

# Runs your perl script with modules from artifacts
carmel exec perl ...

# Requires all your modules in cpanfile in one shot
carmel exec perl -e 'use Carmel::Preload;'

# Roll out the currently selected modules into ./local
carmel rollout

# package modules tarballs and index into ./vendor/cache
carmel package

# use Carmel packages inside a script (without carmel exec)
perl -e 'use Carmel::Setup; ...'

# prints export PATH=... etc for shell scripting
carmel export

# find a module in a repository
carmel find DBI

# find a module matching the version query
carmel find Plack ">= 1.0000, < 1.1000"

lowkey obsessed with how much this thing does?? like, install to set everything up, list and tree to see what you've got, show to peek at where a module (hi Plack πŸ‘‹) actually lives, update to bump one thing or everything, and β€” my personal fave β€” pinning exact versions with that DBI@1.633 / Plack@1.0000 syntax. ✨

then there's diff for making cpanfile.snapshot changes actually readable (a blessing, fr fr), exec for running your perl with all your artifacts loaded β€” including the one-shot use Carmel::Preload; banger β€” and rollout to yeet the selected modules into ./local. 🫢

and when you're ready to ship? package tarballs your modules and indexes them into ./vendor/cache, export prints your export PATH=... shell setup so you can script it, and find hunts down a module β€” either by plain name (carmel find DBI) or with a version query like >= 1.0000, < 1.1000. no notes. πŸ‘‘

real talk though: those # lines at the top of each snippet are the original comments, so if you're copy-pasting, don't paste the comment into your shell and then act surprised. 😭

πŸ‘€ SEE ALSO πŸ‘€

  • Carmel β€” the module itself, go read it, it's right there 🧚

and that's the page!! πŸ’œ this one came to you from perl v5.42.0, dated 2025-07-25, and it lives in the CARMEL(1) section forever and ever. mwah. πŸ’‹ bye bestie, go install something iconic 🌈⭐

πŸ“¦ where this page comes from