Inject Your Way Out Of Dependency Hell

Toronto Perl Mongers

April 28, 2005

What is CPAN::Mini::Inject?

continued...

What is CPAN::Mini::Inject?

continued...

What is CPAN::Mini::Inject?

continued...

What is CPAN::Mini::Inject?

continued...

What is CPAN::Mini::Inject?

The Problems

Using modules from CPAN can have problems in production environments.

Version control and Private modules

Keeping module versions consistent or installing private modules on multiple servers can be a hassle.

continued...

Version control and Private modules

Keeping module versions consistent or installing private modules on multiple servers can be a hassle.

Distribution to customers

Distributing applications to your customers and making sure they have the proper prerequisite modules.

continued...

Distribution to customers

Distributing applications to your customers and making sure they have the proper prerequisite modules.

Testing distributions

Need to test a distribution on multiple platforms

continued...

Testing distributions

Need to test a distribution on multiple platforms

Firewalled from the Internet

For whatever reason, systems can have little to no access to the Internet.

continued...

Firewalled from the Internet

For whatever reason, systems can have little to no access to the Internet.

continued...

Firewalled from the Internet

For whatever reason, systems can have little to no access to the Internet.

continued...

Firewalled from the Internet

For whatever reason, systems can have little to no access to the Internet.

continued...

Firewalled from the Internet

For whatever reason, systems can have little to no access to the Internet.

CPAN::Mini::Inject Terminology

continued...

CPAN::Mini::Inject Terminology

continued...

CPAN::Mini::Inject Terminology

Getting Started

CPAN::Mini::Inject includes a command line tool named mcpani

mcpani Command line options

continued...

mcpani Command line options

continued...

mcpani Command line options

continued...

mcpani Command line options

continued...

mcpani Command line options

continued...

mcpani Command line options

There are more options to override those in the config file

Configuration files

mcpani searches the following locations for a configuration file

continued...

Configuration files

mcpani searches the following locations for a configuration file

Configuration Parameters

The configuration file is colon separated.

continued...

Configuration Parameters

The configuration file is colon separated.

continued...

Configuration Parameters

The configuration file is colon separated.

continued...

Configuration Parameters

The configuration file is colon separated.

continued...

Configuration Parameters

The configuration file is colon separated.

continued...

Configuration Parameters

The configuration file is colon separated.

Sample Configuration

local: /www/CPAN
remote : ftp://cpan.pair.com/
repository: /www/MYCPAN
dirmode: 0775
passive: yes

Updating the mirror

Updating the mirror is quite simple:

mcpani --update
continued...

Updating the mirror

Updating the mirror is quite simple:

mcpani --update

Adding modules

Modules are added to the repository with:

mcpani --add \
       --authorid=SSORICHE \
       --file My-New-Module-0.01.tar.gz
continued...

Adding modules

Modules are added to the repository with:

mcpani --add \
       --authorid=SSORICHE \
       --file My-New-Module-0.01.tar.gz

Extensibility

CPAN::Mini::Inject was designed from the outset to be easily overridable.

Where it's going

That's All