Portál AbcLinuxu, 8. května 2025 00:48

Dotaz: Jak poznám, že se mi nainstaloval PERL-modul?

Barbucha.eu avatar 31.10.2005 20:24 Barbucha.eu | skóre: 23 | Chrást u Plzně
Jak poznám, že se mi nainstaloval PERL-modul?
Přečteno: 458×
Odpovědět | Admin
Chtěl jsem vyzkoušet autentizaci pomocí cookies. V knize o Apachi jsem našel návod krok za krokem, ale samozřejmě mi zkrachoval (asi) hned první krok. Jsou to příkazy:
perl -MCPAN -e 'install Apache::AuthCookie'
perl -MCPAN -e 'install Apache::AuthTicket'
Na konci se objeví:
mod_perl version  is not supported
Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install
To asi neklaplo. Co s tím? Jakto, že mám špatný mod_perl? Znamená to, že je modul moc nový, nebo moc starý? (Jedná se o standartní instalaci Apache2 z balíku v Debianu Sarge.) Jak se vůbec dá poznat, že se modul opravdu nainstaloval?
Co Bůh rozbil, člověk neopravuj!
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Barbucha.eu avatar 31.10.2005 22:52 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Nenainstaloval se
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zjistil jsem, že se nenainstaloval a to proto, že skript Makefile.PL nevidí mod_perl, protože má napsat mod_perl version CISLO not supported. Ale co dál, netuším... Problém je, že když je Apache nainstalovaný z debianích balíčků, tak má všechno jinak, než obvykle.
Co Bůh rozbil, člověk neopravuj!
31.10.2005 22:56 Ľubomír Host | skóre: 19 | Bratislava
Rozbalit Rozbalit vše Re: Jak poznám, že se mi nainstaloval PERL-modul?
Odpovědět | | Sbalit | Link | Blokovat | Admin
apt-get install libapache-authcookie-perl

ten druhy modul neviem, asi nema balik.

skus ale pustit program cpan a tam napisat install Apache::AuthTicket
-- http://blog.hostname.sk
Barbucha.eu avatar 1.11.2005 14:15 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše To je to samé
No, tam je problém ten, že ne, žeby to nefungovalo. Ono se to ztáhne ze serveru, rozbalí, ale pak, když se zavolá příkaz perl Makefile.PL, tento vyhodí mod_perl version is not supported. Navíc číslo verze se nevytiskne. Takže se zdá, že mod_perl je pro cpan neviditelný.
Co Bůh rozbil, člověk neopravuj!
Barbucha.eu avatar 1.11.2005 23:02 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Není pomoci
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zdá se, že v tomto případě není pomoci. Mám Apache2 z Debianích balíků. Taková instalace je značně nestandartní. To způsobuje, že některé věci prostě nefungují. Jednou z nich je právě například CPAN. Pro něj je mod_perl neviditelný. Dá se říci, že libapache2-mod-perl2 je jen taková ozdoba :-) Máte sice v Apachi mod_perl, ale ten je s Perlem nekompatibilní. Navíc se mi zde na fóru a na internetu zdá, že věc, kterou se zabývám, je značně okrajová. Vlastně ji v ČR řeším jen já :-D
Co Bůh rozbil, člověk neopravuj!
2.11.2005 07:13 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Jak poznám, že se mi nainstaloval PERL-modul?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kedysi davno som na také veci používal Perl package manager. Hoci to bolo vtedy na MS Win, marí sa mi, že to bolo aj štandardnou súčasťou Perlu na Linuxe. Skús.
2.11.2005 10:35 Roman Vasicek
Rozbalit Rozbalit vše Re: Jak poznám, že se mi nainstaloval PERL-modul?
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pokousis se instalovat primo z CPANu Apache::AuthCookie verze 3.8 (posledni stable a tudiz ta, jenz se bude instalovat pri zadani install Apache::AuthCookie). Nahlednutim do README.mod_perl2 lehce zjistis, ze 3.07 a vyssi vyzaduje mod_perl 2.0.0 RC5. Nepouzivam Debian a tak jsem se musel podivat na web abych zjistil, ze posledni stable balicek libapache-mod-perl ma verzi 1.29.0.3-6sarge1. Doporucuji proto nainstalovat radeji libapache-authcookie-perl primo z distribuce jenz je veverzi 3.06-1 ktera by mela fungovat.

Barbucha.eu avatar 2.11.2005 21:44 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Jde to, ale nefunguje to :-(
Když jsem nainstaloval modul AuthCookie pomocí apt-get, tak se mi pak podařilo nainstalovat i ztažený Apache-AuthTicket. Ale Apache nestartuje. Když mu do http.conf dám PerlModule Apache::AuthTicket, Apache nestartuje a do logu píše:
[Wed Nov 02 21:19:46 2005] [error] Can't locate object method "boot" via package "mod_perl" at /usr/lib/perl5/Apache/Constants.pm line 8.
	Compilation failed in require at /usr/local/share/perl/5.8.4/Apache/AuthTicket.pm line 10.
	BEGIN failed--compilation aborted at /usr/local/share/perl/5.8.4/Apache/AuthTicket.pm line 10.
	Compilation failed in require at (eval 3) line 3.

[Wed Nov 02 21:19:46 2005] [error] Can't load Perl module Apache::AuthTicket for server kux.doma:0, exiting...
Co Bůh rozbil, člověk neopravuj!
Barbucha.eu avatar 3.11.2005 11:03 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Re: Jde to, ale nefunguje to :-(
Ještě mě napadlo, protože neexistuje libapache-authticket-perl, jestli je to vůbec nutné. Nestačí jen samotný modul AuthCookie?
Co Bůh rozbil, člověk neopravuj!
Barbucha.eu avatar 3.11.2005 11:19 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Je to jedno
Když použiju Perlmodule Apache::AuthCookie, v logu se objeví to samé a Apache opět nestartuje. Myslím, že je nejvyšší čas se na to vykašlat... :-( Jen by mě zajímalo, jaktože libapache2-mod-perl2 a libapache-authcookie-perl spolu nefungují. Je možné, že vadí právě to, že jeden je libapache2 a druhý jen libapache?
Co Bůh rozbil, člověk neopravuj!
Barbucha.eu avatar 3.11.2005 17:25 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Vítězství ducha nad počítačem!
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zatím jsem dál nepokročil, takže ještě nevím, zda to funguje. V každém případě již Apache běží a moduly jsou jeho součástí. Jak na to?

1) Nainstalujeme modul AuthCookie
Ten se instaluje z DEB-balíku:
	apt-get install libapache-authcookie-perl
2) Nainstalujeme Apache-AuthTicket-0.40
Balík si ztáhneme z jeho stránky na search.cpan.org. Rozbalíme archiv a ve vzniklém adresáři provedeme:
	perl Makefile.PL
	make
	make test
	make install
3) Přidáme
	PerlModule Apache::AuthCookie
	PerlModule Apache::AuthTicket
do /etc/apache2/httpd.conf. To nebude fungovat, proto se musí provést

4) Přizpůsobení
Moduly jsou určeny pro mod_perl, ale Apache2 používá mod_perl2. Přizpůsobení se provede ve dvou krocích. Jeden je jednoduchý. Druhý také, ale opakuje se, dokud Apache nenastartuje. První krok je úprava řádku:
	use Apache::Constants qw(...
na:
	use Apache::Const -compile => qw(...
Druhý krok je upravování názvů konstant tak dlouho, dokud se ve /var/log/apache2/error.log po restartu Apache neobjeví žádná chyba Bareword "SLOVO" not allowed.... Naštěstí tato hláška obsahuje číslo řádku, kde chyba vzniká. Chyba se odstraní tak, že najdeme příslušný řádek a SLOVO doplníme zleva o Apache2::Const:: a zprava o (). Takže z REDIRECT se stane Apache2::Const::REDIRECT() Když se již žádné chyby v modulech nevyskytují, Apache nastartuje a instalace modulů je hotova.
Co Bůh rozbil, člověk neopravuj!
Barbucha.eu avatar 3.11.2005 17:31 Barbucha.eu | skóre: 23 | Chrást u Plzně
Rozbalit Rozbalit vše Dodatek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Moduly jsou ve formě skriptu jazyka PERL. Jeden se nachází v souboru /usr/share/perl5/Apache/AuthCookie.pm a druhý v souboru /usr/local/share/perl/5.8.4/Apache/AuthTicket.pm. (Máte-li to jinak, podívejte se do /var/log/Apache2/error.log, kde se celý název souboru se skriptem vyskytuje.) V nich se provádějí změny zmiňované v bodu 4.
Co Bůh rozbil, člověk neopravuj!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.