Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Need Help Installing Net::SSH2

by DanielSpaniel (Scribe)
on Aug 29, 2011 at 14:25 UTC ( #923033=perlquestion: print w/replies, xml ) Need Help??
DanielSpaniel has asked for the wisdom of the Perl Monks concerning the following question:

Hi, Hoping somebody can help me please, because I'm not very familiar with installing via CPAN. My machine is running Fedora 15 (64-bit), and I'm trying to install Net:SSH2 via CPAN, but I am running into problems (as shown by the output below). I resolved one previous issue, with it being unable to locate the C compiler, but I do not know how to progress further, from where I am now. It seems to start failing at the "Can't link/include 'libssh2.h', 'ssh2'" line. Perl version is v5.12.4.(64-bit).

cpan[1]> install Net::SSH2 Going to read '/root/.cpan/Metadata' Database was generated on Mon, 29 Aug 2011 05:27:45 GMT Running install for module 'Net::SSH2' Running make for R/RK/RKITOVER/Net-SSH2-0.39.tar.gz Checksum for /root/.cpan/sources/authors/id/R/RK/RKITOVER/Net-SSH2-0.3 +9.tar.gz ok Scanning cache /root/.cpan/build for sizes ...................................................................... +......DONE Going to build R/RK/RKITOVER/Net-SSH2-0.39.tar.gz Subroutine checklibs redefined at inc/Module/Install/ line +11. Subroutine assertlibs redefined at inc/Module/Install/ line + 25. Subroutine _author_side redefined at inc/Module/Install/ li +ne 39. The libssh2 library is required by this module. If you don't have it, + you can download it from; you may also need OpenSSL, wh +ich can be obtained from Debian: sudo aptitude install libssh2-1-dev OpenSUSE: sudo zypper in libssh2-1 libssh2-devel You can pass your libssh2 lib and include dirs on the command line. E. +g.: perl Makefile.PL lib=$HOME/libssh2/lib inc=$HOME/libssh2/include Can't link/include 'libssh2.h', 'ssh2' No 'Makefile' created RKITOVER/Net-SSH2-0.39.tar.gz /usr/bin/perl Makefile.PL -- NOT OK Running make test Make had some problems, won't test Running make install Make had some problems, won't install Failed during this command: RKITOVER/Net-SSH2-0.39.tar.gz : writemakefile NO -- No 'Makefile' c +reated

With regards to libssh2, then I have already checked to make sure it is installed, per below:

yum install libssh2 Loaded plugins: langpacks, presto, refresh-packagekit Setting up Install Process Package libssh2-1.2.7-1.fc15.x86_64 already installed and latest versi +on Nothing to do

Replies are listed 'Best First'.
Re: Need Help Installing Net::SSH2
by Khen1950fx (Canon) on Aug 29, 2011 at 15:36 UTC
    You'll need to download and manually install libssh2. After make install, run /sbin/ldconfig /usr/local/lib, then install Net::SSH2. Fedora rpms have the nasty habit of not doing ldconfig correctly. I use Fedora, but I installed libssh2 from a Debian tarball and ran ldconfig. Worked.

      Hi Khen1950fx, Thx for the suggestion, I am trying it now, but not too familiar (yet) with installing as you suggest. I've manually downloaded a recent version of libssh2; unzipped it, untarred it and stuck it into a local directory. Now I have a directory with the following in it:

      config.guess  configure  INSTALL     LICENSE      mkinstalldirs  src  win32    config.sub    include    install-sh  README   ssh2_sample.c

      I have run ./configure, and it ran through a bunch of stuff, but ultimately didn't seem to like something, and gave up with the following message:

      checking for OpenSSL... configure: error: Cannot find OpenSSL's <evp.h> or <hmac.h>

      Can you help me go from here please? I really appreciate your help.

        Go into the directory that you untarred the src to and type:
        ./configure --help
        A list of all the different options will popup. I would recommend doing:
        ./configure --enable-shared --with-gnu-ld
        The "--with-gnu-ld" is necessary in order to properly do ldconfig. So the mantra is:
        ./configure --enable-shared --with-gnu-ld make make check make install /sbin/ldconfig /usr/local/lib
        Now run
        whereis libssh2
        If everything's in order, then it should return something like:
        /usr/local/lib/ /usr/local/lib/libssh2.a /usr/local/lib/
        Update: I think that you have the same problem with OpenSSL. Here's the most recent tarball:

        It's a slightly more complicated procedure. First, you need to remove the current openssl include headers. Then do
        ./Configure linux-elf -march=pentium make make test make install
        Next, you must manually install Net::SSH2.
        export LD_LIBRARY_PATH=/usr/local/lib perl Makefile.PL lib=/usr/local/lib make make test make install
        Now, you're good to go...
Re: Need Help Installing Net::SSH2
by Anonymous Monk on Aug 29, 2011 at 14:42 UTC
    You need libssh2-devel.
      Thx for the reply, but I just installed libssh2-devel (on your advice), and retried Net:SSH2 in CPAN, but still fails in the same place. openssl is also installed already. (Package openssl-1.0.0d-1.fc15.x86_64 already installed and latest version)
        The Makefile.PL script from the latest versions of Net::SSH2 accepts both an inc and lib parameters with the place of libssh2 library and include files. For instance:
        Makefile.PL inc=/usr/include lib=/usr/lib64
        Besides that, Net::OpenSSH::Compat(::SSH2) implements most of Net::SSH2 API on top of Net::OpenSSH and it's pretty easy to install on Unix/Linux system including Fedora.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://923033]
Approved by Corion
Front-paged by toolic
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2018-03-23 09:43 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (289 votes). Check out past polls.