-*- org -*-
____ ____ _ _ _ ____ _ _ _ _ / ___| _ \ / \ | \ | | _ _ _| _ \(_)___| |_ _ _ / \ _ __ ___| |__ | | | |_) / _ \ | \| |_| |(_|_) | | | / __| __(_|_) / _ \ | '__/ __| '_ \ | |___| __/ ___ \| |\ |_ _| _| |_| | \__ \ |_ _ _ / ___ \| | | (__| | | | \____|_| /_/ \_\_| \_| |_|(_|_)____/|_|___/\__(_|_)_/ \_\_| \___|_| |_|
[![CPANPLUS::Dist::Arch](https://github.com/jnbek/perl-cpanplus-dist-arch/actions/workflows/ci.yml/badge.svg)](https://github.com/jnbek/perl-cpanplus-dist-arch/actions/workflows/ci.yml)
CPANPLUS::Dist::Arch - CPANPLUS backend for building Archlinux pacman packages
CPAN is the name for both the repository of Perl modules mirrored around the world and the program that automatically installs modules from that international module list. CPANPLUS is the next evolution of the venerable CPAN shell.
ArchLinux is a Linux distribution known for its minimalism. The most distinguishing feature of ArchLinux is its use of the “pacman” package managing program. Packages for pacman are created with the “makepkg” script which is included with “pacman”.
CPANPLUS::Dist::Arch is a plugin whose goal is to bridge the gap between the CPAN and ArchLinux. CPANPLUS is already a great tool for downloading modules, resolving dependencies, and installing modules. This module acts as a plugin, installing itself into the CPANPLUS internals and managing the module building and installation process.
Instead of CPANPLUS’s usual behavior, Perl modules are instead built as ArchLinux packages by using “makepkg”. Instead of the straight-forward installation of modules by copying files into system-wide locations, these built packages are installed using “pacman”. This offers the advantage of better dependency tracking and uninstallation.
To install this module manually follow these steps. If you have already downloaded and extracted the distribution tarball (CPANPLUS-Dist-Arch-<version>.tar.gz) in order to read this README file, skip to step 4.
- Download the distribution tarball from CPAN.
- Extract the tarball.
- cd into the extracted directory (CPANPLUS-Dist-Arch-<version>)
- Run perl Build.PL to create the Build file.
- Run ./Build to build the module using the Build file.
- (Optional) Run ./Build test to run automated self-tests.
- Run ./Build install to install the perl module into a system directory.
curl -O http://.../CPANPLUS-Dist-Arch-X.XX.tar.gz tar xf CPANPLUS-Dist-Arch-X.XX.tar.gz cd CPANPLUS-Dist-Arch-X.XX perl Build.PL ./Build ./Build test sudo ./Build install
Or better yet, use a CPAN shell to do it for you! CPANminus is available on CPAN under the name “App-cpanminus”.
The steps above install this module into your system where it is available for use by perl. You will also need to activate CPANPLUS::Dist::Arch as a plugin to the CPANPLUS shell.
I have included a program called ‘setupdistarch’ that makes this easier. Run the program and answer yes in order to enable automatic packaging of installed CPANPLUS modules.
$ setupdistarch Are you sure you want to auto-package CPAN installs? [Yn] y CPANPLUS will now auto-package modules.
See the ‘setupdistarch’ manpage for more information.
A number of modules are required to run CPANPLUS::Dist::Arch. These are all included with recent versions of perl so you should not need to install anything before you can use it.
- CPANPLUS
- Digest::MD5
- Pod::Select
- List::Util
- File::Path
- File::Copy
- File::stat
- DynaLoader
- IPC::Cmd
- version
- English
- Carp
- Cwd
C::D::A uses templates for creating PKGBUILD files. It is possible to override the template that is used in order to customize PKGBUILDs completely to your liking. If you do this you might want to use a template module instead of C::D::A’s crude internal template engine. Template modules are searched for in this order:
Priority | Module | CPAN Distribution |
---|---|---|
1 | Template::Toolkit | Template |
2 | Template::Alloy | Template-Alloy |
3 | Template::tiny | Template-Tiny |
Run ‘man CPANPLUS::Dist::Arch’ after installing to view the manpage.
https://www.archlinux.org/packages/community/any/perl-cpanplus-dist-arch/
http://github.com/jnbek/perl-cpanplus-dist-arch
http://wiki.archlinux.org/index.php/Perl_Package_Guidelines
http://wiki.archlinux.org/index.php/Pacman
http://wiki.archlinux.org/index.php/Makepkg
http://search.cpan.org/dist/CPANPLUS/
Created by: Justin Davis <juster at cpan dot org>
Serendipitously maintained by: John D Jones III <jnbek at cpan dot org>
Send me an e-mail if you have any questions or need help. If you run into any bugs please e-mail any information about them.
Copyright 2013 Justin Davis.
Copyright 2015 John D Jones III
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.