Results 1 to 5 of 5

Thread: Providing the perl stack as RPMs

  1. #1
    cPanel Development cPanelKenneth's Avatar
    Join Date
    Apr 2006
    Posts
    4,133
    cPanel/WHM Access Level

    Root Administrator

    Default Providing the perl stack as RPMs

    The information in this post is about a project in motion. The final delivery may differ from what is discussed here, especially as we consider the feedback you have.

    Our last article discussed changing from compile-on-demand to delivery of pre-compiled binary packages, using the RPM format. A primary driver behind this was our use of perl. To deliver perl via pre-built RPM packages required a number of changes to the product.

    cPanel & WHM will no longer install perl from source. Rather pre-built RPMs will deliver perl and its dependencies.


    Installation Layout

    From an architectural standpoint we will treat /usr/local/cpanel/3rdparty as the root file system (/) for the purpose of third party applications. This means you will find a bin, lib, include and other standard directories therein.

    There is some deviation in the directory organization. For example we have historically installed mailman to /usr/local/cpanel/3rdparty/mailman. These historical uses will remain for 11.34. In fact we build on that variation in order to support multiple versions of an application, or language, being installed simultaneously.

    For 11.34 we will upgrade the external (more on that in a moment) perl from 5.8.8 to 5.14. It is installed to /usr/local/cpanel/3rdparty/perl/514. The executables are symlinked to /usr/local/cpanel/3rdparty/bin (e.g. /usr/local/cpanel/3rdparty/bin/perl).

    Barring a few special circumstances all CPAN modules will be distributed as RPMs with cPanel & WHM. Modules formerly managed by checkperlmodules, and similar scripts, are now provided by RPM. The scripts that installed modules from source no longer exist. These modules likewise are all in /usr/local/cpanel/3rdparty.

    Environment and Use

    Most of the perl scripts we distribute with cPanel & WHM will have their shebangs adjusted to /usr/local/cpanel/3rdparty/bin/perl. This perl currently has the following include paths:
    Code:
        @INC:
            /usr/local/cpanel
            /usr/local/cpanel/3rdparty/perl/514/lib64/perl5/cpanel_lib/x86_64-linux-64int
            /usr/local/cpanel/3rdparty/perl/514/lib64/perl5/cpanel_lib
            /usr/local/cpanel/3rdparty/perl/514/lib64/perl5/5.14.2/x86_64-linux-64int
            /usr/local/cpanel/3rdparty/perl/514/lib64/perl5/5.14.2
            /opt/perl5/514/site_lib/x86_64-linux-64int
            /opt/perl5/514/site_lib
    (Substitute lib for lib64 on a 32-bit system.)

    Note: I believe the /opt locations will change prior to shipping.

    CPAN modules can be installed using /usr/local/cpanel/3rdparty/perl/514/bin/cpan (or /usr/local/cpanel/3rdparty/perl/514/bin/cpanm). These install to the @INC locations listed above.

    Applications and scripts are free to use the cPanel-provided perl. To do this they will need to modify their shebang. If an application needs to support both 11.34 and older versions of cPanel & WHM, modifying the first line of your script to the following should ensure multi-version compatibility:
    Code:
        #!/bin/sh                                                                                                                                                                                               
        eval 'if [ -x /usr/local/cpanel/3rdparty/bin/perl ]; then exec /usr/local/cpanel/3rdparty/bin/perl -x -- $0 ${1+"$@"}; else exec /usr/bin/perl -x $0 ${1+"$@"}; fi;'
        if 0;
        #!/usr/bin/perl
    From the foregoing it should be apparent that beginning with 11.34 systems can have two or more of the following perl implementations present:
    • cPanel provided RPM
    • cPanel provided source install
    • OS Provided RPM


    Fresh installs of 11.34 should only have two of the above. Upgrades from older versions of cPanel & WHM could have all three. We are leaving the existing source installed implementation in place after the upgrade so existing applications continue to function.


    CPAN Modules

    How do I install a CPAN module and have it be available for everything?

    In particular, how do I install a CPAN module once and have it be usable by:
    • Applications used by cpsrvd
    • Command line scripts


    This is really determined by the perl shebang used by the script or applications. The tools we provide to install CPAN modules, such as scripts/perlinstaller, have always installed the modules to /usr/lib or /usr/local/lib. These are the search paths normally used by the perl binary at /usr/bin/perl. This will not change.

    Using the cpan and cpanm utilities provided by our RPM will install to a location outside of /usr/local/cpanel. These modules will not be overwritten or managed in any fashion by cPanel & WHM. If you want them updated, you will need to maintain them in your own fashion.

    Given the above, if you want the experience of ‘install a CPAN module once, have it work every where’ then:
    • Change your shebang to /usr/local/cpanel/3rdparty/bin/perl
    • Use the cpan and cpanm utilities in /usr/local/cpanel/3rdparty/perl/514/bin/ to perform your installs.


    What About the CPAN Installers in cPanel & WHM?

    The cPanel interface has always installed to the user’s home directory. This behavior will not change in 11.34.

    The WHM interface has always installed to the system location (/usr/lib or /usr/local/lib). This behavior will not change in 11.34.


    What CPAN Modules Come as RPMs?

    At the time of writing these are:
    • Acme-Bleach
    • Acme-Damn
    • Acme-Spork
    • Algorithm-Diff
    • Any-Moose
    • App-Cmd
    • AppConfig
    • App-cpanminus
    • App-Nopaste
    • App-perlbrew
    • Archive-Any
    • Archive-Extract
    • Archive-Tar
    • Archive-Tar-Streamed
    • Archive-Zip
    • Attribute-Handlers
    • Authen-Libwrap
    • Authen-SASL
    • autobox
    • autodie
    • AutoLoader
    • B-C
    • B-Debug
    • B-Flags
    • B-Hooks-EndOfScope
    • B-Hooks-OP-Check
    • B-Hooks-OP-PPAddr
    • bignum
    • B-Keywords
    • B-Lint
    • Browser-Open
    • BSD-Resource
    • Bundle-CPAN
    • Bundle-Interchange
    • Business-ISBN
    • Business-ISBN-Data
    • Business-OnlinePayment
    • Business-OnlinePayment-AuthorizeNet
    • Business-UPS
    • B-Utils
    • Cache-FastMmap
    • Capture-Tiny
    • Carp-Always
    • Carp-Assert
    • Carp-Assert-More
    • Carp-Clan
    • Catalyst-Action-RenderView
    • Catalyst-Action-REST
    • Catalyst-ActionRole-ACL
    • Catalyst-Authentication-Store-DBIx-Class
    • Catalyst-Component-InstancePerContext
    • Catalyst-Controller-ActionRole
    • Catalyst-Devel
    • Catalyst-Log-Logperl
    • Catalyst-Model-DBIC-Schema
    • Catalyst-Plugin-Authentication
    • Catalyst-Plugin-Authorization-Roles
    • Catalyst-Plugin-AutoCRUD
    • Catalyst-Plugin-Browser
    • Catalyst-Plugin-Cache
    • Catalyst-Plugin-Cache-FastMmap
    • Catalyst-Plugin-ConfigLoader
    • Catalyst-Plugin-HashedCookies
    • Catalyst-Plugin-Redirect
    • Catalyst-Plugin-Session
    • Catalyst-Plugin-Session-State-Cookie
    • Catalyst-Plugin-Session-Store-FastMmap
    • Catalyst-Plugin-StackTrace
    • Catalyst-Plugin-Static-Simple
    • Catalyst-Plugin-Unicode-Encoding
    • Catalyst-Plugin-UploadProgress
    • Catalyst-Runtime
    • Catalyst-TraitFor-Request-BrowserDetect
    • Catalyst-View-JSON
    • Catalyst-View-TT
    • CatalystX-Component-Traits
    • CatalystX-RoleApplicator
    • CDB_File
    • CGI-FormBuilder
    • CGI-FormBuilder-Source-Perl
    • CGIpm
    • CGI-Session
    • CGI-Simple
    • CHI
    • Class-Accessor
    • Class-Accessor-Chained
    • Class-Accessor-Grouped
    • Class-Base
    • Class-C
    • Class-C-Adopt-NEXT
    • Class-C-Componentised
    • Class-Data-Inheritable
    • Class-ErrorHandler
    • Class-Factory-Util
    • Class-Inner
    • Class-Inspector
    • Class-Load
    • Class-Loader
    • Class-Load-XS
    • Class-MakeMethods
    • Class-MethodMaker
    • Class-Method-Modifiers
    • Class-Singleton
    • Class-Std
    • Class-Std-Utils
    • Class-Unload
    • Class-XSAccessor
    • Clipboard
    • Clone
    • common-sense
    • Compress-Bzip
    • Compress-Raw-Bzip
    • Compress-Raw-Zlib
    • Config-Any
    • Config-Crontab
    • Config-General
    • Config-GitLike
    • Config-INI
    • Config-MVP
    • Config-MVP-Reader-INI
    • Config-Tiny
    • constant
    • Context-Preserve
    • Convert-ASCII-Armour
    • Convert-ASN
    • Convert-BinHex
    • Convert-PEM
    • CPAN
    • CPAN-DistnameInfo
    • Cpanel-Class
    • Cpanel-Cleanup
    • cPanel-MemTest
    • cPanel-SyncUtil
    • Cpanel-TaskQueue
    • CPAN-Meta
    • CPAN-Meta-YAML
    • CPAN-Perl-Releases
    • CPANPLUS
    • CPANPLUS-Dist-Build
    • CPAN-SQLite
    • CPAN-Uploader
    • Crypt-Blowfish
    • Crypt-CAST_PP
    • Crypt-CBC
    • Crypt-DES
    • Crypt-DES_EDE
    • Crypt-DSA
    • Crypt-GPG
    • Crypt-IDEA
    • Crypt-OpenPGP
    • Crypt-OpenSSL-Bignum
    • Crypt-OpenSSL-DSA
    • Crypt-OpenSSL-Random
    • Crypt-OpenSSL-RSA
    • Crypt-Passwd-XS
    • Crypt-Primes
    • Crypt-Random
    • Crypt-RC
    • Crypt-Rijndael
    • Crypt-RIPEMD
    • Crypt-RSA
    • Crypt-SSLeay
    • Crypt-Twofish
    • Curses
    • Curses-UI
    • Danga-Socket
    • Data-Buffer
    • Data-Compare
    • Data-Dump
    • Data-Dumper
    • Data-Dumper-Concise
    • Data-Dump-Streamer
    • Data-OptList
    • Data-Page
    • Data-Section
    • Data-Serializer
    • Data-UUID
    • Data-Visitor
    • Date-Simple
    • DateTime
    • DateTime-Format-Builder
    • DateTime-Format-Mail
    • DateTime-Format-Pg
    • DateTime-Format-Strptime
    • DateTime-Format-WCDTF
    • DateTime-Locale
    • DateTime-TimeZone
    • DateTime-Tiny
    • Date-Tiny
    • DBD-Mock
    • DBD-mysql
    • DBD-Pg
    • DBD-SQLite
    • DBD-SQLite
    • DB_File
    • DBI
    • DBIx-Class
    • DBIx-Class-Schema-Loader
    • DBIx-MyParsePP
    • Devel-Caller
    • Devel-Cover
    • Devel-Cycle
    • Devel-Declare
    • Devel-GlobalDestruction
    • Devel-Hide
    • Devel-LexAlias
    • Devel-NYTProf
    • Devel-PartialDump
    • Devel-PatchPerl
    • Devel-PPPort
    • Devel-REPL
    • Devel-Size
    • Devel-StackTrace
    • Devel-StackTrace-AsHTML
    • Devel-Symdump
    • Diff-LibXDiff
    • Digest
    • Digest-BubbleBabble
    • Digest-HMAC
    • Digest-JHash
    • Digest-MD
    • Digest-MD
    • Digest-MD-File
    • Digest-Perl-MD
    • Digest-SHA
    • Digest-SHA
    • Dist-CheckConflicts
    • Dist-Zilla
    • Dist-Zilla-Plugin-Git
    • Dist-Zilla-Plugin-GitHub
    • dualcore-metacpnoarch
    • Email-Abstract
    • Email-Address
    • Email-Date-Format
    • Email-MessageID
    • Email-MIME
    • Email-MIME-ContentType
    • Email-MIME-Encodings
    • Email-MIME-Kit
    • Email-Sender
    • Email-Simple
    • Email-Valid
    • Encode
    • Encode-Detect
    • Encode-Locale
    • encoding-warnings
    • Env
    • Error
    • Eval-Closure
    • Exception-Class
    • Expect
    • Exporter
    • Exporter-Declare
    • Exporter-Lite
    • ExtUtils-CBuilder
    • ExtUtils-Command
    • ExtUtils-Constant
    • ExtUtils-Depends
    • ExtUtils-Install
    • ExtUtils-MakeMaker
    • ExtUtils-Manifest
    • ExtUtils-ParseXS
    • File-BaseDir
    • File-ChangeNotify
    • File-chdir
    • File-Comments
    • File-Copy-Recursive
    • File-DesktopEntry
    • File-Fetch
    • File-Find-Rule
    • File-Find-Rule-Filesys-Virtual
    • File-Find-Rule-Perl
    • File-HomeDir
    • File-Listing
    • File-MimeInfo
    • File-MMagic
    • File-MMagic-XS
    • File-Next
    • File-Path
    • File-Path-Tiny
    • File-pushd
    • File-Remove
    • File-ShareDir
    • File-ShareDir-Install
    • File-Slurp
    • Filesys-Df
    • Filesys-Notify-Simple
    • Filesys-Statvfs
    • Filesys-Virtual
    • File-Tail
    • File-Temp
    • File-Touch
    • File-Which
    • Filter
    • Filter-Simple
    • forks
    • GD
    • GDGraph
    • GDTextUtil
    • Gearman
    • Geography-Countries
    • Geo-IPfree
    • Getopt-Euclid
    • Getopt-Long
    • Getopt-Long-Descriptive
    • Getopt-Param
    • Getopt-Param-Tiny
    • Git-Repository
    • Git-Wrapper
    • Graph-Easy
    • Graph-Easy-As_svg
    • Graph-Easy-Manual
    • Graph-Flowchart
    • GSSAPI
    • Hash-Merge
    • Hash-Merge-Simple
    • Hash-MoreUtils
    • Hash-MultiValue
    • Hash-Util-FieldHash-Compat
    • Hook-LexWrap
    • HTML-Form
    • HTML-Parser
    • HTML-StripTags
    • HTML-Tagset
    • HTML-Template
    • HTML-Tree
    • HTTP-Body
    • HTTP-BrowserDetect
    • HTTP-Cookies
    • HTTP-Daemon
    • HTTP-Daemon-App
    • HTTP-Daemon-SSL
    • HTTP-Date
    • HTTP-Lite
    • HTTP-Message
    • HTTP-Negotiate
    • HTTP-Parser-XS
    • HTTP-Request-AsCGI
    • HTTP-Server-Simple
    • HTTP-Tiny
    • Image-Base
    • Image-Info
    • Image-Size
    • Image-Xbm
    • Image-Xpm
    • IO
    • IO-AIO
    • IO-All
    • IO-Compress
    • IO-Interactive
    • IO-Interactive-Tiny
    • IO-Interface
    • IO-Prompt
    • IO-Socket-ByteCounter
    • IO-Socket-INET
    • IO-Socket-SSL
    • IO-String
    • IO-stringy
    • IO-TieCombine
    • IO-Tty
    • IO-Zlib
    • IPC-Cmd
    • IP-Country
    • IPC-Pipeline
    • IPC-Run
    • IPC-Run
    • IPC-SysV
    • JSON
    • JSON-Any
    • JSON-XS
    • Lchown
    • Lexical-Persistence
    • libnet
    • lib-restrict
    • libwww-perl
    • libxml-perl
    • Lingua-EN-Inflect
    • Lingua-EN-Inflect-Number
    • Lingua-EN-Inflect-Phrase
    • Lingua-EN-Tagger
    • Lingua-PT-Stemmer
    • Lingua-Stem
    • Lingua-Stem-Fr
    • Lingua-Stem-It
    • Lingua-Stem-Ru
    • Lingua-Stem-Snowball-Da
    • Linux-Inotify
    • List-Cycle
    • List-MoreUtils
    • Locale-Codes
    • Locale-Maketext
    • Locale-Maketext-Pseudo
    • Locale-Maketext-Simple
    • Locales
    • local-lib
    • Log-Any
    • Log-Contextual
    • Log-Dispatch
    • Log-Dispatch-Array
    • Log-Dispatch-Config
    • Log-Dispatchouli
    • Log-Logperl
    • Log-Message
    • Log-Message-Simple
    • LWP-MediaTypes
    • LWP-Protocol-https
    • Mail-Alias-Reader
    • Mail-DKIM
    • Mail-DomainKeys
    • Mail-SendEasy
    • Mail-Sender
    • Mail-Sender-Easy
    • Mail-SpamAssassin
    • Mail-SPF
    • Mail-SRS
    • MailTools
    • Math-Base
    • Math-BigInt
    • Math-BigInt-FastCalc
    • Math-BigInt-GMP
    • Math-BigInt-Pari
    • Math-BigRat
    • Math-Complex
    • Math-Fibonacci
    • Math-Fibonacci-Phi
    • Math-Pari
    • Math-Round
    • MD
    • Memoize
    • Memoize-ExpireLRU
    • Meta-Builder
    • MIME-Base
    • MIME-Base
    • MIME-Lite
    • MIME-Types
    • Mixin-Linewise
    • MLDBM
    • Modern-Perl
    • Module-Build
    • Module-CoreList
    • Module-Extract-VERSION
    • Module-Find
    • Module-Implementation
    • Module-Install
    • Module-Load
    • Module-Load-Conditional
    • Module-Loaded
    • Module-Metadata
    • Module-Pluggable
    • Module-Refresh
    • Module-Runtime
    • Module-ScanDeps
    • Module-Signature
    • Module-Want
    • Moo
    • Moose
    • Moose-Autobox
    • MooseX-App-Cmd
    • MooseX-AttributeHelpers
    • MooseX-AttributeShortcuts
    • MooseX-ClassAttribute
    • MooseX-Clone
    • MooseX-ConfigFromFile
    • MooseX-Daemonize
    • MooseX-Declare
    • MooseX-Emulate-Class-Accessor-Fast
    • MooseX-Getopt
    • MooseX-GlobRef
    • MooseX-Has-Sugar
    • MooseX-InsideOut
    • MooseX-Iterator
    • MooseX-LazyLogDispatch
    • MooseX-LazyRequire
    • MooseX-LogDispatch
    • MooseX-Log-Logperl
    • MooseX-Meta-TypeConstraint-ForceCoercion
    • MooseX-MethodAttributes
    • MooseX-Method-Signatures
    • MooseX-NonMoose
    • MooseX-Object-Pluggable
    • MooseX-OneArgNew
    • MooseX-Param
    • MooseX-Params-Validate
    • MooseX-POE
    • MooseX-RelatedClassRoles
    • MooseX-Role-Cmd
    • MooseX-Role-Parameterized
    • MooseX-Role-TraitConstructor
    • MooseX-Role-WithOverloading
    • MooseX-SemiAffordanceAccessor
    • MooseX-SetOnce
    • MooseX-SimpleConfig
    • MooseX-Singleton
    • MooseX-Storage
    • MooseX-StrictConstructor
    • MooseX-Traits
    • MooseX-Traits-Pluggable
    • MooseX-Types
    • MooseX-Types-Common
    • MooseX-Types-DateTime
    • MooseX-Types-LoadableClass
    • MooseX-Types-Path-Class
    • MooseX-Types-Perl
    • MooseX-Types-Set-Object
    • MooseX-Types-Structured
    • MooseX-Workers
    • Mozilla-CA
    • MRO-Compat
    • namespace-autoclean
    • namespace-clean
    • NetAddr-IP
    • Net-AIM
    • Net-CIDR
    • Net-Daemon
    • Net-Daemon-SSL
    • Net-DAV-Server
    • Net-DNS
    • Net-DNS-SEC
    • Net-FTPSSL
    • Net-HTTP
    • Net-HTTPS-Any
    • Net-Ident
    • Net-IP
    • Net-IP-Match-Regexp
    • Net-IPvAddr
    • Net-Jabber
    • Net-Jabber-Bot
    • Net-LDAP-Server
    • Net-LibIDN
    • Net-OpenSSH
    • Net-OSCAR
    • Net-Ping
    • Net-Server
    • Net-SFTP-Foreign
    • Net-SNMP
    • Net-SOCKS
    • Net-SSLeay
    • Net-TCPwrappers
    • Net-Telnet
    • Net-XMPP
    • NEXT
    • Number-Compare
    • Object-Accessor
    • Object-Signature
    • OLE-Storage_Lite
    • Opcodes
    • Package-Constants
    • Package-DeprecationManager
    • Package-Stash
    • Package-Stash-XS
    • PadWalker
    • Params-Check
    • Params-Util
    • Params-Validate
    • PAR-Dist
    • parent
    • Parse-CPAN-Meta
    • Parse-Method-Signatures
    • Parse-RecDescent
    • Path-Class
    • Path-Iter
    • PathTools
    • Perlbal
    • Perl-Critic
    • PerlIO-via-QuotedPrint
    • Perl-Junction
    • perl-ldap
    • Perl-MinimumVersion
    • Perl-OSType
    • Perl-PrereqScanner
    • Perl-Tidy
    • Perl-Version
    • Plack
    • Plack-Middleware-ReverseProxy
    • Plack-Test-ExternalServer
    • Pod-Coverage
    • Pod-Coverage-Moose
    • Pod-Escapes
    • Pod-Eventual
    • Pod-LaTeX
    • podlators
    • Pod-Parser
    • Pod-Perldoc
    • Pod-Readme
    • Pod-Simple
    • Pod-Spell
    • POE
    • POE-Test-Loops
    • PPI
    • PPIx-Regexp
    • PPIx-Utilities
    • Pristine-Tar
    • Probe-Perl
    • Proc-Daemon
    • Proc-ProcessTable
    • Quota
    • Readonly
    • Readonly-XS
    • Regexp-Common
    • Regexp-Parser
    • REST-Google
    • REST-Google-Translate
    • Role-HasMessage
    • Role-Identifiable
    • RRDs
    • Safe
    • Safe-Hole
    • Scalar-List-Utils
    • Scope-Guard
    • Scope-Upper
    • SelfLoader
    • Set-Crontab
    • Set-Object
    • Shell
    • Smart-Comments
    • Snowball-Norwegian
    • Snowball-Swedish
    • SOAP-Lite
    • Socket
    • Software-License
    • Sort-Versions
    • Spreadsheet-ParseExcel
    • Spreadsheet-ParseExcel-Simple
    • Spreadsheet-WriteExcel
    • Spreadsheet-WriteExcel-Simple
    • SQL-Abstract
    • SQL-Statement
    • SQL-Translator
    • Starman
    • Storable
    • strictures
    • String-BOM
    • String-CamelCase
    • String-CRC
    • String-Errf
    • String-Flogger
    • String-Format
    • String-Formatter
    • String-RewritePrefix
    • String-ToIdentifier-EN
    • String-Unquotemeta
    • Sub-Exporter
    • Sub-Exporter-ForMethods
    • Sub-Exporter-GlobExporter
    • Sub-Install
    • Sub-Name
    • Sub-Uplevel
    • SVG-TT-Graph
    • Sysadm-Install
    • Sys-Hostname-Long
    • Sys-Mmap
    • Sys-SigAction
    • Sys-Syscall
    • Sys-Syslog
    • System-Command
    • Task-Cpanel-Catalyst
    • Task-Cpanel-Core
    • Task-Cpanel-EA
    • Task-Cpanel-Internal
    • Task-Cpanel-Kensho
    • Task-Cpanel-rdparty
    • Task-Weaken
    • Template-Timer
    • Template-Toolkit
    • Term-ANSIColor
    • Term-Cap
    • Term-ProgressBar
    • Term-ProgressBar-Quiet
    • Term-ProgressBar-Simple
    • TermReadKey
    • Term-UI
    • Test
    • Test-Carp
    • Test-Class
    • Test-CPAN-Meta
    • Test-CPAN-Meta-YAML
    • Test-Deep
    • Test-Differences
    • Test-Exception
    • Test-File-Contents
    • Test-Harness
    • Test-LongString
    • Test-Manifest
    • Test-Memory-Cycle
    • Test-MinimumVersion
    • Test-Mock-Cmd
    • Test-MockModule
    • Test-MockObject
    • Test-Most
    • Test-NoWarnings
    • Test-Object
    • Test-Output
    • Test-Pod
    • Test-Pod-Coverage
    • Test-Script
    • Test-SharedFork
    • Test-Simple
    • Test-SubCalls
    • Test-TCP
    • Test-Tester
    • Test-Unit
    • Test-use-ok
    • Test-Warn
    • Test-WWW-Mechanize
    • Test-YAML-Meta
    • Test-YAML-Valid
    • Text-Balanced
    • Text-CSV
    • Text-CSV_XS
    • Text-Diff
    • Text-Extract-MaketextCallPhrases
    • Text-Fold
    • Text-German
    • Text-Glob
    • Text-Iconv
    • Text-ParseWords
    • Text-SimpleTable
    • Text-Soundex
    • Text-Tabs+Wrap
    • Text-Template
    • Text-Trim
    • Text-Unidecode
    • Thread-Queue
    • Thread-Semaphore
    • Throwable
    • Tie-DBI
    • Tie-EncryptedHash
    • Tie-File
    • Tie-IxHash
    • Tie-RefHash
    • Tie-ShadowHash
    • Tie-ToObject
    • TimeDate
    • Time-Duration
    • Time-Duration-Parse
    • Time-HiRes
    • Time-Local
    • Time-modules
    • Time-Piece
    • Time-Tiny
    • Tree-DAG_Node
    • Tree-MultiNode
    • Tree-Simple
    • Tree-Simple-VisitorFactory
    • TryCatch
    • Try-Tiny
    • Unicode-Collate
    • Unicode-Normalize
    • UNIVERSAL-can
    • UNIVERSAL-isa
    • Unix-PID
    • Unix-PID-Tiny
    • Unix-Syslog
    • URI
    • URI-Find
    • Variable-Magic
    • version
    • Version-Next
    • Version-Requirements
    • Want
    • WWW-Form
    • WWW-Mechanize
    • WWW-Mechanize-TreeBuilder
    • WWW-Pastebin-PastebinCom-Create
    • WWW-RobotRules
    • XML-Atom
    • XML-DOM
    • XML-Filter-BufferText
    • XML-Generator-PerlData
    • XML-LibXML
    • XML-NamespaceSupport
    • XML-Parser
    • XML-RegExp
    • XML-RSS
    • XML-SAX
    • XML-SAX-Base
    • XML-SAX-Expat
    • XML-SAX-Writer
    • XML-Simple
    • XML-Stream
    • XML-Writer
    • XML-XPath
    • XSLoader
    • YAML
    • YAML-LibYAML
    • YAML-Syck
    • YAML-Tiny

    If there is something you want added to the list, please let us know.


    Versions of perl

    Earlier I referred to the perl delivered by our RPM as ‘external.’ What does this mean?

    In the context of cPanel & WHM there are two types of perl: external and internal. The external version is used by non-compiled scripts and applications. For example scripts/upcp uses the external version.

    The internal version is used by compiled code. This is limited to perl 5.6.2 and the modules installed to /usr/local/cpanel/perl. The long term goal is to switch the compiled version to use the same perl version as non-compiled code. That was not attainable for this release.

    The distinction between internal versus external is only of relevance if you are developing, or deploying, perl applications that will be called directly by our compiled code.


    More

    This is the second article in our series on migrating to pre-built RPMs. Other articles, written and pending are:
    Kenneth
    Development
    cPanel, Inc.

  2. #2
    Super Moderator This forum account has been confirmed by cPanel staff to represent a vendor. chirpy's Avatar
    Join Date
    Jun 2002
    Location
    Go on, have a guess
    Posts
    13,496

    Default Re: Providing the perl stack as RPMs

    Thank you for that Kenneth. Very interesting. It will be difficult to comment more until we can see and test 11.34 in EDGE, unless you have a DEVEL or BETA release?
    Jonathan Michaelson

    Need your cPanel servers secured and tuned?
    cPanel Server Configuration, Security, Recovery and Antivirus/AntiSpam Services
    Developers of the most effective (and free) Firewall & Security Solution for cPanel Servers - csf
    http://www.configserver.com

  3. #3
    cPanel Development cPanelKenneth's Avatar
    Join Date
    Apr 2006
    Posts
    4,133
    cPanel/WHM Access Level

    Root Administrator

    Default Re: Providing the perl stack as RPMs

    Quote Originally Posted by chirpy View Post
    Thank you for that Kenneth. Very interesting. It will be difficult to comment more until we can see and test 11.34 in EDGE, unless you have a DEVEL or BETA release?
    You're welcome, Jonathan. I don't anticipate this being in a public development release until late July or August. Of course I could be surprised

    We're still working on making the update system more robust, now that we rely more heavily on the RPM database than we did in the past. The upcoming article about the update system will discuss this. Until those changes are good we won't make the perl RPM system available.

    In the coming sprints we will test some of the common applications people use with cPanel & WHM. This will give us a better view of how these changes will impact our customers and users. Information we glean from that testing will be provided to the application vendor (if we can get ahold of them).

    In the meantime we are open to suggestions and questions regarding these changes.
    Kenneth
    Development
    cPanel, Inc.

  4. #4
    Registered User
    Join Date
    Dec 2012
    Posts
    1
    cPanel/WHM Access Level

    Root Administrator

    Default Re: Providing the perl stack as RPMs

    11.34 is out now.

    Did it ship with Perl 5.14?

    I help out on a website that's hosted via Neostrada.nl.
    They have Cpanel and WHM 11.34.0 (build 11) installed.
    The Stats on the Cpanel home page show the Perl version to be 5.8.8.

    I used OSX's Terminal.app to login to the web server remotely, and navigated to /usr/local/cpanel/3rdparty/ but there is no perl file or directory.
    /usr/local/cpanel/3rdparty/perl/514 does not exist.
    /usr/local/cpanel/3rdparty/bin/perl does not exist (as far as I can tell).

    How would I get Perl 5.14 installed on this server?
    Will I need to speak to Neostrada, or is there anything I can do myself?
    I have root access.

    Many thanks,

    Andrew (ajmetz).

  5. #5
    cPanel Staff cPanelToddR's Avatar
    Join Date
    Oct 2009
    Posts
    3

    Default Re: Providing the perl stack as RPMs

    Quote Originally Posted by ajmetz View Post

    11.34 is out now.

    Did it ship with Perl 5.14?
    Sorry, This got delayed to 11.36. The changes are already merged and 11.36 is about to go into final testing.

Similar Threads

  1. providing dedicated IP to a domain
    By Nishant80 in forum cPanel & WHM Discussions
    Replies: 2
    Last Post: 06-06-2012, 02:55 AM
  2. Leveraging the Stack Exchange network
    By Vliegtuig in forum cPanel & WHM Discussions
    Replies: 1
    Last Post: 11-23-2010, 03:16 PM
  3. Increasing MySQL Thread Stack
    By WestBend in forum cPanel & WHM Discussions
    Replies: 2
    Last Post: 02-28-2006, 02:32 PM
  4. Perl + other rpms not updated by upcp
    By mr2828 in forum cPanel & WHM Discussions
    Replies: 5
    Last Post: 02-08-2005, 05:10 PM