FS#22197 - [perl] /etc/profile.d/perlbin.sh does not update bin path when directories does not exist

Attached to Project: Arch Linux
Opened by Magnus Woldrich (dmz) - Thursday, 23 December 2010, 07:51 GMT
Last edited by Angel Velasquez (angvp) - Thursday, 30 June 2011, 18:51 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Kevin Piche (kpiche)
Angel Velasquez (angvp)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:

The script /etc/profile.d/perlbin.sh is supposed to add the new perl bin paths
to $PATH if they exist.
The directories does not exist on a standard installation, so when a user logs
in and installs a Perl package containing executables, they'll be greeted by
'command not found'.

The reason why the -d checks are performed is described here: https://bugs.archlinux.org/task/17402

My suggestion is to create this directories if they do not exists, and then add
them to the $PATH, bypassing the issues described in [17402].

# Set path to perl scripts.
# Remove the perlbin dirs in the next release.

# Create directories and and them to the PATH.

mkdir -p /usr/lib/perl5/{site,vendor,core}_perl/bin &&
PATH=$PATH:/usr/lib/perl5/site_perl/bin
PATH=$PATH:/usr/lib/perl5/vendor_perl/bin
PATH=$PATH:/usr/lib/perl5/core_perl/bin

export PATH

# If you have modules in non-standard directories you can add them here.
#export PERLLIB=dir1:dir2
This task depends upon

Closed by  Angel Velasquez (angvp)
Thursday, 30 June 2011, 18:51 GMT
Reason for closing:  Implemented
Additional comments about closing:  implemented since 5.14.1-1
Comment by Kevin Piche (kpiche) - Friday, 18 February 2011, 16:14 GMT
I don't feel that this is really a problem. Like any other package that modifies the user's environment, users need to logout and login or source the perlbin.sh script.
Comment by Anonymous Submitter - Tuesday, 07 June 2011, 18:09 GMT
http://projects.archlinux.org/svntogit/packages.git/tree/perl/trunk/perlbin.sh should be

[ -d /usr/bin/site_perl ] && PATH=$PATH:/usr/bin/site_perl
[ -d /usr/lib/perl5/site_perl/bin ] && PATH=$PATH:/usr/lib/perl5/site_perl/bin

[ -d /usr/bin/vendor_perl ] && PATH=$PATH:/usr/bin/vendor_perl
[ -d /usr/lib/perl5/vendor_perl/bin ] && PATH=$PATH:/usr/lib/perl5/vendor_perl/bin

[ -d /usr/bin/core_perl ] && PATH=$PATH:/usr/bin/core_perl

There should be no new-line after '&&' .

Loading...