歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> PERL編程 >> 受限制環境安裝Perl模塊方法

受限制環境安裝Perl模塊方法

日期:2017/2/27 9:27:06   编辑:PERL編程
  簡介:這篇文章具體講述了,關於如何在受限制的系統環境中,安裝跨平台與依賴平台的模塊。這樣即使你的服務器不支持DBD::mysql,你也可以在網站中連接MySQL了,當然必備的一個條件必須是可以通過FTP來上傳文件。 nbsp;如果你的主機服務商只提供FTP權限給你,而恰巧你的老板卻讓你運行一個帶有MySQL數據庫操作的程序,那麼如果這時我們只想給服務器上的某個程序加上一些模塊,而又不打算修改系統結構的話,這時的狀況無疑聽起來象是面臨十分嚴重的厄運,所以,我們也只好使用一些另類的方法來解決問題。想象一下,我們在進行模塊安裝時,煩瑣的過程只是進行編譯二進制代碼(適合這個機器運行的)和一些純Perl的模塊的簡單工作。那麼這時只要我們能把相同環境的這些模塊,復制到你的目標系統就可以完成模塊的安裝。當然,這是需要一些過程的。以下的安裝方法在VMWARE下的Redhat9中測試通過,系統中沒有DBD、DBI、Mysqlclient庫,安裝的時候只使用了普通用戶身份。首先你要准備一個已經安裝這些模塊的對照機,並且同你的目標機操作系統兼容。 nbsp;再次你要有一種方式可以將一些文件復制到你的目標系統中,並且可以運行Perl程序做測試。 nbsp;安裝DBI模塊 nbsp;在目標系統中寫一個測試代碼。 nbsp;#!/usr/bin/perluse nbsp;DBI;print nbsp;"Hello nbsp;World!";* nbsp;運行這個代碼,你將很榮幸的得到錯誤。Can't nbsp;locate nbsp;DBI.pm nbsp;in nbsp;@INC nbsp;(@INC nbsp;contains.........BEGIN nbsp;failed--compilation nbsp;aborted nbsp;at.....修改這個代碼,讓他進行查找Modules的庫多一個本地路徑。 nbsp;#!/usr/bin/perluse nbsp;FindBin nbsp;qw($Bin);use nbsp;lib nbsp;"$Bin";use nbsp;DBI;print nbsp;"Hello nbsp;World!";查看對照機存放模塊的目錄一般是/usr/lib/perl5/xxx/site_perl或c:perlsite_perl你會發現裡面有一個DBI.pm nbsp;把這個文件直接復制到你這台機器上,還有一個叫DBI的目錄,你也完全給它復制到這個目標機上,再運行剛才的程序,你會得到這樣的結果。 nbsp;Can't nbsp;locate nbsp;loadable nbsp;object nbsp;for nbsp;module nbsp;DBI nbsp;in nbsp;@INC nbsp;(@INC nbsp;contains........BEGIN nbsp;failed--compilation.......查看對照機的auto目錄,裡面也有一個DBI目錄。你猜對了,你要在目標機上照樣子建一個auto目錄,再照樣子建一個DBI把東西復制過來。請注意在Linux系統下是有大小寫區別的。再次運行剛才的程序,你應該成功了。 nbsp;Hello nbsp;World!安裝DBD::mysql先把代碼做一次修改。 nbsp;#!/usr/bin/perluse nbsp;FindBin nbsp;qw($Bin);use nbsp;lib nbsp;"$Bin";use nbsp;DBI;$dbh=DBI->connect("DBD:mysql:database=test");$sth=$dbh->prepare("select nbsp;version()");$sth->execute();$row=$sth->fetchrow_arrayref();print nbsp;$row->[0];跟安裝DBI的模式基本相同,復制對照機DBD目錄中的mysql.pm和mysql子目錄到目標機的同樣目錄。再復制auto下dbd目錄中的mysql.pm和mysql目錄到對照機上。運行剛才修改好的程序,一切完成。 nbsp;還不行怎麼辦最容易出現的問題是你把目錄搞錯了。請仔細查看你目錄是否錯了。比如要有/auto/dbd/mysql你是不是建成/auto/dbd/dbd/mysql了?為什麼會這樣軟件安裝不外呼編譯安裝、復制二進制碼兩種。而我們這種可以稱為手工復制二進制碼。只要你設置好FindBin後再細心的將一些必要的模塊復制過來就基本都可以運行。但是如果這個模塊還依賴其他的庫比如ImageMagick庫,那麼你就要想辦法把那個庫也搞到這台機器上來了。基本安裝規則你必須讓解析器知道你的模塊在那裡這個依賴FindBin建議把FindBin和use nbsp;lib都放在最先的幾行。 nbsp;把想要實現功能的模塊按照原來的結構復制到你的目標服務器中。 nbsp;保證對照機和目標機的系統是兼容的,否則二進制的模塊將出錯。 nbsp;此方法,由Perlchina的會員傻瓜測試在windows下通過。




Copyright © Linux教程網 All Rights Reserved