2010-10-13 90 views
4

在安裝最新的Bundle :: CPAN之後,我意識到某些遺留代碼不會在這個最新版本中運行。我希望刪除(而不僅僅是取消鏈接)這個最新版本,並恢復使用舊版本。我怎樣才能做到這一點?安裝Bundle :: CPAN後,如何恢復到以前的Perl安裝程序?

+0

我應該加入這個話題而不是StackExchange? – SkypeMeSM 2010-10-13 04:02:32

+0

我認爲這個主題適合於stackoverflow。到舊版本的你想要回滾到什麼程度? Just Bundle :: CPAN,它安裝的依賴關係,還是實際安裝了新版本的perl? – rafl 2010-10-13 04:05:42

+0

是的,我想恢復到舊版本的Perl(5.6),因爲安裝Bundle :: CPAN安裝perl 5.8。 – SkypeMeSM 2010-10-13 04:55:25

回答

4

Perl和CPAN.pm有辦法返回到安裝更新版本的模塊之前的東西。見How can I de-install a Perl module installed via cpan?

但是,下一次,您可以解決此問題。

下面是我建議:

  • 如果你能找出哪些模塊是造成問題的原因,在不同的目錄中安裝這些調整@INC使用的目錄。直到你找出你需要的模塊版本爲止。

  • 當你計算出你需要的分佈時,從CPAN或BackPAN抓取這些分佈。保持本地發行版本,並且只使用這些發行版來設置您自己的MiniCPAN。由於CPAN作爲設計功能僅跟蹤任何發行版的最新版本,因此您希望讓本地MiniCPAN假裝舊版發行版是最新版本。這就是爲什麼我創建了MyCPAN::App::DPAN。我在Manage multiple MiniCPANs, and version them

  • Stratopan之間,它們的功能與您的類似私有CPAN的存儲庫的源代碼管理類似。如果你得到你不喜歡的東西,就會回滾。

  • 一旦你修好了東西,把你的Perl庫放到源代碼控制中,這樣你總是可以回滾安裝。見Manage your Perl modules with git

  • 想出一個安裝和測試策略,在您知道一切正常之前不要打擾任何事情。其中一部分是測試主要Perl庫目錄之外的新安裝。當你認爲自己滿意時,那麼你可以安裝到這些目錄中。

+0

現在還有[pinto](https://metacpan.org/pod/Pinto),它就像Perl模塊的版本控制系統。要開始,你仍然需要弄清楚「正確」模塊應該是什麼。但在此之後,平託的目的是自動化布賴恩所描述的所有工作。還有[Stratopan](https://stratopan.com)在雲中執行所有這些操作。披露:我經營stratopan。 – 2014-04-09 09:00:39

-1

最簡單的方法是訪問metacpan。 搜索您的模塊。在你的情況下Bundle::CPAN

然後,您必須選擇要通過單擊箭頭,將模塊名稱左側安裝模塊的相關版本:enter image description here

一旦你點擊的版本,從下拉希望下來你就可以下載或只是做例如:

cpanm http://cpan.metacpan.org/authors/id/A/AN/ANDK/Bundle-CPAN-1.861.tar.gz 

希望幫助

+1

這不起作用。較高版本的模塊不會被刪除。 – 2014-04-09 16:04:38