我正在研究打算使用Module::Build
進行部署的Perl應用程序。我需要通過CPAN安裝一些模塊,因爲它們不能通過Ubuntu的軟件包管理器 - 或者更確切地說,我們所有服務器使用的內部apt-get鏡像。雖然在開發服務器上這一切都很好,但IT(可以理解)不願意在沒有緩存或以其他方式控制的生產機器上運行代碼。如何打包我的Perl應用程序的依賴項以進行部署?
由於我們目前沒有CPAN鏡像,這基本上意味着我需要將所有這些非Ubuntu模塊放到一個位置,以便它們可以歸檔和/或提交到版本控制。理想的解決方案是從源代碼控制中檢查實用程序,爲數據庫更改一些配置變量等,然後運行構建/安裝命令並完成。幸運的是,開發服務器是生產服務器的克隆,因此使用XS或其他特定體系結構特性的模塊不應引起問題。
我認爲最簡潔的方法來處理這個問題將檢查源代碼tarballs我需要的模塊,並設置Module::Build
使用那些來解決它的依賴關係,而不是看CPAN,但我沒有看到一個選項。這是可行的嗎?還是有另一種方法來整合我所需的基本離線部署所需的所有模塊?
你看了看[App :: FatPacker ](https://metacpan.org/pod/App::FatPacker)? –
Module :: Build沒有(最後我檢查)解析依賴關係本身,它只是告訴cpan(或cpanplus或cpanm)它們是什麼。 cpan可以使用文件url來查找模塊。但考慮使用類似Pinto – ysth