2011-12-13 117 views
3

好吧,我知道如何在cpan上安裝Perl模塊,並且已經這麼做了多年。但是當我嘗試在這個特定的mac上安裝DateTime模塊時,它失敗了,聲稱它找不到編譯器。如何在Mac OSX上安裝Perl DateTime模塊10.6

下面是一些輸出的嘗試安裝的先決條件,一個PARAMS ::驗證:(我得到相同類型的錯誤從試圖安裝有問題的模塊。)

Configuring Params-Validate-1.00 
Running Build.PL 
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed 
Installed assemblers are: 
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 
lipo: can't open input file: /var/tmp//cc3Aefez.out (No such file or directory) 
Warning: ExtUtils::CBuilder not installed or no compiler detected 
Proceeding with configuration, but compilation may fail during Build 

爲什麼Build.PL尋找一個ppc編譯器?如果那是我在哪裏告訴它(或cpan或cpanm)這臺機器不是ppc盒的問題?

我正在運行10.6.8。 perl的版本是v5.10.0,爲達爾文線程多2級而設計

我絕對已經安裝了開發工具。

我正在通過sudo運行cpan和cpanm。

我很感激任何人可以提供的幫助。

+0

'CPAN的ExtUtils :: CBuilder' – 2011-12-13 16:15:20

回答

6
+0

感謝您的建議問題!我編輯了Config_heavy.pl以刪除ppc,現在我得到: '正在爲D/DR/DROLSKY/DateTime-0.70.tar.gz運行make dyld:懶符號綁定失敗:找不到符號:_Perl_Gthr_key_ptr引用自:/ System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle預計位於:flat namespace dyld:找不到符號:_Perl_Gthr_key_ptr參考文獻:/System/Library/Perl/5.10.0 /darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle預計在:flat命名空間跟蹤/ BPT陷阱# –

5

我已經安裝了10.7,並附帶了Perl 5 .12.3安裝。我做了一個CPAN安裝:

$ sudo cpan 
password: 
cpan> install DateTime 

而且,整個事情的工作。這是你需要第三方文件的東西,還是你想用這個,因爲你熟悉這個特定的包?

有幾個內置時間包與Perl 5.10。這些中的一個對你有用嗎?否則,您可能需要安裝ExtUtils::CBuilder並查看是否有幫助。

或者,安裝Perl如ActiveState的更現代的版本,這是安裝非常簡單,其cpan公用程序在Mac上相當不錯,它的版本5.14,這比自帶的獅子的版本甚至更新。

+0

它幾乎就像第三方 - 它是我多年前爲客戶寫的代碼,現在需要一些修改。它實際上運行在具有Date :: Time的服務器上,但我想在本地執行測試。服務器運行的是5.10.1,所以我不想離得太遠以免發生其他一些兼容性問題。在某種程度上,固執正在推動我,因爲我現在也有一個本地的Debian當然,這個盒子就像預期的那樣工作(就這方面而言)。 –

+1

在我的系統上安裝了這個模塊之後,/ usr/bin下的所有_Perl POD_程序都丟失了包含'perldoc'的執行位。我必須在目錄上執行'sudo chmod + x/usr/bin/perl */usr/bin/pod *'。 –

1

我認爲正在發生的事情是安裝程序正在嘗試編譯一些東西(可能是一個XS模塊),並且要做到這一點,它需要使用相同的編譯器來編譯Perl系統中的任何版本,並且它找不到它。 你最好的選擇是使用perlbrew安裝你自己的Perl 5.10版本,因爲這個編譯器是可用的(請確保你編輯你的.profile,以便終端使用你的新Perl),然後重新打開終端,切換到perlbrew版本的Perl 5.10,你應該沒問題。

如果你有安裝perlbrew的Perl那麼作爲daxim指出上述參考Lion fix