CPAN-SYSDEPS(1)

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

CPAN-SYSDEPS(1) πŸ’–

okay bestie, welcome to cpan-sysdeps β€” a User Contributed Perl Documentation moment, and honestly? it's giving ✨dependency detective✨. buckle up, we're finding out which system packages your CPAN modules are gonna need. πŸŽ€


NAME πŸ¦‹

cpan-sysdeps β€” report system dependencies for CPAN modules

like, it literally tells you what your system needs. no cap. πŸ’…


SYNOPSIS ✨

cpan-sysdeps --cpanmod Foo::Bar
cpan-sysdeps --cpandist Foo-Bar-1.23.tar.gz

two ways in, pick your fighter 🫢


DESCRIPTION 🧚

bestie. bestie. there is genuinely nothing here in the original. the DESCRIPTION section is just... vibes. empty. a blank canvas. 😭

the whole personality of this page lives in OPTIONS, so scroll down, i got you. πŸ’œ


OPTIONS πŸ‘‘

pick your CPAN thing (mandatory, fr fr) 🌸

you need at least one of these two. not optional. the tool will simply not know what you're talking about otherwise. πŸ™ˆ

  • --cpandist=Dist-Name β€” you're naming a CPAN distribution. feed it a dist name and it goes off. πŸ’«
  • --cpanmod=Dist::Name β€” you're naming a CPAN module. give it the module name instead. πŸŽ€
at least one of these two is mandatory. like, actually mandatory. πŸ’€

pretend you're on a whole different machine πŸ¦‹

these ones let you simulate another environment. cosplay, but for operating systems. iconic.

  • --os=operatingsystem β€” changes the operating system name. the values are exactly the same ones perl uses in $^O. no new vocabulary, same list. ✨
  • --osvers=version β€” changes the operating system version. and psst, on FreeBSD systems this is literally the output of uname -r. πŸ“
  • --linuxdistro=distid β€” for --os=linux only! changes the distribution id. it's a lowercase name, like debian or fedora. πŸ’…
  • --linuxdistrocodename=codename β€” for --os=linux only! changes the distribution version code name. think names like wheezy or jessie. 🧚
  • --linuxdistroversion=version β€” for --os=linux only! changes the distribution version. that's it, that's the whole job. 🌈

other options, the rest of the squad πŸ’œ

  • --uninstalled β€” shows you only the packages that are currently not installed. which, obviously, only makes sense if you're not simulating the environment as something else. like, if you're pretending to be on Fedora but asking what's uninstalled on your actual box... girl, that's not a vibe check, that's a mess. 😭

and also: if there happen to be alternatives in the package specifications and all of those alternatives are not installed, then they get reduced down to just the first package in the specification. okay? okay. 🫢

  • --dryrun β€” shows you the package installation commands that would run. window shopping. no commitment. πŸ’–
  • --run β€” actually runs the package installation commands. committing. actually doing it. πŸ”₯
  • --debug β€” turns on the "debug" option of CPAN::Plugin::Sysdeps. for when you want the behind-the-scenes tea. πŸ“

BUGS πŸ’€

okay so these are the known issues, and i'm gonna be honest with you because that's what besties do:

  • there's no real mapping from CPAN module names to distribution names, or the other way around. currently the move is to just stick to module names, because right now the mapping file only uses module names. a real solution would have to use CPAN.pm or some suitable web service. so like... it's a work in progress, bestie. 😭
  • right now you have to set both --linuxdistrocodename and --linuxdistroversion β€” there's no automatic conversion between the two. however, the mapping file currently only uses codenames, so it may be enough to specify just the codename one. iykyk. πŸ™ˆ
  • it's not possible to specify a custom mapping like you can in CPAN::Plugin::Sysdeps. nope. not happening. πŸ’€

EXAMPLES ✨

so cpan-sysdeps can be used to utilize CPAN::Plugin::Sysdeps::Mapping outside of CPAN.pm. slay. for example, on a Debian-like system:

apt-get install $(cpan-sysdeps --uninstalled --cpanmod Foo::Bar)

that's the "tell me what's missing and install it in one line" energy. main character behavior, honestly. πŸ‘‘

or, everywhere, no matter what you're on:

cpan-sysdeps --cpanmod Foo::Bar --run

just go. do the thing. πŸ”₯


AUTHOR πŸŽ€

Slaven Rezic

(thank you for your service, king πŸ’œ)


SEE ALSO 🌈

CPAN::Plugin::Sysdeps.

like, go read that one too, they're besties. 🫢


okay that's the whole page!! and for the cute sign-off: this lil beauty is from perl v5.42.2, dated 2026-06-29, and it's the CPAN-SYSDEPS(1) manual page. periodt. πŸ’…βœ¨πŸ¦‹

πŸ“¦ where this page comes from