2012-04-14 77 views
1

我有一個應用程序可以在Linux(Red Hat)和Unix(Solaris)上部署。我的應用程序使用內置的Perl自行安裝,然後創建自己的本地Perl(新用戶)。部署C依賴的Perl庫

我想知道什麼是部署Curses::UI的最佳方式?目前我通過將它們複製到本地perl lib文件夾來安裝其他模塊,但這些模塊都是純粹的Perl模塊,不依賴於C庫(.so共享對象,XS等)。

也需要事先爲每個平臺編譯libncurses

注意:計算機沒有網絡連接,因此我不能使用CPAN模塊。

+0

沒有網絡,沒問題。製作一個[minicpan](http://p3rl.org/minicpan)複製並將其傳送到目標。將其CPAN客戶端配置爲[從本地文件系統讀取](http://p3rl.org/CPAN#The-urllist-parameter-has-CD-ROM-support)而不是網絡。 – daxim 2012-04-17 08:59:52

回答

2

您應該使用CPAN客戶端(CPAN.pm,CPANPLUS)從CPAN部署諸如Curses :: UI等模塊。通常你需要開發庫來編譯XS模塊。對於Curses :: UI,Ubuntu軟件包叫做libncurses-dev。其他Linux發行版可能有一個名稱相同或相似的ncurses devel軟件包。

你說你有一個本地Perl庫。擁有本地庫的一個非常好的方法是具有相同名稱的模塊 - local::lib。其文檔將告訴您如何使用CPAN客戶端輕鬆地將模塊安裝到local :: lib中。

+0

所以我可以使用CPAN :: Mini構建一個僅由Curses :: UI及其依賴關係組成的本地存儲庫嗎? – snoofkin 2012-04-17 13:31:22

1

對於需要構建的CPAN模塊,請嘗試查看carton。它有一個捆綁命令,將所有的cpan模塊捆綁在一起,因此可以在目標機器上安裝/構建它們,而無需涉及任何網絡。

至於lib​​curses,我可能會傾向於有一個自定義安裝程序在目標機器上構建它,如果它尚未安裝。這或者讓你的軟件拒絕安裝,除非找到該庫。不幸的是,我不知道在本地構建依賴C庫的好方法,而不是使用自定義構建腳本。