6
A
回答
10
請問我的Module::Extract::Use有幫助嗎?有一個在例子的extract_modules program目錄:
$ examples/extract_modules -l some_program
File::Spec
File::Spec::Functions
strict
warning
可以通過管道將列出來cpan
。
$ examples/extract_modules -l some_program | xargs cpan
一旦你的列表中,這是唯一依賴的第一級,你可以做一個script distribution,使人們能夠使用普通的CPAN工具鏈安裝的一切。
如果有些東西不適合你,請修改程序來處理它。如果您認爲這對其他人有用,請發送拉取請求。 :)
1
那麼這是這個很簡單的方法我解決了這個問題。
在bash shell:
cat *.pl | grep "^use " | tr ';' ' ' | while read a b c; do echo $b; done | sort -iu > modules.txt
這給了我一個文件,只有模塊名稱,每行一個。
然後我用這個
cat modules.txt | while read a; do cpan $a; done
調用CPAN的文件中的每個模塊的名稱。然後坐在那裏回答CPAN的問題,以便酌情安裝依賴關係。
不漂亮,但這次它完成了工作。
3
我希望Module::ScanDeps它提供了命令行實用程序scandeps.pl在這裏很有用,但我失望的是,Module::ScanDeps
顯然不適合這個特定的目的,scandeps.pl
要麼忽略缺少模塊或(與-c
或-x
)嘎嘎叫着當腳本使用未安裝的模塊。
這裏是一個quick'n'dirty Perl腳本試圖使用do直到成功執行腳本:
#!/usr/bin/perl
use strict;
use warnings;
use Term::Prompt;
my ($script) = @ARGV;
die "Provide script file name on the command line\n"
unless defined $script;
until (do $script) {
my $ex = [email protected];
if (my ($file) = $ex =~ /^Can't locate (.+?) in/) {
my $module = $file;
$module =~ s/\.(\w+)$//;
$module = join('::', split '/', $module);
print "Attempting to install '$module' via cpan\n";
system(cpan => $module);
last unless prompt(y => 'Try Again?', '', 'n');
}
else {
die $ex;
}
}
如果你不希望運行腳本,則可以運行perl -c $script
,捕獲stderr
輸出並解析丟失的模塊消息,併爲找到的每個此類模塊調用cpan
,直到perl -c $script
輸出「語法OK」。這也給你一個更清潔的循環。我稍後再看。
您可能會錯過使用此技術在運行時加載的依賴項。
0
相關問題
- 1. 如何查找Perl腳本使用的所有模塊?
- 2. Perl腳本使用DBI模塊訪問不同安裝的MySQL
- 3. 如何在Android的腳本層(SL4A)上安裝Perl模塊?
- 4. 如何找到已安裝的Perl模塊的版本?
- 5. 查找python腳本所需的模塊
- 6. 如何在Perl腳本中包含所有/某些「子模塊」?
- 7. Perl模塊安裝?
- 8. Groovy腳本查找名稱爲「Team CT」的所有作業並禁用它們
- 9. 的Perl模塊安裝
- 10. perl的安裝模塊
- 11. 如何在Perl中檢查已安裝的Apache模塊?
- 12. 我的Perl腳本如何在同一目錄中找到它的模塊?
- 13. 如何檢查是否安裝了所有由Python腳本導入的模塊而不運行腳本?
- 14. 如何在Windows上安裝perl模塊?
- 15. 如何使用shell腳本查找下一個[]並註釋它們之間的所有行?
- 16. 從bash安裝本地perl和模塊
- 17. Perl DBD :: Oracle模塊安裝
- 18. 安裝Perl模塊,沒有提示
- 19. 使用cpan安裝後仍未找到Perl模塊
- 20. 如何將perl模塊合併到腳本中
- 21. 如何安裝python的coverage模塊並在Windows中使用它的命令行
- 22. 如何找到不同的Python安裝並刪除它們?
- 23. 在Ruby上使用某些模塊而不安裝它們
- 24. 如何使用系統命令安裝cpan模塊 - perl
- 25. 查找HTML頁面中的所有iFrame並替換它們
- 26. CPAN Perl模塊安裝程序沒有找到tar文件
- 27. 如何檢查Perl模塊是否安裝?
- 28. PERL Web開發:找不到Perl模塊,但已安裝
- 29. 如何查找jre或jdk是否安裝在Mac中,如果沒有使用shell腳本安裝jre
- 30. shell腳本自動安裝cpan模塊
看起來很有希望 – Nifle 2009-08-21 17:17:19