ishiducaの日記 このページをアンテナに追加 RSSフィード

2009-09-15

[][]CPANの壁 21:38 CPANの壁 - ishiducaの日記 を含むブックマーク はてなブックマーク - CPANの壁 - ishiducaの日記 CPANの壁 - ishiducaの日記 のブックマークコメント

「Where are "Caual Perlers" ?」/ゆーすけべー日記

Perlは日曜大工の道具としてはもってこいの言語だと私は思います。 多くのCPANライブラリを利用して、少ないコード量で多くのことが実現できます。 現に私がライトニングトークで話したスクリプトは30行程度で書かれています。 面白いアイデアがあれば30行でも新しい価値を生み出すことができるのです。

という下りがあります。

僕は仕事でデータを処理する業務やちょっとした作業をPerlを使って処理していますが、そこでは、ほとんどモジュールを使いません。けれども個人的にインターネットから情報を集めてこようする時には(ちょっとだけですが)モジュールを使います。また、使えるようになりたいと思っています。

さて、モジュールと言ったらさけて通れないのがCPANCPANが使えなくちゃ(大げさに言って)モジュールが使えないのも同然!

で、実際にCPANが使えなくなって、なんとか復帰させたのでそのときのメモ。

そのときはこんなメッセージが出た

Sorry, we have to rerun the configuration dialog for CPAN.pm due to
some missing parameters...

パラメータが間違ってるって言ってる...




設定ファイルの位置と中身を確認する

ターミナルからcpan.pmを管理者権限で立ち上げます

$ sudo cpan

んで、確認。

cpan> o conf

とすると現在の設定の中身が表示されます。

$CPAN::Config options from '/Users/ishiduca/.cpan/CPAN/MyConfig.pm':
    commit             [Commit changes to disk]
    defaults           [Reload defaults from disk]
    help               [Short help about 'o conf' usage]
    init               [Interactive setting of all options]

    applypatch         []
    auto_commit        [0]
    build_cache        [100]
    build_dir          [/Users/ishiduca/.cpan/build]
    build_dir_reuse    [1]
    build_requires_install_policy [ask/yes]
    bzip2              [/opt/local/bin/bzip2]
    cache_metadata     [1]
    check_sigs         [0]
    colorize_debug     undef
    colorize_output    undef
    colorize_print     undef
    colorize_warn      undef
    commandnumber_in_prompt [1]
    commands_quote     undef
    connect_to_internet_ok undef
    cpan_home          [/Users/ishiduca/.cpan]
    curl               [/usr/bin/curl]
    dontload_hash      undef
    dontload_list      undef
    ftp                [/usr/bin/ftp]
    ftp_passive        [1]
    ftp_proxy          []
    ftpstats_period    undef
    ftpstats_size      undef
    getcwd             [cwd]
    gpg                [/opt/local/bin/gpg]
    gzip               [/usr/bin/gzip]
    halt_on_failure    undef
    histfile           [/Users/ishiduca/.cpan/histfile]
    histsize           [100]
    http_proxy         []
    inactivity_timeout [0]
    index_expire       [1]
    inhibit_startup_message [0]
    keep_source_where  [/Users/ishiduca/.cpan/sources]
    load_module_verbosity [v]
    lynx               [/opt/local/bin/lynx]
    make               [/usr/bin/make]
    make_arg           []
    make_install_arg   []
    make_install_make_command [/usr/bin/make]
    makepl_arg         []
    mbuild_arg         []
    mbuild_install_arg []
    mbuild_install_build_command [./Build]
    mbuildpl_arg       []
    ncftp              undef
    ncftpget           [/opt/local/bin/ncftpget]
    no_proxy           []
    pager              [/usr/bin/less]
    password           undef
    patch              [/usr/bin/patch]
    patches_dir        undef
    perl5lib_verbosity undef
    prefer_installer   [MB]
    prefs_dir          [/Users/ishiduca/.cpan/prefs]
    prerequisites_policy [ask]
    proxy_pass         undef
    proxy_user         undef
    randomize_urllist  undef
    scan_cache         [atstart]
    shell              [/bin/bash]
    show_unparsable_versions [0]
    show_upload_date   [0]
    show_zero_versions [0]
    tar                [/usr/bin/tar]
    tar_verbosity      [v]
    term_is_latin      [1]
    term_ornaments     [1]
    test_report        [0]
    trust_test_report_history undef
    unzip              [/usr/bin/unzip]
    urllist           
    use_sqlite         [0]
    username           undef
    wait_list          undef
    wget               [/opt/local/bin/wget]
    yaml_load_code     [0]
    yaml_module        [YAML]

という感じで表示されます。最初の

$CPAN::Config options from '/Users/ishiduca/.cpan/CPAN/MyConfig.pm':

をみると設定ファイル「MyConfig.pm」の位置、また内容もわかります。

これを一度デフォルトに戻します。

cpan> o conf init

ただし、このままではデフォルトに戻した内容が適用(保存)されないので、つづいて

cpan> o conf commit

として、設定を保存します。

とまあ、ここまではよかったんですが、今度はCPANサイトがつながりにくくなってるみたい。上記の設定ファイルでもミラーサイトの設定ができてないので、ミラーサイトを指定してみた。(日本のミラーはCPAN/SITEを参照)

$cpan> o conf urllist push ftp://ftp.dti.ad.jp/pub/lang/CPAN/
  • urllist は CPANのミラーサイト
  • urllist は 配列でパラメータ(この場合は、サイトのURL)を格納するので push (unshift)を使います。(逆に減らす場合は pop か shift を使う)

そして、設定を保存するのに

$cpan> o conf commit

を忘れずに。

んで、結果は...

..

....

なんとかなった!




まあ、今回はなんとかなった訳ですが、またCPANが使えなくなること(があるかもしれないと)考えると頭が痛い。

僕はyusukebeさんのような「アプリケーション開発者」じゃなくて、それこそ「日曜大工的なPerlユーザー」なので、正直CPANの詳しい中身は全くと言っていいほど分からないし、勉強していない。CPANPerlプログラムの肝なんだろうけど、ここでつっかえて前に進むことを阻まれてしまうPerlユーザーも多いんじゃないのかな。便利なはずのCPANが逆に堰になってしまってるんじゃないかと。

そんな訳で、どこかにCPAN解決の糸口になるようなハブサイトかコミュニティが欲しい〜!(もうあるけど、僕が知らないだけなのかもw)

CinderellaCinderella2011/06/05 14:09Now that’s stuble! Great to hear from you.

ybzvzsqmqrxybzvzsqmqrx2011/06/05 17:45olQeck <a href="http://nvpafzclgzvn.com/">nvpafzclgzvn</a>

eeasoylxueeasoylxu2011/06/06 23:09eXYkNr , [url=http://oqzpjaqzchjq.com/]oqzpjaqzchjq[/url], [link=http://cqtfbdalqtdk.com/]cqtfbdalqtdk[/link], http://cpznsreldmtf.com/

pusprvkdpusprvkd2011/06/07 18:182Pa0Zs <a href="http://pbjwuhugihaa.com/">pbjwuhugihaa</a>

zlqbcrbuzlqbcrbu2011/06/09 20:11oDJ7Qt , [url=http://nkqfrftbarnf.com/]nkqfrftbarnf[/url], [link=http://ahoxuhzuxqii.com/]ahoxuhzuxqii[/link], http://evambpxmhozn.com/

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20090915

2009-03-25

[][][]cpanからIOモジュールをインストールした 20:11 cpanからIOモジュールをインストールした - ishiducaの日記 を含むブックマーク はてなブックマーク - cpanからIOモジュールをインストールした - ishiducaの日記 cpanからIOモジュールをインストールした - ishiducaの日記 のブックマークコメント

a2ps を macport からインストールして、テキストファイルをpsファイルに変換しようとしたところ、エラーを吐いて失敗した。(中略)。とりあえず諦めて、LWP::Simpleモジュールを使うスクリプトを書いていたんだけど、「Can't locate LWP.pm in @INC (@INC ...」と、モジュールがないってメッセージを吐いて終わってしまった。他のモジュールをいくつか試してみたけど、ダメっぽい。以前、miyagawaさんのブログでmacでcpanモジュールをインストールしたことのあるleopardマシンのperlモジュールがだめになるとか言うエントリーがあったのを思い出して、IOモジュールをインストールしたので、その手順のメモ。

  • cpanからIOモジュール(IO-1.2301.tar.gz)をダウンロード
$ wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.2301.tar.gz
  • tarコマンドでtar.gzファイルを解凍
$ tar xzvf IO*.tar.gz
  • cdコマンドで展開したディレクトリへ
cd IO*
  • make してインストール
perl Makefile.PL
make
su
make install

こんな感じ。miyagawaさんのブログだと su じゃなくて sudo を使っていたけど、他のモジュールをインストールしようとしたら、「warning: You don't have permissions to install into...」とエラーを吐くので、ルート権限をもつ su してインストールしたらうまくいったっぽい。

他にもインストールした方がいいモジュールがあるようです(以下参照)

これから、暇を見つけて上書きインストールをやらなくちゃ、やれやれ。。。

トラックバック - http://perl.g.hatena.ne.jp/ishiduca/20090325