綾小路龍之介の素人思考

[perl] cpanでモジュールインストール時にデフォルト選択肢を自動選択する方法

依存関係やその他モジュールが聞いてくる質問にデフォルトで答えたい。アップデートするときとかめんどくさいんじゃいこらー

例えば、依存関係にあるモジュールがインストールされていないと、下のような選択肢が出てくる。この場合に自動的にyesを選択して欲しい。

Warning: prerequisite HTML::TreeBuilder::LibXML 0.04 not found.
Writing Makefile for Web::Scraper
---- Unsatisfied dependencies detected during ----
----     MIYAGAWA/Web-Scraper-0.31.tar.gz     ----
    HTML::TreeBuilder::LibXML [requires]
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]

これを解決するには、yesコマンドを使ったり環境変数を変えたりする方法があるようだ。しかし、ここではcpanのprerequisites_policy変数を変える方法をとってみる。

# cpan
cpan[3]>  o conf prerequisites_policy follow
    prerequisites_policy [follow]
Please use 'o conf commit' to make the config permanent!


cpan[4]> o conf commit
commit: wrote '/etc/perl/CPAN/Config.pm'

prerequisites_policy変数をfollowにしておくと、選択肢のデフォルトを自動的に選択してくれる。(Policy on building prerequisites = follow デフォルト選択、ask 尋ねる、ignore 依存モジュールのインストールを行わない)commitすると、変更内容が記憶される。一時的に変更する場合はcommitしない。

例えば、下のような選択肢が出てきた場合に自動的にnを選択して欲しい。

=============================================

Prompts may be bypassed by running:
   /usr/bin/perl Makefile.PL --default

=============================================

Some of POE's tests require a functional network.
You can skip these tests if you'd like.

Would you like to skip the network tests? [n]

これはどうする?

  CPAN.pm: Going to build M/MI/MIYAGAWA/Web-Scraper-0.31.tar.gz

*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
*** Since we're running under CPAN, I'll just let it take care
    of the dependency's installation later.
[Core Features]
- Scalar::Util              ...loaded. (1.22)
- HTML::TreeBuilder::XPath  ...loaded. (0.11 >= 0.08)
- HTML::TreeBuilder         ...loaded. (3.23 >= 3.23)
- XML::XPathEngine          ...loaded. (0.12 >= 0.08)
- HTML::Selector::XPath     ...loaded. (0.03 >= 0.03)
- LWP                       ...loaded. (5.834 >= 5.827)
- HTML::Entities            ...loaded. (3.64)
- HTML::Tagset              ...loaded. (3.20)
- UNIVERSAL::require        ...loaded. (0.13)
- URI                       ...loaded. (1.52)
- YAML                      ...loaded. (0.71)
[LibXML]
- HTML::TreeBuilder::LibXML ...missing. (would need 0.04)
==> Auto-install the 1 optional module(s) from CPAN? [y]

リファレンス

  1. CPANモジュールのインストール時に自動でデフォルト選択をする方法 - memo.xight.org
  2. HowToInstall-withCygwin – Secure-SBM: Secure Social BookMark
  3. CPANモジュールのインストール時に自動でデフォルト選択をする方法 - Craftworks Tech Blog - Branch
  4. use CPAN::Mini; - 今日のCPANモジュール
  5. CPANモジュールインストール時に自動で"Yes"を選択する方法|Ameba::Blog::jitsu102
  6. prerequisites_policy follow - Google 検索
  7. CPAN モジュールインストール時にデフォルトで yes と答える方法 - perl-mongers.org
  8. cpan yes - Google 検索
  9. 自分のための日記: Catalystのインストール(その2)
  10. guro_chanの日記 » CPANモジュールのインストールに於いてすべてのプロンプトに自動でyes若しくはデフォルト設定で応答したい
  11. CatalystやPlaggerのインストールでyes連打をしたくない - bokut.in
  12. CPAN - Wikipedia

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-01-16T19:14:59+09:00
  2. Modified: 2009-01-16T19:14:59+09:00
  3. Modified: 2009-06-30T16:10:36+09:00
  4. Generated: 2017-01-06T23:09:55+09:00