受限制環境安裝Perl模組方法(轉)
受限制環境安裝Perl模組方法(轉)[@more@]簡介:
這篇文章具體講述了,關於如何在受限制的系統環境中,安裝跨平臺與依賴平臺的模組。這樣即使你的伺服器不支援DBD::mysql,你也可以在網站中連線MySQL了,當然必備的一個條件必須是可以透過FTP來上傳檔案。 nbsp;
如果你的主機服務商只提供FTP許可權給你,而恰巧你的老闆卻讓你執行一個帶有MySQL資料庫操作的程式,那麼如果這時我們只想給伺服器上的某個程式加上一些模組,而又不打算修改系統結構的話,這時的狀況無疑聽起來象是面臨十分嚴重的厄運,所以,我們也只好使用一些另類的方法來解決問題。
想象一下,我們在進行模組安裝時,煩瑣的過程只是進行編譯二進位制程式碼(適合這個機器執行的)和一些純Perl的模組的簡單工作。那麼這時只要我們能把相同環境的這些模組,複製到你的目標系統就可以完成模組的安裝。當然,這是需要一些過程的。
以下的安裝方法在VMWARE下的Redhat9中測試透過,系統中沒有DBD、DBI、Mysqlclient庫,安裝的時候只使用了普通使用者身份。
首先你要準備一個已經安裝這些模組的對照機,並且同你的目標機作業系統相容。 nbsp;
再次你要有一種方式可以將一些檔案複製到你的目標系統中,並且可以執行Perl程式做測試。 nbsp;
安裝DBI模組 nbsp;
在目標系統中寫一個測試程式碼。 nbsp;
#!/usr/bin/perl
use 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/perl
use 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/perl
use 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下透過。
這篇文章具體講述了,關於如何在受限制的系統環境中,安裝跨平臺與依賴平臺的模組。這樣即使你的伺服器不支援DBD::mysql,你也可以在網站中連線MySQL了,當然必備的一個條件必須是可以透過FTP來上傳檔案。 nbsp;
如果你的主機服務商只提供FTP許可權給你,而恰巧你的老闆卻讓你執行一個帶有MySQL資料庫操作的程式,那麼如果這時我們只想給伺服器上的某個程式加上一些模組,而又不打算修改系統結構的話,這時的狀況無疑聽起來象是面臨十分嚴重的厄運,所以,我們也只好使用一些另類的方法來解決問題。
想象一下,我們在進行模組安裝時,煩瑣的過程只是進行編譯二進位制程式碼(適合這個機器執行的)和一些純Perl的模組的簡單工作。那麼這時只要我們能把相同環境的這些模組,複製到你的目標系統就可以完成模組的安裝。當然,這是需要一些過程的。
以下的安裝方法在VMWARE下的Redhat9中測試透過,系統中沒有DBD、DBI、Mysqlclient庫,安裝的時候只使用了普通使用者身份。
首先你要準備一個已經安裝這些模組的對照機,並且同你的目標機作業系統相容。 nbsp;
再次你要有一種方式可以將一些檔案複製到你的目標系統中,並且可以執行Perl程式做測試。 nbsp;
安裝DBI模組 nbsp;
在目標系統中寫一個測試程式碼。 nbsp;
#!/usr/bin/perl
use 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/perl
use 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/perl
use 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下透過。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-958533/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- strawberry perl安裝,環境變數及模組安裝變數
- perl cpan 模組安裝
- 使用CPAN安裝Perl模組
- Windows10下如何安裝配置 perl 環境Windows
- 安裝python虛擬環境並配置虛擬環境以及安裝scrapy模組Python
- 安裝Java環境(Debian)(轉)Java
- 【NinGoo】Redhat上安裝Perl DBD::mysql模組GoRedhatMySql
- perl 安裝
- LNMP 環境安裝LNMP
- golang環境安裝Golang
- swoft環境安裝
- futter環境安裝
- 安裝LNMP環境LNMP
- 潤生商團出行叫車模組(環境安裝)2
- (轉)Windows下安裝Docker, GitBash環境配置WindowsDockerGit
- 在debian中安裝Java環境(轉)Java
- Windows 環境下 Python 環境安裝WindowsPython
- Windows環境下phpMyAdmin的安裝配置方法WindowsPHP
- Linux執行環境安裝全解(轉)Linux
- Ubuntu 環境安裝 phpunitUbuntuPHP
- macOS 安裝 LNMP 環境MacLNMP
- brew lnmp 環境安裝LNMP
- dapr 環境安裝指南
- Windows 環境安裝LdapWindowsLDA
- Mac GO 環境安裝MacGo
- Pytorch環境安裝PyTorch
- Centos 安裝 erlang 環境CentOS
- zabbix環境安裝搭建
- PyOpenGl 1 -- 環境安裝
- zabbix安裝中文環境
- Windos環境安裝RocketMQMQ
- Windows環境安裝ScrapyWindows
- perl的安裝
- 蘋果系統安裝php環境的方法詳解蘋果PHP
- node.js環境安裝及環境變數Node.js變數
- 測試mod_perl模組(轉)
- 比較perl模組的版本(轉)
- Oracle for Linux 安裝前環境配置指令碼(轉)OracleLinux指令碼