2017-10-04 155 views
0

我正在嘗試在Heroku上構建一個Perl應用程序,這需要模塊Encode :: HanExtra。我不確定它是否重要,但我正在使用this unofficial buildpack,並且需要在cpanfile中指定requires 'Encode::HanExtra';。正在使用的Perl版本是v5.16.3。Encode :: HanExtra無法安裝在Heroku上(enc2xs未找到)

每當cpanm嘗試配置模塊,它用錯誤

Entering Encode-HanExtra-0.23 
    Checking configure dependencies from META.yml 
    Running Makefile.PL 
    Configuring Encode-HanExtra-0.23 ... enc2xs not found! at Makefile.PL line 46. 
    ! Configure failed for Encode-HanExtra-0.23. See /app/.cpanm/work/1507137797.173/build.log for details. 

Perl中已經包括了編碼,因爲它是一個核心模塊,因此應該有enc2xs。我嘗試強制下載最新版本的Encode,看它是否解決了問題,但沒有。所以我猜猜這個模塊在某種程度上發現了enc2xs存在問題。

從谷歌搜索的錯誤信息我可以看到,其他編碼模塊有類似的錯誤已修補,但我不知道,如果他們實際上是一樣的問題,這一個。

我不太熟悉安裝CPAN模塊的調試問題,所以我很欣賞任何指針。我的計劃是查看Makefile.pl,如果模塊有一個。 FWIW我可以在Strawberry Perl上安裝這個模塊就好了。我在這個Heroku版本上只有問題。

+0

「*因此應該有enc2xs *',這是一個自行安裝的'perl',還是系統'perl'?很多unix發行版將'perl'的部分從標準安裝中刪除,並且讓您使用系統的軟件包管理器來安裝它們 – ikegami

+0

這是一個perl系統,我明確地在'cpanfile'中加入了'require'Encode','2.92';'並且看到它已經安裝了,但是值得注意的是cpanm試圖安裝Encode :: HanExtra之前,它試圖安裝Encode,所以也許它沒有幫助。但是,我沒有看到cpanfile文檔中的任何方式來強制安裝的特定順序 – Stephen

+0

所以,你是否搜索系統的包管理器一個包含'enc2xs'的軟件包?如果文件系統中的文件系統位於不在你的PATH目錄中,是否在文件系統中搜索?enc2xs? – ikegami

回答

0

我能夠通過修改buildpack中的配置腳本來解決我的問題,以在處理cpanfile(cpanm [email protected])之前顯式安裝Encode。

仍然不確定爲什麼系統Perl會像這樣受到損壞,但很高興能夠正常工作。