MacOS XのPerlにTkモジュールを入れる。

ちょっといきなりだが、最近PerlにTkモジュールを入れるのに苦労したので、自分用の記録としてメモ。

2014年12月11日 追記:まず、こちらで試してみてください↓
http://note.mu/shigeruhanano/n/nffd51cfaca1a

まず、Perl

* 一応、Perlを全く使ったことのない人のために、
準備としてテキストエディターで

print "hello"

と書いて、hello.pl という名前をつけて保存。

MacOS Xには元々Perlが入っているのでターミナルを立ち上げる。
/Applications/Utilities/Terminal.app

アプリケーション > ユーティリティー > ターミナルをダブルクリックして、ターミナルを起動。

ターミナルで perl hello.plとタイプして、helloと表示されればOK。
(実際には、作業ディレクトリーを指定してあげないといけないので、デスクトップに保存してあるファイルを実行する場合には、ターミナルの$のあとに

$ perl /Users/ログインしているユーザー名/Desktop/hello.pl 

とタイプする。
あるいは、perl とタイプした後に、デスクトップ上のhello.plファイルをドラッグする。

Perlの終了は、exit とタイプ。

$ exit

で、このままでPerlは使えるはずなのだが(実際普段は使えていたのだが)、先日Tkモジュールを入れようとしたら入らなかった。

どうやら、TkモジュールはActivePerlでないとうまくいかないようだ。
あと、XcodeとXQuartzも必要だとか。

というわけで、Xcode、XQuartz、ActivePerlをインストール。

Xcode は、以下のサイトのダウンロードから。
https://developer.apple.com/jp/xcode/

通常のApp Storeのインストール。

XQuartzは、以下のサイトのダウンロードから。
http://xquartz.macosforge.org/landing/

pkgを展開してインストール。

ActivePerlは、以下のサイトから。
http://www.activestate.com/activeperl

MacOS用の最新版をダウンロード。
pkgを展開してインストール。

インストール時にも表示されるが、OS Xの場合、ターミナル上でログインシェルのPATHを付加する。
(でないと、元々入っているPerlが動くので、ActivePerlはいつまでたっても動かない)

$ export PATH=/usr/local/ActivePerl-5.20/bin:$PATH

と打ち込む。

$ perl -v

とタイプして、

$ This is perl 5,…

(中略)
Binary build 2000 [298557] provided by ActiveState 
http://www.ActiveState.com
Built Oct 15 2014 21:41:06
(略)

と表示されれば、ActivePerlが呼ばれている。

$の後ろに、sudo CPANとタイプ(以下、$ sudo CPAN)。
パスワードを聞かれるので、Macにログインする時のパスワードを入れる。

$ sudo CPAN
Passward:

ここでパスワードを入力した後、cpan> と表示されるので、install Bundle::CPAN とタイプ。

cpan> install Bundle::CPAN

(時間がかかる、途中でネットにつなぐけどいいかどうか聞いてくる)

install Tkとタイプして、Tkモジュールを入れる。

cpan> install Tk

(時間がかかる、途中でネットにつなぐけどいいかどうか聞いてくる)

終了。

cpan> q

でインストールされているはず…だったのだが、うまくいかなかった。

Tkモジュールが正常にインストールされたことの確認。

以下のの5行のファイルをテキストエディターで書いて、tk0.pl を作成。

use strict;
use warnings;
use Tk;
 
exit;

tk0.plファイルをperlで実行する。

$ perl tk0.pl

何もerrorが出なければ、Ok
“Can't locate ... in @INC" とメッセージが出てきたら、Tkモジュールのインストールがうまくいっていない。

CPANに戻って、

$ sudo CPAN
Passward:
cpan> force install Tk

(時間がかかる、途中でネットにつなぐけどいいかどうか聞いてくる)

cpan> q

このままTkを使おうとすると、ラブラリーがないと言われるので、/opt/X11と、/usr/X11をリンク

$ sudo ln -s /opt/X11 /usr/X11

で、目的を達成。
Tkモジュールが必要なPerl scriptが動くようになりました。

この方法が一番いいのかどうかは不明だが(forceコマンドで強制インストールしてるし...)、とりあえずTkモジュールのインストールができたので、よかった。

この記事が気に入ったらサポートをしてみませんか?