2012-05-22 32 views
1

我按照this教程中的說明構建了一個定製版本的Perl。爲什麼我的自定義Perl不會安裝到預期的目錄中?

我原來8步如下:

./Configure -d -Dprefix=/custom/perl 

我這樣做,我做makemake testmake install後。

然後我決定我想在/ opt/perl中使用Perl,所以我做了make clean並重復了這個過程,並使用相應的目錄執行了第8步。仍然安裝到/ custom。然後我完全刪除了自定義並重新安裝了./Configure步驟中的相應目錄。仍然安裝到/ custom。

我錯過了什麼?我希望Perl在/ opt not/custom。

+2

嘗試'使distclean' – Kevin

+1

這將工作。 'make distclean'確實刪除了'config.sh'和'Policy.sh'。 – ikegami

回答

2

根據其INSTALL文件,您擁有5.16的正確用法:「您還可以通過在Configure的參數中添加」-Dprefix='/some/dir'「來指定任何前綴位置。

所以我懷疑make clean不會刪除由Configure創建的文件。嘗試從新目錄而不是「清理」目錄。或者至少嘗試刪除config.shPolicy.sh

[Upd:有人指出,make distclean可以用來做到這一點。當然,如果你是從回購站安裝而不是從tarball安裝,那麼git clean -dfx也是如此。 ]

+0

通過「新鮮」,ikegami意味着刪除整個構建目錄並從你的.zip/tarball中提取一個新目錄;) – delicateLatticeworkFever

+1

@goldilocks,這就是新鮮的意思,儘管我補充說我認爲所有需要的是去除兩個由'Configure'創建的文件。 – ikegami

+0

看起來像我的'configure.sh'裏面還有'/ custom'的實例。刪除它和Policy.sh並重新啓動過程。看起來像在工作......我會在一分鐘之內讓你知道。 – thealexbaron

1

-d選項設置爲./Configure會導致構建過程源自您現有的config.sh文件。 -Dprefix=...選項將覆蓋現有config.sh中的prefix設置,但不幸的是,它不會覆蓋可基於prefix的早期設置在config.sh中設置的其他一些選項。

除了make clean,您還需要rm config.sh以便安全地重用perl構建目錄。

如果您打算將您的構建過程中的設置複製到另一臺機器,那麼您還需要清除Policy.sh

相關問題