1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Cannot install some perl modules.

Discussion in 'Installation and Maintenance of Ports or Packages' started by AlexN, Aug 18, 2011.

  1. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    Hello.
    I have a strange issue. Yesterday I've updated ports tree with thoughts to install perl Mail-Box modules. But I couldn't do that because strange error occurred:
    Code:
    # make
    ===>  p5-Mail-Box-2.097 requires Perl 5.8.0 or later, install lang/perl5.8, lang/perl5.10, lang/perl5.12 or lang/perl5.14 and try again.
    *** Error code 1
    At that point I used perl5.12.4 and it worked as it should. Other (already installed) modules were also working fine. I decided to update perl from 5.12.4 to 5.14.1:
    Code:
    env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.14 -f perl-5.12.\*
    After that I rebuilt all ports that were dependent on perl.
    Code:
    portupgrade -fr perl
    Mostly of that stuff were updated but not all. Some modules refused to build with the same error as p5-Mail-Box.
    I've noticed that ports that refusing to build has something like
    Code:
    PERL_CONFIGURE= 5.8.1+
    in their Makefile. In other hand ports that has
    Code:
    PERL_CONFIGURE= YES
    building and working properly. Changing this variable in Makefiles of problem ports solved this issue and make them built and installed. But I think solving this in such way not a good idea. Is this a bug or something I don't understand something so far? Also couldn't find something useful on the Internet.
    I'm using:
    Code:
    # uname -a
    FreeBSD Elf 8.2-RELEASE FreeBSD 8.2-RELEASE #5: Sat May 14 22:56:08 UTC 2011     elf@Elf:/usr/src/sys/amd64/compile/ELFKERN  amd64
    Sorry for my poor english and thank you in advance.
     
  2. jb_fvwm2

    jb_fvwm2 Member

    Messages:
    1,565
    Likes Received:
    0
    Code:
    find /usr/local/lib/perl5/site_perl/5.12.4 -type f -exec pkg_which {} + | tee -a /tmp/A-perl.dat 
    cat /tmp/A-perl.dat | sort | uniq | tee -a /tmp/B-perl.dat 
    less /tmp/B-perl.dat 
    Ports to rebuild? If it was 5.12.3 > 5.12.4 I would recc. the perl-after-upgrade script. Don't know about the other questions... (another version of that script omits the site_perl portion of the path... ... Recently I found a whole slew of superfluous files and directories underneath /perl5/ after the latest upgrade, previous ones were done sort of haphazardly...
     
  3. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    Using empirical way I've found that my perl version (PERL_VERSION variable?), while making something from ports, recognizing as 0. What instance is in charge of this?
    By the way, jb_fvwm2, thank you for your advice. Looks like there is no garbage underneath my /usr/local/lib/perl5/.
     
  4. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    If no one can help maybe someone could say me right place to ask this question.
     
  5. wblock@

    wblock@ Administrator Staff Member Administrator Moderator Developer

    Messages:
    11,163
    Likes Received:
    5
    That variable is set in /etc/make.conf when the perl port is installed.
    Code:
    # added by use.perl 2011-08-08 14:09:17
    PERL_VERSION=5.12.4
    
     
  6. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    Yes, I know that. And that's what I have in /etc/make.conf
    Code:
    # added by use.perl 2011-08-18 20:04:12
    PERL_VERSION=5.14.1
    But problem persists. Looks like somehow I broke my system. But I cannot understand what exactly is broken.
     
  7. kpa

    kpa Member

    Messages:
    3,987
    Likes Received:
    3
    Install ports-mgmt/portmaster and run a ports dependency check followed by a consistency check of /var/db/ports with these commands:

    # portmaster --check-depends

    # portmaster --check-port-dbdir
     
  8. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    Did as you said. All looks fine.It showed me just few packages not common to perl that seemed not to be installed and it offered me to remove them from /var/db/ports (something like quake2 and so on).

    Also if you fell into trouble like this and you need whatever to install some modules and work with them you can try to add to /etc/make.conf
    Code:
    USE_PERL5= YES
    But in this case as I understood you must determine possible version mismatch by yourself.
     
  9. kpa

    kpa Member

    Messages:
    3,987
    Likes Received:
    3
    Are any of those perl modules originally installed from packages? You can try to forcibly delete those modules with # pkg_delete -f p5-... and then delete anything related to those modules under /var/db/pkg and /var/db/ports and then reinstall those modules from ports.
     
  10. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    No, all modules (and other stuff of my system) were built from ports only.
     
  11. AlexN

    AlexN New Member

    Messages:
    12
    Likes Received:
    0
    Problem disappeared after rebuilding of the world.