eldy / AWStats

AWStats Log Analyzer project (official sources)
https://www.awstats.org
369 stars 120 forks source link

Install GeoIP2 - crazy headache #150

Closed ghnp5 closed 4 years ago

ghnp5 commented 4 years ago

Guys, I've spent almost all day trying to get this to work... I'm really frustrated at the moment and can't see an end to this.

After setting up AWStats (and finally getting the basics to work), I'm trying to set up GeoIP2.

However, I keep getting errors of Perl modules missing.

I've installed a few dependencies, such as:

Install openfusion repository
yum install -y perl-CPAN perl-core perl-Geo-IP perl-Data-Validate-IP
export PERL_MM_USE_DEFAULT=1
perl -MCPAN -e 'install Geo::IP'
perl -MCPAN -e 'install Moo'

But, still continue having errors:

Error: Plugin load for plugin 'geoip2' failed with return code: Error: Can't locate namespace/clean.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /usr/share/awstats/lib /usr/share/awstats/wwwroot/cgi-bin/plugins) at /usr/lib64/perl5/vendor_perl/GeoIP2/Error/Generic.pm line 10. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/GeoIP2/Error/Generic.pm line 10. Compilation failed in require at /usr/lib64/perl5/vendor_perl/GeoIP2/Database/Reader.pm line 11. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/GeoIP2/Database/Reader.pm line 11. Compilation failed in require at (eval 31) line 1. Error: Need Perl module GeoIP2::Database::Reader Setup ('/etc/awstats/awstats.access.conf' file, web server or permissions) may be wrong. Check config file, permissions and AWStats documentation (in 'docs' directory).

So, is there a way to install ALL the dependencies required for this to work?... I can't believe everyone is going through all this, just to install a simple thing.

I'm using CentOS 7. Thank you very much.

neilgierman commented 4 years ago

You should "perl -MCPAN -e 'install GeoIP2'". That is a different module than "Geo::IP" that you had already installed. That should also install all of the dependencies that "GeoIP2" requires. There is also a yum package of "perl-namespace-clean" however it is probably best to use CPAN unless you have a specific reason not to.

ghnp5 commented 4 years ago

@neilgierman Thank you very much for your help.

Seems that "GeoIP2" was already "up-to-date" (when running that command). I installed "perl-namespace-clean" now, but, like I said, I continue with endless errors.

I could continue spending hours and hours figuring out what's the next thing to install to fix each single error, but that's what I was asking: is there something that installs EVERYTHING I need in ONE go?

Error: Plugin load for plugin 'geoip2' failed with return code: Error: Can't locate Throwable/Error.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 . /usr/share/awstats/lib /usr/share/awstats/wwwroot/cgi-bin/plugins) at /usr/local/share/perl5/Module/Runtime.pm line 314. at /usr/lib64/perl5/vendor_perl/GeoIP2/Error/Generic.pm line 12. Compilation failed in require at /usr/lib64/perl5/vendor_perl/GeoIP2/Database/Reader.pm line 11. BEGIN failed--compilation aborted at /usr/lib64/perl5/vendor_perl/GeoIP2/Database/Reader.pm line 11. Compilation failed in require at (eval 31) line 1. Error: Need Perl module GeoIP2::Database::Reader Setup ('/etc/awstats/awstats.access.conf' file, web server or permissions) may be wrong. Check config file, permissions and AWStats documentation (in 'docs' directory).

neilgierman commented 4 years ago

The CPAN command to install GeoIP2 should have installed all of the dependencies. I don't know how GeoIP2 was installed in your system in the first place. You can try to tell CPAN to force the reinstall of GeoIP2. To your other question, no I am not aware of a single command to install all of the required Perl modules that the different features of AWStats requires.

ghnp5 commented 4 years ago

Thank you. I deleted the vendor folder "GeoIP2", and then re-run the CPAN to install that module, and now it took loads of time installing loads of stuff.

And NOW everything seems to be working as expected!

So, that was the solution - install the GeoIP2 module in the actual proper way :)

Sorry, but I've been trying many different workarounds all day, and it was really hard to find proper solutions while doing my research, so asking here was the best choice. This was my first time installing Perl modules.

I appreciate very much your support.

neilgierman commented 4 years ago

No problem. Glad it is working for you. I assume you can close this issue now.