Sponsored Content
Top Forums Shell Programming and Scripting Building my own CPAN repository Post 302404875 by rethink on Wednesday 17th of March 2010 11:13:51 AM
Old 03-17-2010
Building my own CPAN repository

Hi there , im not sure whether im in the right section, but because im talking about perl, i guess this is the right place :-)

I have a whole host (thousands in fact) of Solaris machines that are running different versions of perl with different module sets etc.


I wanted to know whether it was possible for me to set up my own 'internal' CPAN mirror that i can update with all 5.x modules so that i can go to each of my hosts and point it to my new CPAN repository to get updated or new modules ? (regardless if the host is running perl 5.005_03 or 5.10.0) As you can guess, my machines do not have direct access to the internet

I guess the other question would be, Can i use this internal CPAN mirror to actually upgrade perl on my system? i have a few machines that are running

Code:
This is perl, version 5.005_03 built for sun4-solaris

It would be nice if i could get them all to the latest 5.10 perl without major hassle?

is any of this possible
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

CYGWIN/CPAN install of Expect.pm

I am attempting to install a Perl Expect module via the CPAN . CPAN goes through the process but nothing happens, sample perl scripts can not find the Expect Module. CPAN was configured via the Default process " Are you ready for manual configuration? " answered "no". CPAN install seemed to find... (1 Reply)
Discussion started by: white222
1 Replies

2. Shell Programming and Scripting

CPAN: using only wget to d/l modules?

Is there a way to tell CPAN not to use Net::Ftp and the ftp binary? I want to only use wget to download perl modules. (2 Replies)
Discussion started by: dangral
2 Replies

3. Shell Programming and Scripting

Automating CPAN on FreeBSD

When using CPAN for the first time, a number of questions are prompted to the user, thereby halting the process. Since I am running FreeBSD I was wondering whether the inclusion of the port instead leads to the same result. So instead of having the following: perl -MCPAN -e "install DBD::SQLite"... (12 Replies)
Discussion started by: figaro
12 Replies

4. Shell Programming and Scripting

Error while trying to install from CPAN

Hi i was trying to install Text::CSV from cpan... it seemed to have downloaded everythign properly but was not able to run the make file... do u have any idea as to why this happened?? Install: ============================= If you install Text::CSV_XS v.0.70, it makes Text::CSV faster. ... (5 Replies)
Discussion started by: VGR
5 Replies

5. UNIX for Dummies Questions & Answers

Problem to upgrade CPAN

Hi all, Since yesterday, I'm trying to upgrade CPAN on my Synology sevrer, because I have the next message in CPAN shell : cpan> install cpan CPAN: Storable loaded ok Going to read /root/.cpan/Metadata Going to read /root/.cpan/sources/authors/01mailrc.txt.gz CPAN: Compress::Zlib... (2 Replies)
Discussion started by: mikael2235
2 Replies

6. Shell Programming and Scripting

cpan installation

Hi All, I need to install perl module using cpan, so befor that i checked cpan is installed or not . i tried , and got below output.but it is not clear to me. can u plz explain me. I dont know what the exactly cpan is useful. and in below why it is trying to create directory. $ cpan... (2 Replies)
Discussion started by: aish11
2 Replies

7. Shell Programming and Scripting

Unable to install module using cpan

Hi, I am unable to install module using cpan. It says 407 Proxy Authentication Required I did setup proxy server and given username and password in .bashrc file and apt.conf file. export http_proxy=http://username:password@proxyserver:portno/ However, still unable to install... (1 Reply)
Discussion started by: Anjan1
1 Replies

8. Red Hat

Error: Cannot retrieve repository metadata (repomd.xml) for repository: InstallMedia.

Most of my commands are returning this error on RHEL 6 64 bit: Also I tried installing many sofwtares, but it fails to correctly work. For example I treid installing dos2unix: # rpm -ivh dos2unix-5.3.3-5.ram0.98.src.rpm 1:dos2unix warning: user mockbuild does not... (0 Replies)
Discussion started by: India_2014
0 Replies

9. UNIX for Dummies Questions & Answers

How to install CPAN without using yum on Linux?

Hi all, I am on Linux box where CPAN is not working for downloading any perl modules. When I try "perl -MCPAN -e shell" as root as well as a user, I get following error: Can't locate CPAN.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl... (2 Replies)
Discussion started by: pat_pramod
2 Replies
Carton::Doc::FAQ(3pm)					User Contributed Perl Documentation				     Carton::Doc::FAQ(3pm)

NAME
Carton::Doc::FAQ - Frequently Asked Questions QUESTIONS
It looks useful, but what is the use case of this tool? The particular problem that carton is trying to address is this: You develop a Perl web application with dozens of CPAN module dependencies. You install these modules on your development machine, and describe these dependencies in your Makefile.PL or some other text format. Now you get a produciton environment on Cloud PaaS provider or some VPS, you install the dependencies using "cpanm --installdeps ." and it will pull all the latest releases from CPAN as of today and everything just works. A few weeks later, your application becomes more popular, and you think you need another machine to serve more requests. You set up another machine with vanilla perl installation and install the dependencies the same way. That will pull the latest releases from CPAN on that date, rather than the same as what you have today. And that is the problem. It's not likely that everything just breaks one day, but there's always a chance that one of the dependencies breaks an API compatibility, or just uploaded a buggy version to CPAN on that particular day. Carton allows you to lock these dependencies into a version controlled system, so that every time you deploy from a checkout, it is guaranteed that all the same versions are installed into the local environment. How is this different from DPAN or CPAN::Mini::Inject? First of all, if you currently use DPAN, CPAN::Mini::Inject, Shipwright or any other similar tools successfully, then that's totally fine. You don't need to switch to carton. If you experience difficulties with these tools, or are interested in what could be better in carton, keep on reading. carton definitely shares the goal with these private CPAN repository management tool: o Manage the dependencies tree locally o Take snapshots/lock the versions o Inject private modules into the repository Existing tools are designed to work with existing CPAN clients such as CPAN or CPANPLUS, and have accomplished that by working around the CPAN mirror structure. carton internally does the same thing, but its user interface is centerd around the installer, by implementing a wrapper for cpanm, so you can use the same commands in the development mode and deployment mode. Carton automatically maintains the carton.lock file, which is meant to be version controlled, inside your application directory. You don't need a separate database or a directory to maintain tarballs outside your application. The carton.lock file can always be generated out of the local library path, and carton can reproduce the tree using the lock file on other machines. I'm already using perlbrew and local::lib. Can I use carton with this? If you're using local::lib already with perlbrew perl, possibly with the new "perlbrew lib" command, that's great! There are multiple benefits over using perlbrew and local::lib for development and use Carton for deployment. The best practice and workflow to get your perl environment as clean as possible with lots of modules installed for quick development would be this: o Install fresh perl using perlbrew. The version should be the same against the version you'll run on the production environment (if any). o Once the installation is done, use "perlbrew lib" command to create a new local lib environment (let's call it devel) and always use the library as a default environment. Install as many modules as you would like into the devel library path. This ensures to have a vanilla "perl" library path as clean as possible. o When you build a new project that you want to manage dependencies via Carton, turn off the devel local::lib and create a new one, like carton. Install Carton and all of its dependencies to the carton local::lib path. Then run "carton install" like you normally do. Because devel and carton are isolated, the modules you installed into devel doesn't affect the process when carton builds the dependency tree for your new project at all. This could often be critical when you have a conditional dependency in your tree, like Any::Moose. perl v5.14.2 2012-05-18 Carton::Doc::FAQ(3pm)
All times are GMT -4. The time now is 10:57 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy