Updating perl modules

ju5t

Verified User
Joined
Sep 14, 2005
Messages
409
Location
Amsterdam
I think this is one of the things sysadmins seem to pay less attention to. Custombuild does not really take care of updating them too. We've just ran a script to update all our perl modules but of course some did fail -- perl can be such a pain.

I wonder though, how do you sysadmins handle updating perl modules? Also, I'm looking for a list of prerequisites of modules we cannot work without.

The following modules cannot be upgraded:

Code:
B::Assembler                   0.07    1.10    R/RU/RURBAN/B-C-1.34.tar.gz
Devel::DProf                   20050603.00 20110228.00 F/FL/FLORA/Devel-DProf-20110228.00.tar.gz
I18N::Collate                  1.00    1.02    F/FL/FLORA/I18N-Collate-1.02.tar.gz

Both Devel:: DProf and I18N::Collate are deprecated. B::Assembler throws a whole lot of errors which I can't seem to figure out. Why are we running on a 6 year old version anyway?

How safe is it to upgrade perl modules in DirectAdmin? Can we possibly break something?
 
SpamAssassin is using perl for instance. Even though upgrading it has not caused any issues, I am just wondering if there are any other scripts build on perl which DirectAdmin uses or if other software DirectAdmin provides is depending on it.
 
I'm not specifically talking about DirectAdmin. There are other services too. Exim uses perl. MySQL server needs DBI. And as said before, SpamAssassin is perl. Try running sa-update without the proper modules installed.

Other services might as well depend on it.
 
Code:
sa-update -D
would be better.

I've been using Directadmin since 2004, I've never run into any issue with wrong versions of perl modules. They are mostly uptodate. And I personally prefer to use yum (not Cpan) to update them.

With yum you can downgrade any module if you need.
 
Why would the -D be better? Because it displays debug messages? The result is still the same. If perl modules are missing it will report them without the -D flag as well.

You really should reconsider using cpan to update perl modules. They are not up to date at all. I've ran a quick reinstall on our test server to have it installed using CentOS 5.6. No remaining packages are set for updates.

CPAN itself is running on 1.76_02. 1.96_00 is available. This is not included in this list. And one a side note that Devel:: DProf and I18N::Collate are deprecated.

Code:
Archive::Tar                   1.48    1.76    B/BI/BINGOS/Archive-Tar-1.76.tar.gz
Attribute::Handlers            0.78_02 0.91    S/SM/SMUELLER/Attribute-Handlers-0.91.tar.gz
AutoLoader                     5.60    5.71    S/SM/SMUELLER/AutoLoader-5.71.tar.gz
autouse                        1.05    1.06    F/FL/FLORA/autouse-1.06.tar.gz
B::Assembler                   0.07    1.10    R/RU/RURBAN/B-C-1.34.tar.gz
B::Debug                       1.02_01 1.16    R/RU/RURBAN/B-Debug-1.16.tar.gz
B::Lint                        1.03    1.13    F/FL/FLORA/B-Lint-1.13.tar.gz
base                           2.07    2.15    R/RG/RGARCIA/base-2.15.tar.gz
bigint                         0.07    0.28    F/FL/FLORA/bignum-0.28.tar.gz
CGI                            3.15    3.55    M/MA/MARKSTOS/CGI.pm-3.55.tar.gz
Class::ISA                     0.33    0.36    S/SM/SMUELLER/Class-ISA-0.36.tar.gz
constant                       1.05    1.21    S/SA/SAPER/constant-1.21.tar.gz
Data::Dumper                   2.121_08 2.131   S/SM/SMUELLER/Data-Dumper-2.131.tar.gz
DB_File                        1.815   1.822   P/PM/PMQS/DB_File-1.822.tar.gz
Devel::DProf                   20050603.00 20110228.00 F/FL/FLORA/Devel-DProf-20110228.00.tar.gz
Devel::PPPort                  3.06_01 3.19    M/MH/MHX/Devel-PPPort-3.19.tar.gz
Devel::SelfStubber             1.03    1.05    F/FL/FLORA/Devel-SelfStubber-1.05.tar.gz
Digest                         1.15    1.16    G/GA/GAAS/Digest-1.16.tar.gz
Digest::MD5                    2.36    2.51    G/GA/GAAS/Digest-MD5-2.51.tar.gz
Digest::SHA1                   2.11    2.13    G/GA/GAAS/Digest-SHA1-2.13.tar.gz
Dumpvalue                      1.12    1.16    F/FL/FLORA/Dumpvalue-1.16.tar.gz
Encode                         2.12    2.43    D/DA/DANKOGAI/Encode-2.43.tar.gz
Env                            1.00    1.03    F/FL/FLORA/Env-1.03.tar.gz
Error                          0.17015 0.17016 S/SH/SHLOMIF/Error-0.17016.tar.gz
Exporter                       5.58    5.63    F/FE/FERREIRA/Exporter-5.63.tar.gz
ExtUtils::Command              1.16    1.17    F/FL/FLORA/ExtUtils-Command-1.17.tar.gz
ExtUtils::Constant             0.17    0.23    N/NW/NWCLARK/ExtUtils-Constant-0.23.tar.gz
ExtUtils::Install              1.52    1.54    Y/YV/YVES/ExtUtils-Install-1.54.tar.gz
Fatal                          1.03    2.10    P/PJ/PJF/autodie-2.10.tar.gz
File::CheckTree                4.3     4.41    F/FL/FLORA/File-CheckTree-4.41.tar.gz
File::Path                     1.08    2.08    D/DL/DLAND/File-Path-2.08.tar.gz
Filter::Simple                 0.82    0.87    S/SM/SMUELLER/Filter-Simple-0.87.tar.gz
Filter::Util::Call             1.0601  1.39    P/PM/PMQS/Filter-1.39.tar.gz
Getopt::Long                   2.35    2.38    J/JV/JV/Getopt-Long-2.38.tar.gz
HTML::Entities                 1.35    3.68    G/GA/GAAS/HTML-Parser-3.68.tar.gz
I18N::Collate                  1.00    1.02    F/FL/FLORA/I18N-Collate-1.02.tar.gz
if                             0.05    0.0601  I/IL/ILYAZ/modules/if-0.0601.tar.gz
IO                             1.22    1.25    G/GB/GBARR/IO-1.25.tar.gz
IO::Socket::SSL                1.06    1.44    S/SU/SULLR/IO-Socket-SSL-1.44.tar.gz
IO::Zlib                       1.09    1.10    T/TO/TOMHUGHES/IO-Zlib-1.10.tar.gz
IPC::Msg                       1.02    2.03    M/MH/MHX/IPC-SysV-2.03.tar.gz
List::Util                     1.21    1.23    G/GB/GBARR/Scalar-List-Utils-1.23.tar.gz
Locale::Constants              2.07    3.16    S/SB/SBECK/Locale-Codes-3.16.tar.gz
Locale::Country                2.07    3.17    S/SB/SBECK/Locale-Codes-3.17.tar.gz
Locale::Maketext               1.09    1.19    T/TO/TODDR/Locale-Maketext-1.19.tar.gz
Mail::SpamAssassin             3.003001 3.003002 K/KM/KMCGRAIL/Mail-SpamAssassin-3.3.2.tar.gz
Math::BigFloat                 1.51    1.993   P/PJ/PJACKLAM/Math-BigInt-1.993.tar.gz
Math::BigRat                   0.15    0.2602  P/PJ/PJACKLAM/Math-BigRat-0.2602.tar.gz
Math::Complex                  1.35    1.58    Z/ZE/ZEFRAM/Math-Complex-1.58.tar.gz
Memoize                        1.01    1.02    F/FL/FLORA/Memoize-1.02.tar.gz
MIME::Base64                   3.07    3.13    G/GA/GAAS/MIME-Base64-3.13.tar.gz
Net::CIDR::Lite                0.20    0.21    D/DO/DOUGW/Net-CIDR-Lite-0.21.tar.gz
Net::Cmd                       2.26    2.29    G/GB/GBARR/libnet-1.22.tar.gz
Net::DNS                       0.60    0.66    O/OL/OLAF/Net-DNS-0.66.tar.gz
Net::Ping                      2.31    2.36    S/SM/SMPETERS/Net-Ping-2.36.tar.gz
Net::SSLeay                    1.30    1.36    F/FL/FLORA/Net-SSLeay-1.36.tar.gz
NetAddr::IP                    4.027   4.044   M/MI/MIKER/NetAddr-IP-4.044.tar.gz
NEXT                           0.60    0.65    F/FL/FLORA/NEXT-0.65.tar.gz
Pod::Checker                   1.43    1.45    M/MA/MAREKR/Pod-Parser-1.38.tar.gz
Pod::LaTeX                     0.58    0.59    T/TJ/TJENNESS/Pod-LaTeX-0.59.tar.gz
Pod::Man                       1.37    2.25    R/RR/RRA/podlators-2.4.0.tar.gz
Pod::Perldoc                   3.14    3.15    F/FE/FERREIRA/Pod-Perldoc-3.15.tar.gz
Pod::Plainer                   0.01    1.03    R/RM/RMBARKER/Pod-Plainer-1.03.tar.gz
Safe                           2.27    2.29    R/RG/RGARCIA/Safe-2.29.tar.gz
Search::Dict                   1.02    1.03    F/FL/FLORA/Search-Dict-1.03.tar.gz
SelfLoader                     1.0904  1.18    S/SM/SMUELLER/SelfLoader-1.18.tar.gz
Shell                          0.6     0.72    F/FE/FERREIRA/Shell-0.72.tar.gz
Storable                       2.16    2.30    A/AM/AMS/Storable-2.30.tar.gz
Switch                         2.10_01 2.16    R/RG/RGARCIA/Switch-2.16.tar.gz
Sys::Syslog                    0.13    0.29    S/SA/SAPER/Sys-Syslog-0.29.tar.gz
Term::ANSIColor                1.10    3.00    R/RR/RRA/ANSIColor-3.00.tar.gz
Term::Cap                      1.09    1.12    J/JS/JSTOWE/Term-Cap-1.12.tar.gz
Term::ReadLine                 1.02    1.07    F/FL/FLORA/Term-ReadLine-1.07.tar.gz
Test::Harness::Straps          0.26    0.30    M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz
Text::Balanced                 1.95    2.02    A/AD/ADAMK/Text-Balanced-2.02.tar.gz
Text::ParseWords               3.24    3.27    C/CH/CHORNY/Text-ParseWords-3.27.zip
Text::Soundex                  1.01    3.03    M/MA/MARKM/Text-Soundex-3.03.tar.gz
Text::Tabs                     2005.0824 2009.0305 M/MU/MUIR/modules/Text-Tabs+Wrap-2009.0305.tar.gz
Thread::Queue                  2.00    2.12    J/JD/JDHEDDEN/Thread-Queue-2.12.tar.gz
Thread::Semaphore              2.01    2.12    J/JD/JDHEDDEN/Thread-Semaphore-2.12.tar.gz
threads                        1.07    1.83    J/JD/JDHEDDEN/threads-1.83.tar.gz
threads::shared                0.94    1.37    J/JD/JDHEDDEN/threads-shared-1.37.tar.gz
Tie::RefHash                   1.32    1.39    F/FL/FLORA/Tie-RefHash-1.39.tar.gz
Time::HiRes                    1.9717  1.9724  Z/ZE/ZEFRAM/Time-HiRes-1.9724.tar.gz
Time::Local                    1.11    1.2000  F/FL/FLORA/Time-Local-1.2000.tar.gz
Unicode::Collate               0.52    0.77    S/SA/SADAHIRO/Unicode-Collate-0.77-withoutworldwriteables.tar.gz
Unicode::Normalize             0.32    1.12    S/SA/SADAHIRO/Unicode-Normalize-1.12-withoutworldwriteables.tar.gz
URI                            1.35    1.58    G/GA/GAAS/URI-1.58.tar.gz
XSLoader                       0.06    0.15    S/SA/SAPER/XSLoader-0.15.tar.gz

As said, this is on CentOS 5.6.

Code:
# cat /etc/redhat-release
CentOS release 5.6 (Final)

Running the latest version of DirectAdmin

Code:
# /usr/local/directadmin/directadmin version
Version: DirectAdmin v.1.39.1

which is up to date according to yum (we're using rpmforge and centos mirrors):

Code:
Setting up Update Process
No Packages marked for Update

One reason for that being _no_ modules are installed using yum per default.

Code:
# rpm -qa | grep "perl"
perl-5.8.8-32.el5_6.3
 
Last edited:
OK, I see what you mean. I've got a fresh-installed server with Directadmin, and now I can confirm your words. Even though yum seems to me more preferable. That mostly caused by the fact, that my first production server was powered by FreeBSD, I think.
 
What does you think is the best way to keep those up2date?

Cause ive noticed there was a newer perl version also so i updated from source and then updated all modules and reinstalled spamassassin (that asked to install some modules cause i had installed with yum and older perl).

So, installed those modules and now work everything perfectly.

So, im confused now on what to use as best option, yum (that doesnt seem up2date) or cpan/perl source (that for sure is up2date).

Any suggestion appreciated.

Thanks
 
I have found that there are many times where yum just doesn't have the module I needed for a script I was writing. I always had to resort to CPAN, so I just stick with CPAN for all my modules updates anyway.
 
Last edited:
Please advice while? Could it break something in DA?

"Could it" - it is not impossible.

"Does it" - usually not.

AFAIK Exim and SpamAssassin are the two important apps that depend on Perl. Both usually break when I ugrade Perl itself (not just modules) - simple rebuild from Custombuild fixes them. I never had an issue with updating modules; however to be on the safe side - rebuild Exim and SpamAssassin if you want to be 100% sure that everything is OK.

P.S. I don't do it. Updating modules was always flawless for me. Or if it wasn't... I don't remember it :)
 
Back
Top