Showing posts with label perl. Show all posts
Showing posts with label perl. Show all posts

Thursday, October 8, 2009

Installing and Upgrading Perl module using PPM

This post describes how to install/upgrade perl modules using PPM on windows

1. To install a new package run ppm command from the command prompt


ppm install

eq: C:\PERL>ppm install Text::CSV_XS

2. To upgrade an existing package use the ppm upgrade command

ppm upgrade --install


In the following example we are trying to upgrade the Text::CSV_XS module

2.1 Check the current version

C:\PERL>perl -MText::CSV_XS -e "print $Text::CSV_XS::VERSION"
0.23

2.2 Update the current version

C:\PERL>ppm upgrade --install Text-CSV_XS
Text-CSV_XS 0.23: new version 0.65 available in Autonamed 3
Text-CSV_XS 0.23: new version 0.65 available in Autonamed 2
Text-CSV_XS 0.23: new version 0.35 available in ActiveState Package Repository
Text-CSV_XS 0.23: new version 0.35 available in ActiveState PPM2 Repository

Note: Text-CSV_XS version 0.23 is available from more than one place.
Which repository would you like to upgrade from?

1. Autonamed 3
2. Autonamed 2
3. ActiveState Package Repository
4. ActiveState PPM2 Repository

Repository? [ActiveState PPM2 Repository] 1
====================
Upgrade 'http://ppm.tcool.org/archives/Text-CSV_XS.ppd' version 0.65 in ActivePerl 5.8.2.808.
====================
Files found in blib\arch: installing files in blib\lib into architecture dependent library tree
Installing C:\Perl\site\lib\auto\Text\CSV_XS\CSV_XS.dll
Installing C:\Perl\site\lib\auto\Text\CSV_XS\CSV_XS.exp
Installing C:\Perl\site\lib\auto\Text\CSV_XS\CSV_XS.lib
Installing C:\Perl\site\lib\auto\Text\CSV_XS\CSV_XS.pdb
Installing C:\Perl\site\lib\Text\CSV_XS.pm
Writing C:\Perl\site\lib\auto\Text\CSV_XS\.packlist
Successfully upgraded Text-CSV_XS version 0.65 in ActivePerl 5.8.2.808.

2.3 Check the version again

C:\PERL>perl -MText::CSV_XS -e "print $Text::CSV_XS::VERSION"
0.65

Saturday, August 8, 2009

Installing Bugzilla

Bugzilla is a bug-tracking system from mozilla.org. Bugzilla is enterprise-class piece of software that tracks bugs and issues for hundreds of organizations around the world.

Step 1: Create server say bugzilla.mydomain.com

Setup hostname, network, dns etc properly

Step 2 : Install the following prerequisites

Before installing see bugzilla documentation for supported versions for the package you are going to install

•Install MTA
#yum install sendmail*
•Install database server
#yum install mysql-server
•Install web server
#yum install httpd-*
•Install Perl
#Yum Install perl-*
#yum install ImageMagick-devel

Step 3 : Configure sendmail to send and recive email

You may need to configure your DNS server properly to set your email server to send and receive email. By default send mail will listen port on 25 in 127.0.0.1 only ,Change DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl as below

#vi /etc/mail/sendmail.mc

dnl #DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
#service sendmail restart
#chkconfig sendmail on

Note: - [Please see send mail documentation for any additional configurations]

Step 4 : Setup Database Server

•Start mysql server
#service mysqld start
•Set mysqladmin password
# mysqladmin password ********

Step 4.1: Allow large attachments and many comments

By default, MySQL will only allow you to insert things into the database that are smaller than 64KB. To change MySQL’s default, you need to edit your MySQL configuration file, which is usually /etc/my.cnf on Linux.

# vi /etc/my.cnf

[mysqld]
max_allowed_packet=10M

Step 4.2: Allow small words in full-text indexes

By default, words must be at least four characters in length in order to be indexed by MySQL’s full-text indexes. This causes a lot of Bugzilla specific words to be missed, including "cc", "ftp" and "uri".
MySQL can be configured to index those words by setting the ft_min_word_len param to the minimum size of the words to index. This can be done by modifying the /etc/my.cnf according to the example below:

# vi /etc/my.cnf
[mysqld]
# Allow small words in full-text indexes
ft_min_word_len=2

Step 4.3: create a database user to use for bugzilla

You need to add a new MySQL user for Bugzilla to use. (It’s not safe to have Bugzilla use the MySQL root account.) You will need the $db_pass password later to set in localconfig . I used SQL GRANT command to create a “bugs” user. This also restricts the “bugs”user to operations within database called “bugs”, and only allows the account to connect from “localhost”. Modify your setup if you will be connecting from another machine or as a different user. Replace $db_password with your proffered password


mysql> GRANT SELECT, INSERT,UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY ’$db_password’;

mysql> FLUSH PRIVILEGES;

Step 4.4 . Permit attachments table to grow beyond 4GB Note: [This has to be done only after completing bugzilla installation]

By default, MySQL will limit the size of a table to 4GB. This limit is present even if the underlying filesystem has no such limit. To set a higher limit, follow these instructions. After you have completed the rest of the installation (or at least the database setup parts), you should run the MySQL command-line client and enter the following, replacing $bugs_db with your Bugzilla database name (bugs by default):

mysql> use $bugs_db
mysql> ALTER TABLE attachments AVG_ROW_LENGTH=1000000,MAX_ROWS=20000;

Step 5: Setup webserver

Normally you will have to add set the server name and specify the document root directory .
Note [ Follow apache/httpd documentation for any advance configurations]

#vi /etc/httpd/conf/httpd.conf

ServerName bugzilla.mydomain.com


#service httpd restart
#chkconfig httpd on

Setup 6: Install Bugzilla

Download the latest package from bugzilla and unzip it

#tar -xvzf bugzilla-3.4.1.tar.gz
#mv bugzilla-3.4.1 /var/www/html/
# chown -R 751 bugzilla-3.4.1/
#chown root:apache -R bugzilla-3.4.1/


Step 7: Edit localconfig

#vi /var/www/html/bugzilla/localconfig

Set database password , username , location of dot /usr/bin/dot etc here

Step 10: Install all required modules

#cd /var/www/html/bugzilla/

Check whether all required modules are installed or not using checksetup.pl --check-modules
#./checksetup.pl --check-modules

Install any missing modules
eg: #/usr/bin/perl install-module.pl GD::Text

Step 11: Run checksetup.pl

After resolving all dependencies you can install bugzilla by running the below command

#./checksetup.pl


Step 12: Verify whether bugzilla is accessible

At this point we will be able to upgraded bugzilla instance bu accessing http://bugzilla.mydomain.com/bugzilla


Well .... its ready do some customization and play with bugs:-)

Tuesday, August 4, 2009

How to find include path (@INC) for installed Perl environment?



Methode 1: You can run the following commands to get the @INC path

perl -e "print qq(@INC)"


You can just run that command from the both Linux and dos command line.

The output from this command on Windows PC will looks like this:

C:/Perl/lib C:/Perl/site/lib .


The output from Linux server will looks like this:

/usr/lib/perl5 //usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl .


Methode 2: Alternatively you can use #perl -V to find out included paths along with other information's

Use perl -V to see the include paths @INC

The output from Linux server will looks like this:

/usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.0
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.0
/usr/lib/perl5/vendor_perl